2.2 统计假设检验的SAS程序
在阅读以下内容之前,请先阅读第一章“SAS软件基本操作”。
对于课本
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 |
配对数据t检验的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 |
可以使用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过程(见
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 | | ||
| 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
输出的结果如下,因为在TABLE语句中没有规定统计分析选项,所以只输出列联表:
The SAS System
TABLE OF WAY BY EFFECT
WAY EFFECT
Frequeny | | ||
Percent | | ||
Row 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 | | ||
| 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.
联系客服