计算R中的Eta Squared用于重复测量

时间:2015-04-28 09:02:33

标签: r anova

我正在使用aov()函数来使用R执行重复测量ANOVA,例如在http://personality-project.org/r/r.anova.html站点。

datafilename <- "http://personality-project.org/r/datasets/R.appendix4.data"
data.ex4 <- read.table(datafilename, header=TRUE)   
data.ex4                                      

计算标准ANOVA允许使用etaSquared()包中的lsr函数或etasq()中的heplots函数:

aov.standard=aov(Recall~(Task*Valence),data.ex4 ) 
etaSquared(aov.standard)
etasq(aov.standard)

但是,在实施主体内模型时,两个功能都无法识别线性对象模型。

aov.within=aov(Recall~(Task*Valence)+Error(Subject/(Task*Valence)),data.ex4 )
etaSquared(aov.within)
etasq(aov.within)

有人有一个简单的解决方案吗? 提前谢谢。

1 个答案:

答案 0 :(得分:5)

当您使用ezANOVA包中的ez函数时,会自动计算eta平方:

library(ez)

m1 <- ezANOVA(data = data.ex4, dv = Recall, wid = Subject, within = .(Task,Valence), type = 3, detailed = TRUE)
m1$ANOVA

这给出了以下输出:

        Effect DFn DFd    SSn       SSd          F           p p<.05         ges
1  (Intercept)   1   4 4177.2 349.13333 47.8579339 0.002291098     * 0.910303347
2         Task   1   4   30.0  16.33333  7.3469388 0.053508297       0.067934783
3      Valence   2   8    9.8  26.86667  1.4590571 0.288250073       0.023255814
4 Task:Valence   2   8    1.4  19.26667  0.2906574 0.755343673       0.003389831

ges列具有您需要的广义eta平方值。