2015-04-28 127 views
2

我正在使用aov()函數來執行使用R的重複測量ANOVA,例如,在http://personality-project.org/r/r.anova.html網站。重複測量計算R中的Eta平方

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) 

有沒有人有過這個簡單的解決方案? 在此先感謝。

回答

4

當您從ez包使用ezANOVA功能,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 - 您需要的平方值。

+0

非常有幫助謝謝! – Ralph