sas统计分析学习笔记(九)——方差分析

来源:互联网 发布:h5商城系统源码下载 编辑:程序博客网 时间:2024/06/09 14:12

1.简介

当数据多于两组时,T检验或者相应的非参数分析不再适应,这时需要使用方差分析。

2.单因素方差分析

 零假设为所有组的均值相等,备择假设是不是所有平均数都相等。F=组间方差/组内方差=[组间平方和/(k-1)]/[误差平方和/(n-k)],如果组间差异比组内大,比值将大于1,如果零假设为真,F将等于1。
DATA READING;  INPUT GROUP $ WORDS @@;DATALINES;X 700   X 850   X 820   X 640   X 920Y 480   Y 460   Y 500   Y 570   Y 580Z 500   Z 550   Z 480   Z 600   Z 610;PROC ANOVA DATA=READING;  TITLE "Analysis of Reading Date";  CLASS GROUP;*指定自变量;  MODEL WORDS=GROUP; *指定分析模型;  MEANS GROUP;*计算GROUP的每个水平上的WORDS平均值;RUN;
这里,F值为16.78,查表(自由度为2和12),p为0.0003,因此拒绝零假设,得到结论阅读方法存在差异。
当已经知道阅读方法存在差异时,可以找出具体的组间差异,此方法为事后检验或者多重检验。若要进行事后检验,将检验的选项名放在MEANS的斜杠后,前面列出检验的SAS关键词DUNCAN(duncan多重范围检验)、SNK(student-newman-keuls多重范围检验)、LSD(最小显著差异检验)、TUKEY(tukey学生化范围检验)、SCHEFFE(scheffe多重比较过程)。实际中,如果方差分析不显著,就不进行事后检验,上例中方差分析结果显著存在差异,运用SNK进行事后检验,语句如下:
MEANS GROUP/SNK;

输出结果次序由各组平均数由高到低排列,平均数没有显著差异的一组会被分配到相同字母。本例中,z和y没有显著差异,但都与x有显著差异。
除非特别指定,组间差异检验显著水平默认为0.05,也可以在事后检验的选项后面加上ALPHA=.1或者ALPHA=.01,指定显著水平分别为.1或者.01。当指定scheffe检验的显著水平为.1时,应写成:
MEANS GROUP / SCHEFFE ALPHA=.1;

3.对比检验

进行特定的比较检验,你需要PROC GLM来代替PROC ANOVA。
PROC GLM DATA=READING;  CLASS GROUP;  MODEL WORDS=GROUP;  CONTRAST 'X VS. Y AND Z' GROUP -2 1 1;  CONTRAST 'METHOD Y VS Z' GROUP 0 1 -1;RUN;
单因素设计中,CONTRAST语句就是在关键词CONTRAST后跟比较检验的标签(单引号内)、自变量(CLASS)、和k个系数集
规则为:1.系数之和为0;2.如果没有给CLASS变量设定输出格局,那么系数的顺序必须与CLASS变量的各个水平的字母顺序相匹配。如果为CLASS变量指定了输出格式,那么系数顺序就与格式化的值的顺序一致(通过在PROC GLM中添加选项ORDER = DATA,可以使CLASS变量的各个水平按照数据值排序,而不再是格式化顺序,这样就可以避开设定系数顺序问题了);3.系数0表示在比较检验中不纳入相关的水平;4.负系数对应的水平和正系数对应的水平进行比较。
上面程序,第一个CONTRAST比较了方法x与方法y和z的平均数,第二个只比较了y和z。

从结果可以看到,方法x与方法y、z有显著差异,而方法y和z之间没有显著差异。

4.两个自变量的方差分析

假设同样是对阅读方法进行比较,但一共有15个男性被试和15个女性被试。除了比较阅读方法,还想比较男性和女性的阅读速度是否有区别。
 组别 XYZ男性700480500850460550820500480640570600920580610女性900590610880540660899560525780570610899555645在GENDER的每个水平上都有三种阅读方法,这种类型的设计叫做因子设计。总平方和现在被分为4部分。来自GROUP差异的平方和,来自GENDER差异的平方和,GENDER和GROUP的结合,以及误差平方和。
这个设计中每个单元的被试数目相同,因此成为“平衡设计”,如果模型中有一个以上的自变量,且设计是不平衡的,则不能使用PROC ANOVA,应该使用广义线性模型PROC GLM.
DATA TWOWAY;  LENGTH GROUP GENDER $ 1;  INPUT GROUP $ GENDER $ WORDS @@;DATALINES;X M 700  X M 850  X M 820  X M 640  X M 920Y M 480  Y M 460  Y M 500  Y M 570  Y M 580Z M 920  Z M 550  Z M 480  Z M 600  Z M 610X F 900  X F 880  X F 899  X F 780  X F 899Y F 590  Y F 540  Y F 560  Y F 570  Y F 555Z F 520  Z F 660  Z F 525  Z F 610  Z F 645;PROC ANOVA DATA=TWOWAY;  TITLE "Analysis of reading data";  CLASS GROUP GENDER;  MODEL WORDS=GROUP|GENDER;  MEANS GROUP|GENDER /SNK;RUN;
同前面一样,CLASS 后面是自变量列表。在MODEL语句里的GROUP和GENDER之间的竖线表明我们使用因子设计(也称交叉设计)。如果不用竖线也可使用*,但遇到多维设计时,比较麻烦,多维时下面两种表达等价:
GROUP|GENDER|DOSE
GROUP GENDER DOSE GROUP*GENDER GROUP*DOSE GENDER*DOSE GENDER*GROUP *DOSE
下面看看上述程序的部分输出结果:

GROUP*GENDER叫做交互项。如果各个阅读组对男性和女性的差异不同,那么交互效应是显著的,例如,如果男性在A方法比B方法表现好,而女性在B方法比A方法表现好,那么交互作用是显著的。
MEANS GROUP|GENDER / SNK;的输出结果部分如下:

第一个表格说明,X与Y、Z有显著差异,第二个说明性别不显著,男女无显著差异。最后还会输出一个各个性别在各个组的平均值表。

5.解释显著地交互作用

下面看一个交互作用显著的例子,有两组小孩,一组正常,一组多动,每组小孩随机分为两组,一组接受安慰剂,一组接受利他林,之后测量每个小孩的活跃度。
安慰剂(PLACEBO)利他林(RITALIN)正常5067456055585265多动症7051725768487555研究中变量命名为GROUP(NORMAL  HYPER)、DRUG(PLACEBO  RITALIN)、ACTIVITY(活跃度)。
DATA RITALIN;  DO GROUP = 'NORMAL','HYPER';    DO DRUG = 'PLACEBO','RITALIN';  DO SUBJ = 1 TO 4;    INPUT ACTIVITY @;OUTPUT;  END;END;  END;DATALINES;50 45 55 52 67 60 58 65 70 72 68 75 51 57 48 55;PROC ANOVA DATA=RITALIN;  TITLE "Activity Study";  CLASS GROUP DRUG;  MODEL ACTIVITY = GROUP|DRUG;  MEANS GROUP|DRUG;RUN;
此处使用了DO循环,当然也可以直接输入INPUT GROUP $ DRUG $ ACTIVITY;
可以看到group*drug的交互作用显著。当交互作用显著时,我们必须非常小心地解释主效应,也就是说必须先理解交互作用的性质,才能进一步考察主效应。
可以利用平均数画一个交互作用图,首先选一个自变量作横轴,然后在另一个自变量每个水平上画出表示因变量平均数的线条。在绘图之前首先通过PROC MEANS 过程创建一个包含着单元格平均数的数据集。
这个图形说明,普通小孩服用利他林活跃度增加,多动症小孩服用利他林活跃度降低。因此在刚刚的方差分析中,关于利他林的检验,两组小孩的数据会相互抵消。如果要考察利他林的真实效果,需要分别考察两组小孩的反应:
GROUP=HYPER时

GROUP=NORMAL时

从上面可以看到,两组小孩对两组药物的平均数显著不同,但正常组的利他林平均数高于安慰剂,多动组则相反。
还有另一种方法进行上述T检验:将院士变量的每个处理水平相结合,生成一个新的自变量,这样就把两因素ANOVA分解成了单因素ANOVA,可以用串联符号||创建CONDITION变量,在data步骤中加入语句:
CONDITION = GROUP || DRUG;
创建了新变量,共有4个水平,当然也可以使用CATX函数串联两个甚至更多字符串,还可以自由选择连接符:
CONDITION = CATX('-',GROUP,DRUG);
DATA RITALIN;  DO GROUP = 'NORMAL','HYPER';    DO DRUG = 'PLACEBO','RITALIN';  DO SUBJ = 1 TO 4;    INPUT ACTIVITY @;CONDITION=GROUP||DRUG;OUTPUT;  END;END;  END; DATALINES;50 45 55 52 67 60 58 65 70 72 68 75 51 57 48 55;PROC ANOVA DATA=RITALIN;  TITLE "ONE-WAY ANOVA Ritalin study";  CLASS CONDITION;  MODEL ACTIVITY=CONDITION;  MEANS CONDITION /SNK;RUN;

还可以运用对比检验:
PROC GLM DATA=RITALIN;  TITLE "ONE-WAY ANOVA Ritalin study";  CLASS CONDITION;  MODEL ACTIVITY=CONDITION;  CONTRAST 'Hyperactive only' CONDITION -1 1 0 0 ;  CONTRAST 'NORMAL only' CONDITION 


6.多因素设计

双因素方差分析的方法可以扩展到任意多自变量的情况,主要在MODEL 和 MEANS步骤用‘|’将各自变量连接起来即可。

7.非平衡设计:PROC GLM

 甜度水平 123香草9867758877  巧克力9849757667848 4
DATA PUDDING;  LENGTH FLAVOR $ 9;  INPUT FLAVOR $ SWEET RATING @@;DATALINES;VANILLA 1 9  VANILLA 2 8  VANILLA 3 6VANILLA 1 7  VANILLA 2 7  VANILLA 3 5VANILLA 1 8  VANILLA 2 8  VANILLA 3 7VANILLA 1 7CHOCOLATE 1 9  CHOCOLATE 2 8  CHOCOLATE 3 4CHOCOLATE 1 9  CHOCOLATE 2 7  CHOCOLATE 3 5CHOCOLATE 1 7  CHOCOLATE 2 6  CHOCOLATE 3 6CHOCOLATE 1 7  CHOCOLATE 2 8  CHOCOLATE 3 4CHOCOLATE 1 8                 CHOCOLATE 3 4;PROC GLM DATA=PUDDING;  TITLE  "Pudding Taste Evaluation";  TITLE3 "Two-way ANOVA - Unbalanced Design";  TITLE4 "---------------------------------";  CLASS FLAVOR SWEET;  MODEL RATING = FLAVOR|SWEET/SS3;*采用第三类平方和;  LSMEANS FLAVOR|SWEET/PDIFF ADJUST=TUKEY;  *LSMEANS为使用最小二乘法校正主效应平均数,  PDIFF用于计算所有配对差异的概率,  ADJUST=TUKEY是对多检验的校正;RUN;

可以看到,只有甜度存在显著差异。
程序中加入的TITLE语句,TITLEn表示SAS输出中的第n行,TITLE和TITLE1等价。
带PDIFF选项的LSMEANS语句中给出了SWEET校正后的平均数(ADJUST=TUKEY)
可以看出1对3,2对3,4对3,5对3,均显著,说明他们真的不喜欢甜巧克力。

8.协方差分析

如果有一个变量,例如IQ,影响因变量的测量,在分析因变量之前,应校正混淆 变量导致的差异。
组别AB数学成绩IQ数学成绩IQ260105325126325115440135300122425142400125500140390138600160
DATA COVAR;  LENGTH GROUP $ 1;  INPUT GROUP $ MATH IQ @@;DATALINES;A  260  105   A  325  115   A  300  122   A  400  125   A  390  138B  325  126   B  440  135   B  425  142   B  500  140   B  600  160;PROC CORR DATA=COVAR NOSIMPLE;   TITLE "Covariate Example";   VAR MATH IQ;RUN;PROC TTEST DATA=COVAR;   CLASS GROUP;   VAR MATH IQ;RUN;
通过计算相关系数检验数学成绩和IQ之间的关系,并通过t检验考察A、B两组是否有显著差异。
可以看到IQ和数学成绩高度相关,且各组IQ和数学成绩存在显著差异(具体输出已略)。
协方差分析之前,必须首先检验协变量和因变量的关系在不同组间的一致性,可以通过简单回归检验,在GROUP的两个水平下吧MATH作为IQ的函数纳入模型,再检验IQ和GROUP的交互作用。PROC GLM 和其中的MODEL语句可以完成建模和回归系数比较。

从结果可知IQ*GROUP无显著差异,可继续进行协方差分析:
PROC GLM DATA=COVAR;  CLASS GROUP;  MODEL MATH=IQ GROUP/SS3;  LSMEANS GROUP;
*上两步为校正IQ;
RUN;
可看到校正IQ之后,两组的数学成绩不再有显著差异。






阅读全文
0 0