r data.frame添加_R软件和SPSS | 重复测量方差分析

介绍:重复测量是指对一些个体在不同的时间点(或实验条件)进行同类型的测量,获得了个体在不同时间(或不同实验条件)下的度量数据,如反应时、ERP波幅等连续型数据。重复测量方差分析是实验心理学的数据分析中最常用的方法之一,需要考虑的数据的因素比较复杂,比如数据是否正态分布,是否球型度,不同情况产生的结果是否不同。本推文结合实验数据探讨R软件和SPSS做重复测量方差分析的流程,对所产生的结果的差异进行讨论。

1.    数据预处理

上一期推文,我们对一次3*2的被试内设计实验得到的14个被试的数据进行了预处理,得到了84个反应时数据。在以反应时为重复测量数据时,一般以某条件下反应时的平均值或中位数代表该条件下的反应时,在此基础上做方差分析检验主效应或交互作用。

SubVarAVarBRT
11levelA1levelB1463.3473
21levelA1levelB2458.8841
31levelA2levelB1555.6667
4............
...............
81............
8214levelA2levelB2486.5000
8314levelA3levelB1460.4154
8414levelA3levelB2469.6383

表1

2.R软件的分析

2.1.aov()函数进行重复测量方差分析

    用R软件做方差分析的一个内置函数(不需要调用开源程序包的函数)是aov()函数,语法为aov(formula, data = dataframe),重复测量方差分析的formula是:y ~ B * W + Error(Subject/W),其中W表示组内因子,B表示组间因子。aov()函数还能做其他方差分析,由于不在本文范围,不做详述,有需要的同学可以参看《R语言实战》的第九章(201页起)。

    上一期推文的最后,我们将数据拆分到个体水平。

D.sub.AB =ddply(D.Blank ,.( Sub, VarA, VarB ), summarize, RT=mean(RT))

#得到表1数据

    以反应时为因变量,做被试内VarA * VarB 重复测量方差分析。

#需要先将被试变量转为因子型数据

D.sub.AB$Sub=factor(D.sub.AB$Sub) 

#利用aov()函数进行重复测量方差分析

AB.aov

summary(AB.aov)

7b589c3b512b3cd09a7fdc5ce449e6fe.png

图1:summary(AB.aov)的结果

2.2.计算偏eta方

    这里利用自建函数计算偏eta方

#建函数

es=function(x,n=NULL) {                                      
  if(is.null(n)) n=length(names(x))-2
  k=NULL
  p=summary(x)
  for(i in (1:n)+1) {
    l=unlist(p[i][[1]])
    k=c(k,l[3]/sum(l[3:4]))
  }
  names(k)=names(p)[(1:n)+1]
  k
}

#计算偏eta方

es(AB.aov)

41deae0275093aea5630502b3a6ccc51.png

图2:es(AB.aov)的结果

可与SPSS的结果作一下比较,见图11。

2.3.将数据保存到指定位置的txt文件

###保存到指定路径下的txt中

setwd("D:/wechatpaper")
sink('result.txt')
paste("Accuracy =", ACCMean, "% /", "SD =", ACCSD)
paste("Subjects =", nSub, '( Male&Female=',nMale, '&', nFemale, ') /',
      "MeanAge =",MeanAge, "range from",MinAge,"-",MaxAge)
paste("RejectRate =", RejectRate,"%")
'result of anova:'
summary(AB.aov)
'effect size:'
es(AB.aov)
sink()
getwd()#查看保留路径

3.SPSS的分析

3.1.数据转置

####转化为14×6的数据矩阵导入spss

library(reshape)
datacast=cast(D.sub.AB,Sub~VarA+VarB,value='RT')
write.csv(datacast,file="DsubAB.csv")
getwd()#查看保留路径

3f3b1aebb4194ca460a4aa8fdd89157e.png

图3:按测量条件排列数据

3.2.将数据导入SPSS

注:对SPSS的介绍是基于中文版的界面的,如果想从英文版界面转为中文版:Edit> Options> Language> User Interface> Chinese (Simplified)> OK

打开spss>打开其他文件>(找到你的数据并打开)>(文本导入,第二步设置为包括变量名)>下一步...

5fc63221856d699ad6023973245954ea.png

图4:导入数据到SPSS

3.3.进行重复测量方差分析

点击工具栏的:分析>一般线性模型>重复测量>

1ca61cbe31c50d38dd3b64a5af6e2e8f.png

图5

4d2c401350d9b2b74b8e22f2e58f63d3.png

图6:定义因子

>定义因子(图6):1.主体内因子填A,级别数3;添加;2.主体内因子填B,级别数2;添加;3.定义

f2fcb478ce22cf3e6c881a516fbf2405.png

图7:设置主体内变量

>设置主体内变量(图7):将右边框的六个水平依次移动到主体内变量,注意A和B的对应位置。

>选择输出的结果内容(图8):1.图:水平轴A;单独线条B;添加;继续;

4e81917322a91228a146fcbe9e254e57.png

图8:设置输出的图

>选择输出的结果内容(图9):2.选项:因子与因子交互的所有内容移动到右边框,比较主效应;在描述统计、效应量估计、参数估算值、齐性检验等内容打勾,需要其他的数据的话也可以打勾,不影响结果。

a53e57c6777b726577d31575f501fdc6.png

图9:选择输出的数据结果

>确定

输出的结果清单有:

1.主体内因子;

2.描述统计;

3.多变量检验;

4.莫奇来球形度检验;

5.主体内效应检验;

6.主体内对比检验;

7.主体间效应检验;

8.参数估计值;

9.总平均值;

10.A变量估算值;

11.A变量内成对比较;

12.A变量的多变量检验;

13.B变量估算值;

14.B变量内成对比较;

15.B变量的多变量检验;

16.变量B在变量A各水平上的差异;

17.图

这里只比较R软件和SPSS输出结果的主效应和交互作用有何差异,所以只讨论3-5的结果。

3.4.从SPSS输出的结果解读主效应和交互作用

    根据网络上的一些解读教程,我总结了以下的流程(图9)。首先看莫奇来球形度检验(图10),若显著性p>0.05,说明数据符合球形度,即三水平或以上的数据中,每两组的数据方差是齐性的,此时应以主体内效应检验(图11)结果为准。主体内效应结果会呈现4个数据:假设球形度、格林豪斯-盖斯勒、辛-费德特、下限;如果四组数据不一致,建议以格林豪斯-盖斯勒的结果为准。许多文献中都有提到Greenhouse-Geisser的校正结果,因为比较稳定。若显著性p<=0.05,说明数据不符合球形度,或者说是方差不齐,此时应以多变量检验(图12)结果为准。

4aeb396f510483afea8c0bafc357ebe6.png

图10:结果取舍的流程

6a98529d90cdb9e681f470d1bbff4648.png

图11:球形度检验

4e9e1533c3cf6afef33b2ea8c2ce5232.png

图12:主体内效应检验

77c6613aa62d344356e21b1bf3c81ae4.png

图13:多变量检验

在本例中,变量A和AB交互需要考虑球形度检验,AB交互数据满足球形度,变量A不满足,所以AB以主体内效应检验为准,主效应A以多变量检验为准。另一方面AB交互的结果中,以格林豪斯-盖斯勒的结果为准。

4.比较R软件和SPSS的结果

e24e85336d04664e0d8a1b1e2b443420.png

图14:R软件和SPSS的结果

    从上图可以看出R软件的结果和SPSS的结果是有所差异的,偏eta方(图2与图11,重要的统计结果)也有所不同。出现这种差异的原因在于R软件的aov()函数假设了数据符合球形度且正态分布(图15)。如果你考虑统计结果校正的问题的话,在此建议你做数据预处理和数据可视化时用R软件,做重复测量方差分析时用SPSS比较稳妥一点。当然,如果你觉得球形度检验和数据正态性不重要,也可以以R软件的结果为准,尽管两者会有略微的差异。

53f5829f40015765c528bb2521dae433.png

图15:《R语言实战》216页内容

参考资料:

RobertI.Kabacoff, 卡巴科弗, 陈钢, 肖楠, & 高涛. (2013). R语言实战.

https://www.bilibili.com/video/BV1Ps41177QH

https://www.sohu.com/a/123940962_489312

视频版介绍

后台回复demo1,可获得本推文中的R软件代码、SPSS的数据。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值