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
配对数据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检验的输出结果
The SAS System Analysis Variable : DIFF
可以使用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。
表2-10 成组数据t检验的输出结果 The SAS System TTEST PROCEDURE Variable: DAYS
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
STATISTICS FOR TABLE OF WAY BY EFFECT
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
比较前面的两个列联表,只是表的形式有些不同,其它结果没有任何变化。 在输出的列联表中还有一些选项可供使用,如: 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
例 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
STATISTICS FOR TABLE OF FEED BY WEIGHT
Sample Size = 11 WARNING: 100% of the cells have expected counts less than 5. Chi-Square may not be a valid test. |
|