两因素重复测量方差分析(Two-way Repeated-Measures ANOVA)二(有交互作用)——SAS软件实现

发布于 2021年12月30日 星期四 14:25:05 浏览:3522
原创不易,转载请注明来源,感谢!
附件下载:
两因素重复测量方差分析二.zip 请勿重复点击,如无响应请耐心等待或稍后再试。

在前面文章中我们介绍了两因素重复测量方差分析(Two-way Repeated-Measures ANOVA) ——不存在交互作用时在SAS软件中的操作步骤,本篇文章将实例演示在SAS软件中实现两因素重复测量方差分析——存在交互作用时的操作步骤。

关键词:SAS; 重复测量; 重复测量资料; 重复测量方差分析; 两因素重复测量方差分析; 球形检验; 交互作用; 主效应; 单独效应

一、案例介绍

研究A、B两种饲料对家兔的增重效果,选择20只家兔,随机分成两组,第一组用饲料A饲养,第二组用饲料B饲养,并于试验开始后第一个月(time1)、第二个月(time2)、第三个月(time3)分别测量2组家兔体重(kg),试比较A、B两种饲料对家兔的增重效果有无差别?部分数据见图1。本文案例可从“附件下载”处下载。

图1

二、问题分析

本案例的分析目的是比较A、B两种饲料对家兔的增重效果有无差别。由于3个时间点的数据属于重复测量数据,且有两个组别,可以使用两因素(时间因素time和分组因素group)重复测量方差分析。但需要满足以下6个条件:

条件1:观察变量唯一,且为连续变量。本研究中观察变量只有体重,且为连续变量,该条件满足。

条件2:有两个分析因素。本研究有时间因素time和分组因素group两个因素,该条件满足。

条件3:观察变量为重复测量数据,即不满足独立性。本研究中两个组别在3个时间点时测量的体重均是针对同一批样本,因此不满足独立性,该条件满足。

条件4:观察变量不存在显著的异常值,该条件需要通过软件分析后判断。

条件5:各组、各水平(时间点)观察变量为正态(或近似正态)分布,该条件需要通过软件分析后判断。

条件6:相互比较的各处理水平(组别)的总体方差齐,该条件需要通过软件分析后判断。

三、软件操作及结果解读

(一) 导入数据

①利用LIBNAME语句建立SAS逻辑库关联,注意逻辑库名称要求,即最大长度8字符,必须以字母或下划线“_”开始,可以是字母、数字和下划线的任意组合。具体代码如下:

libname mydata ‘D:\mydata’;

通过这一步骤,SAS能够识别引号中的物理位置,将逻辑库建立在该目录下,同时在以下过程中新建的SAS表格便可以永久储存在该位置,便于反复读取和使用。先运行该代码使其生效。

②利用PROC IMPORT语句导入文件,代码如下:

proc import out= mydata.example
    datafile=" D:\mydata\两因素重复测量方差分析二.csv"
	  dbms=csv replace;
	  getnames=yes;
run;

该过程在mydata逻辑库中生成example数据集,数据文件由DATAFILE=选项指定,DBMS=选项指定其数据库类型。该案例中初始数据集为csv文件,故而使用“dbms=csv”指定。如果已经存在相同名称的SAS数据集,即可使用REPLACE选项进行覆盖。GERNAMES=YES选项指定从第2行开始读取数据,将数据集的首行变量名作为SAS数据集的变量名。

(二) 适用条件判断

1. 条件4判断(异常值判断)

(1) 软件操作

运用UNIVARIATE过程进行检验:

proc univariate data= mydata.example plot;
var time1 time2 time3;
by group;
run;

其中“mydata.example”为上一步中导入的数据集名称,“time1”、“time2”、“time3”为分析变量名,即分别为3个时间点检测的家兔体重。“by group”表示分A、B两组分别对三个时间点的家兔体重进行异常值判断。因此将会出现6个检验结果,总结如图2:

图2

③描述数据分布情况的箱线图,见图3-1—图3-3所示。

图3-1
图3-2
图3-3
(2) 结果解读

图2“Descriptives (描述性分析)”表格中,列出了各组观察变量的最小值和最大值,依据专业尚不能认为存在异常值;此外,图3-1、图3-2中的箱线图也未提示任何异常值,图3-3中存在两个离群值,但根据专业尚不能判定为异常值。综上,本案例未发现需要处理的异常值,满足条件4。

2. 条件5判断(正态性检验)

(1)软件操作

①运用UNIVARIATE 过程对两组各时间点的家兔体重进行正态性检验,示例代码如下: 

proc univariate data= mydata.example normal;
var time1 time2 time3;
by group;
run;

两因素重复测量方差分析时,可分别考察每一组的正态性情况,因此将会出现6种检验结果,总结如图4:

图4
(2)结果解读

图4的正态性检验结果显示A组三个时间点的P值分别为0.360、0.770、0.919,B组三个时间点的P值分别为0.813、0.809、0.128,均>0.1,提示各组数据均服从正态分布。此外,本案例也可以绘制Q-Q图,结果也提示各组数据均服从正态分布(请读者自行操作)。综上,本案例满足条件5。关于正态性检验的注意事项详见文章(医学统计学核心概念及重要假设检验的软件实现(2/4)——正态性假设检验的SPSS实现)。

3. 条件6判断(方差齐性检验)

(1) 软件操作
proc anova data=mydata.example;
	class group;
  	model time1 time2 time3=group;
	means group / hovtest=levene(type=abs);
run;
(2) 结果解读
图5

图5 Levene’s方差齐性检验结果显示,time1、time2、time3时,两组之间的方差齐性检验结果分别为F=1.39、P=0.2533,F=1.94、P=0.1808,F=0.95、P=0.3421;提示每个时间点的两组之间都满足方差齐性。本案例满足条件6。关于方差齐性检验的更多内容请阅读(医学统计学核心概念及重要假设检验的软件实现(4/4)——方差齐性检验及SPSS实现)。

(三) 球形假设检验

1. 软件操作

proc glm data=mydata.example;
	class group;
  	model time1 time2 time3=group;
    repeated time 3/printe;
run;

通过printe进行球形检验,结果如图6中“正交成分”所示。

图6

2. 结果解读

由图6的球形度检验结果可知,Mauchly准则=0.952,P=0.661,表示满足球形假设。因此本案例可以直接采用非校正方法分析的结果。

(四) 统计描述

1. 软件操作

为了结果解释方便,首先在图7中总结了A、B两组在3个时间点的均值和标准差及其95%置信区间,图8则直观展示了两组的变化趋势。程序见 “两因素重复测量方差分析一—SAS软件实现

图7
图8

2. 结果解读

图7列出了A、B两组time1、time2、time3时间点的均值分别为1.54、3.91、5.60 kg和1.51、2.73、3.81 kg。图8的估算边际均值图绘制了两组3个时间点体重的变化情况,可见两组的体重均有增加,并且增加的幅度不太一致。

(五) 交互作用判断

由于本案例有两个因素(一个为时间因素time,另一个为分组因素group),因此需要首先判断两个因素之间是否存在交互作用。如果交互作用有统计学意义,则需要分析单独效应。

1. 软件操作

proc glm data=mydata.example;
	class group;
  	model time1 time2 time3=group/nouni;
    repeated time 3(0 1 2) contrast(1)/printe summary;
run;

2. 结果解读

图9 显示,Time与group之间的交互作用结果为Ftime*group=31.06,P<0.0001,提示Time与group之间的交互作用有统计学意义。因此,本案例需要分析单独效应。

图9

(六) 单独效应分析

1. 软件操作

data a(rename=(time1=weight));
set mydata.example;
keep group time1 time;
time=1;
run;
data b(rename=(time2=weight));
set mydata.example;
keep group time2 time;
time=2;
run;
data c(rename=(time3=weight));
set mydata.example;
keep group time3 time;
time=3;
run;

data example;
set a b c;
proc print;run;

先通过以上程序进行数据转换,形成example数据集,group代表分组,weight代表体重,time代表时间节点(分3个时间节点)如下图10:

图10

分别进行时间和分组的单独效应估计:

proc sort data=example;by group;run;
proc glm data=example;
	class group time;
  	model weight=time;
	by group;
	means time;
run;
proc sort data=example;by time;run;
proc anova data=example plots=none;
	class group time;
	model weight=group;
	by time;
	means group;
run;

2. 结果解读

(1) Time的单独效应

由图11可知,A组内不同时间点的体重增量差异有统计学意义(F=72.12,P<0.0001);B组内不同时间点的体重增量差异也有统计学意义(F=52.89,P<0.0001)。图12为各组的均值和标准差。

图11
图12
(2) group的单独效应

由图13 group的单独效应可知,time1时两组间的体重增量差异无统计学意义(F=0.05,P=0.8273);time2时两组间的体重增量差异有统计学意义(F=12.30,P=0.0025);time3时两组间的体重增量差异有统计学意义(F=27.49,P<0.0001)。图14为各组的均值和标准差。

图13
图14

(七) 事后检验(两两比较)

1. Time的单独效应事后检验

上面分析得出了“A、B两组内不同时间点的体重增量差异有统计学意义”的结论。现通过“Bonferroni (邦弗罗尼)”法分别对A、B两组内三个时间点数据进行两两比较,结果如图15(group=A)和图16(group=B)所示。

通过contrast(1)设置不同的参照组,进行两两比较:

proc glm data=mydata.example;
	class group;
  	model time1 time2 time3= /nouni;
   repeated time 3(0 1 2) contrast(1)/summary;
	by group;
run;
proc glm data=mydata.example;
	class group;
  	model time1 time2 time3= /nouni;
   repeated time 3(0 1 2) contrast(2)/summary;
	by group;
run;
图15
图16

结合图12,图15和图16结果可知,A组内,相比time1,time2和time3时的体重增量逐渐增加,且差异有统计学意义(P<0.0001);B组内,相比time1,time2和time3时的体重增量逐渐增加,且差异也有统计学意义(P<0.0001)。从图17和图18可以发现,A组内相比于time2,time3时的体重有所增加,且差异有统计学意义(P<0.0001);B组内相比于time2,time3时的体重有所增加,且差异有统计学意义(P<0.0001)。

图17
图18

2. group的单独效应事后检验

上面分析得出了group组间差异有统计学意义,但由于group只有两组,因此无须再进行事后检验。但由图13结果可知,time1时,A组的体重增量与B组之间差异无统计学意义(F=0.05,P=0.8273),time2时,A组的体重增量比B组高1.18 kg,差异有统计学意义(F=12.30,P=0.0025),time3时,A组体重与B组之间的差异进一步加大,A组的体重增量比B组高1.79 kg,差异有统计学意义(F=27.49,P<0.0001)。

四、结论

本研究采用两因素重复测量方差分析比较A、B两种饲料对家兔的增重效果有无差别。通过专业知识判断,数据不存在异常值;通过Shapiro-Wilk检验,提示各组数据服从正态分布;通过Levene’s检验,提示每个时间点的两组之间都满足方差齐性;球形度检验提示,满足球形假设(W=0.952,P=0.661);组别与time之间存在交互作用(Ftime*group=31.060,P<0.0001),故进行单独效应分析。

A、B两组在试验开始后第一个月、第二个月和第三个月时的体重分别为1.540±0.334、3.910±0.907、5.600±0.892 kg和1.510±0.269、2.730±0.556、3.810±0.608 kg。时间的单独效应分析显示,A、B两组组内不同时间点的体重增量差异均有统计学意义(P<0.0001)。通过“Bonferroni (邦弗罗尼)”法分别对A、B两组内3个时间点数据进行两两比较显示,A、B两组内不同时间点之间的体重增量差异均有统计学意义(P<0.0001)。组别的单独效应和事后检验分析显示,time1时,A组的体重增量与B组之间差异无统计学意义(F=0.05,P=0.8273),time2时,A组的体重增量比B组高1.18 kg,差异有统计学意义(F=12.30,P=0.0025),time3时,A组体重与B组之间的差异进一步加大,A组的体重增量比B组高1.79 kg,差异有统计学意义(F=27.49,P<0.0001)。综上,A饲料对家兔的增重效果更好。

End
文章目录 沉浸式阅读