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

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 920
Y 480   Y 460   Y 500   Y 570   Y 580
Z 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
男性700480500
850460550
820500480
640570600
920580610
女性900590610
880540660
899560525
780570610
899555645
在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 920
Y M 480  Y M 460  Y M 500  Y M 570  Y M 580
Z M 920  Z M 550  Z M 480  Z M 600  Z M 610
X F 900  X F 880  X F 899  X F 780  X F 899
Y F 590  Y F 540  Y F 560  Y F 570  Y F 555
Z 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)
正常5067
4560
5558
5265
多动症7051
7257
6848
7555
研究中变量命名为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
香草986
775
887
7  
巧克力984
975
766
784
8 4
DATA PUDDING;
  LENGTH FLAVOR $ 9;
  INPUT FLAVOR $ SWEET RATING @@;
DATALINES;
VANILLA 1 9  VANILLA 2 8  VANILLA 3 6
VANILLA 1 7  VANILLA 2 7  VANILLA 3 5
VANILLA 1 8  VANILLA 2 8  VANILLA 3 7
VANILLA 1 7
CHOCOLATE 1 9  CHOCOLATE 2 8  CHOCOLATE 3 4
CHOCOLATE 1 9  CHOCOLATE 2 7  CHOCOLATE 3 5
CHOCOLATE 1 7  CHOCOLATE 2 6  CHOCOLATE 3 6
CHOCOLATE 1 7  CHOCOLATE 2 8  CHOCOLATE 3 4
CHOCOLATE 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数学成绩IQ
260105325126
325115440135
300122425142
400125500140
390138600160
DATA COVAR;
  LENGTH GROUP $ 1;
  INPUT GROUP $ MATH IQ @@;
DATALINES;
A  260  105   A  325  115   A  300  122   A  400  125   A  390  138
B  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之后,两组的数学成绩不再有显著差异。






  • 23
    点赞
  • 113
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值