新车评试驾视频:SAS常用程序(2)

来源:百度文库 编辑:偶看新闻 时间:2024/05/11 02:21:53

2.2  统计假设检验的SAS程序

 

在阅读以下内容之前,请先阅读第一章“SAS软件基本操作”。

 

2.2.1  单个样本的t检验

 

对于课本5.1.4所介绍的单个样本t检验,可以使用PROC MEANS过程计算。PROC MEANS过程在2.1.1中已经做过介绍。这里只以课本中例5.5的数据为例,说明如何使用PROC MEANS过程进行检验。在这里数据采用在作业流中输入,因此不必建立外部数据文件。

              options  linesize=76;

              data  maize;

              input  weight  @@;

              diff=weight-300;

              cards;

308       305  311  298  315  300  321  294  320

proc  means  n  t  prt;

var  diff;

run;

 

    在PROC MEANS语句中的t是在H0:μ=0 假设下所得到的统计量,在这里H0:μ=300,因此在INPUT语句后,用赋值语句建立一个新变量diff,diff是每一观测值与300之差,检验这个差值的期望是否为0,输出结果如下:

 

2单个样本t检验的输出结果

                                                                                                  

 

The SAS System

 

Analysis Variable : DIFF

 

N

T

Prob>|T|

9

2.4954012

0.0372

                                                                                                  

 

 

 

2.2.2  配对数据t检验

 

配对数据t检验的SAS程序与2.2.1节中的程序基本相同,不同点只是在INPUT语句中包含三个变量,在赋值语句中的新变量是两个变量的差而不是变量与一个常量的差。以课本中表5-3的数据为例,SAS程序如下:

              options  linesize=76;

              data  matdat;

              input  id  prepro  postpro  @@;

              diff=prepro-postpro;

              cards;

              proc  means  n  mean  stderr  t  prt;

        var  diff;

              run;

输出结果见表2-9

 

2配对数据t检验的输出结果

1

8.478

7.994

2

7.512

7.141

3

7.222

8.267

4

8.053

8.280

5

7.689

6.740

6

8.528

7.632

7

6.972

5.913

8

7.371

8.169

9

5.760

7.570

10

7.930

7.569

11

7.255

6.322

12

6.795

6.417

                                                                                          

 

 

 

 

 

 

                                 The SAS System

 

           Analysis Variable : DIFF

 

N

Mean

Std Error

T

Prob>|T|

12

0.1292500

0.2639513

0.4896736

0.6340

 

                                                                                         

2.2.3  成组数据t检验

 

可以使用PROC TTEST过程做成组数据t检验。以课本中例5.9的数据为例,说明成组数据t检验的SAS程序。

 

              options  linesize=76;

              data  wheat;

              input  strain  days  @@;

              cards;

 

proc  ttest;

class  strain;

var  days;

run;

 

上述的CLASS语句称为分类语句,在t检验中的分类变量(品种),应在CLASS语句中给予说明,以便PROC TTEST过程按不同类别(品种)进行检验。输出结果见表2-10。

 

1

101

1

100

1

99

1

99

1

98

1

100

1

98

1

99

1

99

1

99

2

100

2

98

2

100

2

99

2

98

2

99

2

98

2

98

2

99

2

100

 

 

                          210  成组数据t检验的输出结果

                                                                                                   

                                

The SAS System

 

                              TTEST PROCEDURE

 

Variable: DAYS

 

 

STRAIN

N

Mean

Std Dev

Std Error

1

10

99.20000000

0.91893658

0.29059326

2

10

98.90000000

0.87559504

0.27688746

 

 

Variances

T

DF

Prob>|T|

Unequal

0.7474

18.0

0.4645

Equal

0.7474

18.0

0.4645

 

For H0: Variances are equal, F' = 1.10    DF = (9,9)    Prob>F' = 0.887

                                                                             

表2-10中给出了方差齐性检验和t检验结果以及方差不具齐性时,用Satterthwaite方法计算的近似t统计量的自由度。从表的最后一行得知,方差具齐性,因此只选用Equal行的结果即可。Prob>|T|的含义是变量T大于统计量t的概率,P(T>t)。(参考课本“小概率原理”一节)。不论是单侧检验还是双侧检验,该概率值都是一样的。做单侧检验时P<0.05差异显著,在做双侧检验时P<0.025时差异显著。

 

 

 

§ 2.3 χ2检验的SAS程序

 

在阅读以下内容之前,请先阅读第一章“SAS软件基本操作”。

 

使用PROC FREQ过程(见2.1.2)进行χ2检验,首先应使用TABLE语句生成一个两向表。在TABLE语句的“/”后,可供使用的选项共有24个,其中的几个基本选项如下:

CHISQ:χ2检验及2´2列联表的Fisher精确检验。

EXACT:对大于2´2列联表进行Fisher精确检验。

ALPHA=(p):设置置信区间时使用的显著水平,缺省时a=0.05。

MISSIN:要求FREQ把缺失值当做非缺失值看待,在计算百分数或其它统计量时包括它们。

 

2.7   以课本中例7.3的数据为例,说明χ2检验的SAS程序。

  记符号“o”为口服,“i”为注射,“e”为有效,“n”为无效。

 

              options  linesize=76;

                     data  medicine;

                     input  way  $  effect  $;

              cards;

                     o  e

o  n

i  e

i  n

             :

 :

              proc  freq  formchar(1,2,7)=’|-+’;

                       table  way * effect / chisq;

              run;

 

在TABLE语句中way * effect将形成一个两向表,第一个变量形成表的行,第二个变量形成表的列。在PROC FREQ语句中的选项formchar(1,2,7),是输出表格线的形状。输出结果如下。

 

2-11  2.7输出的结果

                                                                             

                                

The SAS System

 

                           TABLE OF WAY BY EFFECT

 

                    WAY         EFFECT

 

Frequeny

 

Percent 

 

Row Pct 

 

Col Pct 

e

n

Total

o

58

40

98

 

30.05

20.73

50.78

 

59.18

40.82

 

 

47.54

56.34

 

i

64

31

95

 

33.16

16.06

49.22

 

67.37

32.63

 

 

52.46

43.66

 

Total

122

71

193

 

  63.21

36.79

100.00

 

                   STATISTICS FOR TABLE OF WAY BY EFFECT

 

Statistic

DF

Value

Prob

 

 

 

 

Chi-Square

1

1.390

0.238

Likelihood Ratio Chi-Square

1

1.392

0.238

Continuity Adj. Chi-Square

1

1.060

0.303

Mantel-Haenszel Chi-Square

1

1.382

0.240

Fisher's Exact Test (Left)

 

 

0.908

               (Right)

 

 

0.152

               (2-Tail)

 

 

0.296

Phi Coefficient

 

0.085

0

Contingency Coefficient

 

0.085

0

Cramer's V

 

0.085

0

 

          Sample Size = 193

                                                                              

 

表2-11给出χ2值,连续性矫正χ2值和精确检验χ2值。

该例如果使用以下程序,在数据步中数据的输入变得很简单了。

options linesize=76;

data;

  do way=1 to 2;

    do effect=1 to 2;

      input case @@;

      output;

    end;

  end;

  cards;

58 40

64 31

;

proc freq formchar(1,2,7)='|-+';

  weight case;

  tables way*effect;

run;

 

在数据步中使用了一个DO语句,这是一个循环语句。“way=1 to 2”表示“方式”有两个水平,“effect=1 to 2”表示“效果”有两个水平,如果实验是一个高阶的列联表,那么TO后面的数字也应做相应的改变。在程序步中的WEIGHT语句是一个权数语句,它的值是这些观测相应的权数。

输出的结果如下,因为在TABLE语句中没有规定统计分析选项,所以只输出列联表:

                                                                             

                                

The SAS System

 

TABLE OF WAY BY EFFECT

 

                    WAY         EFFECT

 

Frequeny

 

Percent 

 

Row Pct 

 

Col Pct 

1

2

Total

1

58

40

98

 

30.05

20.73

50.78

 

59.18

40.82

 

 

47.54

56.34

 

2

64

31

95

 

33.16

16.06

49.22

 

67.37

32.63

 

 

52.46

43.66

 

Total

122

71

193

 

  63.21

36.79

100.00

                                                                             

 

 

比较前面的两个列联表,只是表的形式有些不同,其它结果没有任何变化。

在输出的列联表中还有一些选项可供使用,如:

EXPECTED:在独立性假设下,要求输出单元频数的期望值。

NOCOL:不输出交叉表里的单元列百分数。

NOROW:不输出交叉表里的单元行百分数。

CELLCHI2:要求该过程输出每个单元对总χ2统计量的贡献。

NOPERCENT:不输出交叉表的单元百分数和累计百分数。

如果在TABLE语句中加入上述选项,输出的结果更接近教材中列联表的格式。

options linesize=76;

data;

  do way=1 to 2;

    do effect=1 to 2;

      input case @@;

      output;

    end;

  end;

  cards;

64 31

58 40

;

proc freq formchar(1,2,7)='|-+';

  weight case;

  tables way*effect/cellch2 expected nocol norow nopercent;

run;

输出结果如下表:

                                                                             

                                

 The SAS System

 

                           TABLE OF WAY BY EFFECT

 

                    WAY         EFFECT

 

Frequeny

 

Expected

 

Cell Chi-

 

Square

1

2

Total

1

58

40

98

 

61.948

36.052

 

 

0.2516

0.4324

 

2

64

31

95

 

60.052

34.948

 

 

0.2596

0.446

 

Total

122

71

193

 

                                                                             

 

2.8  计算课本中例7.5的精确χ2

  记A饲料为1,B饲料为2;未增重为1,增重为2。SAS程序如下:

              options  linesize=76;

              data  mouse;

                     input  feed  weight  @@;

              cards;

                     1  1  1  1  1  1  1  1  1  2

2         2  2  2  2  2  2  2  2  2  2  2

proc  freq  formchar(1,2,7)=’|-+’;

        table  feed * weight / chisq  missing;

run;

输出结果如下:

 

212  2.8输出的结果

                                                                              

                                

The SAS System

 

                           TABLE OF FEED BY WEIGHT

 

                    FEED        WEIGHT

 

Frequeny

 

Percent 

 

Row Pct 

 

Col Pct 

1

2

Total

1

4

1

5

 

36.36

9.09

45.45

 

80.00

20.00

 

 

100.00

14.29

 

2

0

6

6

 

0.00

54.55

54.55

 

0.00

100.00

 

 

0.00

85.71

 

Total

4

7

11

 

  36.36

63.64

100.00

 

                   STATISTICS FOR TABLE OF FEED BY WEIGHT

 

Statistic

DF

Value

Prob

 

 

 

 

Chi-Square

1

7.543

0.006

Likelihood Ratio Chi-Square

1

9.417

0.002

Continuity Adj. Chi-Square

1

4.482

0.034

Mantel-Haenszel Chi-Square

1

6.857

0.009

Fisher's Exact Test (Left)

 

 

1.000

               (Right)

 

 

0.015

               (2-Tail)

 

 

0.015

Phi Coefficient

 

0.828

0

Contingency Coefficient

 

0.638

0

Cramer's V

 

0.828

0

 

          Sample Size = 11

 

          WARNING: 100% of the cells have expected counts less

                     than 5. Chi-Square may not be a valid test.