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-8 单个样本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-9 配对数据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 |
表2-10 成组数据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;
输出结果如下:
表2-12 例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.
转载请注明:数据分析 » 统计假设检验的SAS程序_sas假设检验_sas培训