中国心理学家网
 
热线咨询 0551—2826223
当前位置: 网站首页 - 心理统计 - SAS学习教程
    发表日期:2007年9月10日 编辑:anyihao 有4710位读者读过此文 【字体:
2.1 利用SAS软件描述样本数据
2.1  利用SAS软件描述样本数据

 

SAS可以对样本数据进行全面描述,得出样本的各种特征数以及频数分布图。在阅读以下内容之前请先阅读第一章“SAS软件基本操作

 

2.1.1  MEANS语句描述数据

 

2.1  计算课本上习题1.2的平均数和标准差。

  在进行分析之前,最好先建立一个外部数据文件。如果不建立外部数据文件,在作业流中输入数据也可以。一般来说,在数据量比较大,有可能重复使用时,最好建立一个数据文件。在这里我们创建一个称为2-1data.dat 的外部数据文件,存储在A盘中。用MEANS过程描述数据的最基本的程序如下:

 

              options  linesize=76;

              data  abc;

                     infile  ‘a:\2-1data.dat’;

                     input  x;

              run;

              proc  means;

              run;

 

提交SAS运行后,所得结果如下:

 

21 2.1输出的结果

                                                                               

 

The SAS System

  Analysis Variable : X

 

N

Mean

Std Dev

Minimum

Maximum

250

63.2760000

3.0139941

55.0000000

70.0000000

                                                                              

 

 

打印的结果中包括数据个数平均数标准差最小值和最大值。这是MEANS语句在缺省时得到的基本结果。若需要对数据作更详细的描述,则要指明所需的统计量(关于统计量的概念见课本2.2.4)。用MEANS过程所计算的统计量,在这里也一并列出。下面还会反复提到变量这一名词,关于变量的概念见课本2.2.1MEANS过程所计算的统计量是用关键词表示,这些关键词及其含义如下:

       N:输入的观测值(观测值的概念见课本2.2.1)个数

       NMISS:每个变量所含缺失值的个数

       MEAN:变量的平均数

       STD:变量的标准差

       MIN:变量的最小值

       MAX:变量的最大值

       RANGE:变量的极差

       SUM:变量所有值的和

       VAR:变量的方差

       USS:每一变量原始数据的平方和(未校正平方和)

       CSS:每一变量的离均差平方和(校正平方和)

       CV:变异系数

       STDERR:每一变量的标准误差(平均数的标准差)

       T:在H0:μ= 0时的t 值(见课本5.1.4

       PRT:在H0:μ= 0 的假设下,统计量t 大于t 临界值绝对值的概率(见课本4.1.1

       SKEWNESS:偏斜度

       KURTOSIS:峭度

       CLM:置信区间的上限和下限(见课本6.2.1

       LCLM:置信区间的下限

       UCLM:置信区间的上限

另外,在PROC  MEANS语句中还有12个选项,其中几个主要选项如下:

DATA=(SAS 数据集):指出SAS 数据集的名称,若省略,则使用最近产生的数据集

MAXDEC=(数字):指出所输出的结果中,小数部分的最大位数(08),缺省时为8

FW=(域宽):指出打印的结果中每个统计量的域宽,缺省时为12

VARDEF=(DF / N):VARDEFDF为缺省值,表示计算方差时,使用n-1 作分母,

                     VARDEFN表示计算方差时,使用观测值个数n 作分母

ALPHA=(α值):指出在计算置信区间时,选用的显著水平

 

 

 

 

 

    2.2  计算课本上习题1.2的离均差平方和,方差,偏斜度和平均数的0.95置信区间。

  仍然使用2-1data.dat 外部数据文件。MEANS过程如下:

 

              options  linesize=76;

              data  abc;

                   infile  ‘a:\2-1data.dat’;

                   input  x;

              run;

              proc  means  data=abc  maxdec=4  fw=8  alpha=0.05

          css  var  skewness  clm;

              run;

 

运行的结果如下:

 

22:例2.2输出的结果

                                                                                

 

The SAS System

 Analysis Variable : X

CSS

Variance

Skewness

Kurtosis

Lower 95.0% CLM

Upper 95.0% CLM

2261.96

9.0842

-0.1548

-0.1894

62.9006

63.6514

                                                                              

 

PROC MEANS语句中data=abc选项是可以省略的因为PROC MEANS语句所分析的正是最近的SAS数据集若需从SAS数据库中调用某一数据集时DATA选项不可省略。在建立外部数据文件时,应每个数据占一行,250个数据占250行(只占一列)。这样输入数据太麻烦,核对起来也不方便。如果想连续输入数据,则应在INPUT语句的变量后加上@@,即“inpet x @@;”,具体说明见例2.4

在进行科学研究时,需要处理的变量数目往往很多,而且变量之间还存在一定关系,经常要计算在某一变量特定水平下,其它变量的一些特征数。例如,在做人群健康情况调查时,涉及的变量多达十几个甚至几十个。如,性别、年龄、身高、体重、吸烟程度、饮酒程度、视力、听力、血压、脉搏、血黏度、胆固醇含量……。如果要计算不同程度吸烟者或不同性别受检者的各项指标或其中若干项指标的某些统计量,只需加上VAR语句和CLASS语句,便能很容易完成此项工作。VAR语句指明所需描述的变量,CLASS语句可以按观测值的不同类别分类计算指定的统计量。

 

    2.3  在做小麦育种时,调查了杂交后代的若干性状,选取其中一部分列在下表中(表23)。在表23中共列举了四个变量,即:株高、穗长、穗粒数和成熟早晚。分别用hoploenogfas代表上述四个变量,以成熟的早(e)、中(m)、晚(l)分类,分别计算株高与穗长的平均数、标准差和标准误差以及穗粒数的范围和变异系数。

 

                23      

60  8.0  60  m

    61  8.0  50  m

    61  8.5  61  l

    61  7.5  54  e

    65  7.5  50  l

    63  6.5  46  e

    62  7.0  48  l

    63  7.5  45  m

    66  8.0  54  m

    61  7.0  50  e

    63  7.0  48  e

    67  8.0  50  l

    66  8.0  54  l

    70  7.0  44  e

    62  8.0  54  e

65  8.0  55  l

63  9.0  56  e

67  9.0  52  m

64  7.0  46  e

62  8.0  56  e

65  9.0  58  m

68  8.5  48  e

64  6.5  44  m

63  7.0  52  e

62  8.0  48  e

63  7.0  50  l

69  8.0  52  l

63  7.5  52  m

68  7.0  46  e

61  7.5  52  e

65  7.5  48  e

66  8.0  48  l

66  8.5  54  e

70  8.0  46  e

68  8.0  48  m

62  8.5  62  m

65  8.5  66  m

60  9.0  64  e

69  7.5  48  e

66  8.0  46  e

68  7.5  42  m

70  9.0  46  m

69  7.0  42  l

72  8.0  52  e

66  7.5  52  m

70  8.0  50  m

69  7.5  50  l

71  8.0  50  e

67  6.0  38  l

            67  7.5  48  e    

 

  先建立一个称之为2-2data.dat 的外部数据文件,外部数据文件的格式如表23所示。

PROC MEANS程序如下:

 

              options  linesize=76;

              data  wheat;

                     infile  ‘a:\2-2data.dat’;

                     input  hop  loe  nog  fas $;

              run;

              proc  means  maxdec=2  fw=8  max  min  mean  std  stderr;

                     var  hop  loe;

                     class  fas;

    proc  means  data=wheat  range  cv;

        var  nog;

        class  fas;

    run;

打印结果见表24

 

 

24  2.3输出的结果

                                                                               

                              

The SAS System

FAS

N Obs

Variable

Maximum

Minimum

Mean

Std Dev

Std Error

 

 

 

 

 

 

 

 

e

23

HOP

72.00

60.00

65.09

3.64

0.76

 

 

LOE

9.00

6.50

7.70

0.67

0.14

 

 

 

 

 

 

 

 

l

12

HOP

69.00

61.00

65.75

2.70

0.78

 

 

LOE

8.50

6.00

7.54

0.69

0.20

 

 

 

 

 

 

 

 

m

15

HOP

70.00

60.00

65.20

3.08

0.79

 

 

LOE

9.00

6.50

8.03

0.69

0.18

 

                               The SAS System                             

 

Analysis Variable : NOG

 

FAS

N Obs

Range

CV

 

 

 

 

e

23

20.0000000

9.1612372

l

12

23.0000000

11.8202275

m

15

24.0000000

13.3156456

                                                                              

 

MEANS过程外还可以使用SUMMARY过程和UNIVERIATE过程描述数据。其中SUMMARY过程与MEANS过程类似对初学SAS软件的读者来说能够使用MEANS过程已经够用了。

 

 

 


2.1.2  频数分布表的编制

 

可以利用PROC FREQ过程编制频数分布表。

 

2.4  利用PROC FREQ过程,编制课本上例1.1原始数据的频数分布表。

  120天中每天新生儿体重超过3公斤的人数,建成一个名为2-3data.dat的外部数据文件,存储在A盘中。编制频数分布表的程序如下:

 

 

              options  linesize=76;

              data  baby;

                     infile  ‘a:\2-3data.dat’;

                  input  number  @@;

    run;

    proc  freq;

    run;

 

INPUT语句中的@@称为双尾符,它的作用是在SAS从数据文件中读取数据时,读完一个数据行的第一个观测后指针并不移到下一行,而停留在观测后的第二列,接着读这一行的第二个观测,在指针移过数据行末尾时,自动为该行解固。因此,在建立数据文件时,每一个数据行可以输入几个观测。如建立2-2data.dat数据集时,每一个数据行就不仅是一个观测的四个值,而可以是几个观测,譬如

 

    60  8.0  60  m  61  8.0  50  m  61  8.5  61  l

        61  7.5  54  e   65  7.5  50  l  63  6.5  46  e

                        

                        

  

上述程序输出的结果如表25

 

25  2.4输出的结果

                                                                               

                              

The SAS System

 

 

 

Cumulative

Cumulative

NUMBER

Frequency

Percent

Frequency

Percent

 

 

 

 

 

3

1

0.8

1

0.8

4

2

1.7

3

2.5

5

12

10.0

15

12.5

6

19

15.8

34

28.3

7

39

32.5

73

60.8

8

34

28.3

107

89.2

9

10

8.3

117

97.5

10

3

2.5

120

100.0

                                                                              

 

可以用同样的方法编制非数值型变量的频数分布表。

2.5  编制表23成熟早晚的频数表。

  data  wheat;

                     infile  ‘a:\2-2data.dat’;

                     input  hop  loe  nog  mature  $;

              run;

              proc freq;

                     table  mature;

              run;

所得结果如下:

 

26  2.5输出的结果

                                                                               

                              

The SAS System

 

 

 

Cumulative

Cumulative

MATURE

Frequency

Percent

Frequency

Percent

 

 

 

 

 

e

23

46.0

23

46.0

l

12

24.0

35

70.0

m

15

30.0

50

100.0

                                                                               

对于连续型数据,也可以用PROC FREQ过程编制频数分布表。

 

2.6  编制课本上表1-2高粱三尺三株高的频数分布表。

  先建立一个名为a:\2-4data.dat的外部数据文件。SAS程序如下:

 

              proc  format;

                     value  hfmt

                     141-143=’141-143’  144-146=’144-146’  147-149=’147-149’

        150-152=’150-152’  153-155=’153-155’  156-158=’156-158’

                     159-161=’159-161’  162-164=’162-164’  165-167=’165-167’

                     168-170=’168-170’;

              run;

data  sorghum;

                     infile  ‘a:\2-4data.dat’;

                     input  hight  @@;

              run;

              proc  freq;

                     table  hight;

                     format  hight  hfmt.;

              run;

 

这里使用PROC FORMAT过程的目的是将数据按使用者的要求格式化。VALUE语句中要给出被定义的输出格式名,在这里称为hfmt。若以组界分组,还需加上“<”“>”号,如143.5-<146.5=’144-146’等。在PROC FREQ过程的FORMAT语句中一定要在hfmt之后加上一个“.”。输出结果如下:

 

27  2.6输出的结果

                                                                              

                            

The SAS System

 

 

 

Cumulative

Cumulative

HIGHT

Frequency

Percent

Frequency

Percent

 

 

 

 

 

141-143

1

1.0

1

1.0

144-146

2

2.0

3

3.0

147-149

4

4.0

7

7.0

150-152

13

13.0

20

20.0

153-155

23

23.0

43

43.0

156-158

28

28.0

71

71.0

159-161

15

15.0

86

86.0

162-164

10

10.0

96

96.0

165-167

3

3.0

99

99.0

168-170

1

1.0

100

100.0

                                                                              

 

 


2.1.3  频数分布图的绘制

 

绘制离散型数据的柱状图,可以用GCHART过程。以课本上例1.1的数据为例,程序如下:

              data  baby;

                     infile  ‘a:\2 -3data.dat’;

                     input  number  @@;

              run;

              proc  gchart;

                     vbar  number;

              run;

 

如果需要水平条状图,只需将vbar改为hbar即可。执行上述程序的结果如下图:


 


          21  离散型数据的柱形图

 

CAPABILITY过程绘制连续型数据的频率直方图是很方便的。最简单的程序如下:

 

       data  sorghum;

              infile  ‘a:\2-4data.dat’;

              input  hight  @@;

       run;

       proc  capability  graphics  noprint;

              var  hight;

              histogram;

       run;

上述的GRAPHICSNOPRINT的含义分别是,打出高分辨率的图象和不打出概括性统计量表。执行上述程序的结果如下;

          

直方图的组距是程序自动选定的,组距的大小可以通过改变中值来调整。若组距定为3厘米,可以加进选项“midpoint=142  to  169  by  3”。图22是频率直方图,若要得到频数直方图,还需加入选项“vscale=count”PROC CAPABILITY过程为:

               proc  capability  graphics  noprint;

                     var  hight;

                     histogram / midpoint=142  to  169  by  3

                                     vscale=count;

                     run;


【本文由 中国心理学家网 发布,转载须保留本文链接!手机浏览网页显示不完整时,请点击网页底部的电脑版。欢迎关注本站微信公共号:xinlixuejianwang 分享按钮

相关专题:

相关信息:
 没有相关信息

相关评论:
 没有相关评论
发表、查看更多关于该信息的评论 将本信息发给好友 打印本页
版权所有  中国心理学家网技术支持创立互联    通讯地址:安徽医科大学医学心理学150#   邮编:230032

联系电话:0551—2826223  E-mail:cnpsy@126.com QQ:619938829  皖ICP备 06003963国内心理学类综合性门户网站