如何从 R 的 ezANOVA 输出的 muchly 计算卡方?

机器算法验证 r 重复测量
2022-03-22 14:13:48

我正在研究 Andy Field 的Discovering Statistics with R,在重复测量部分他展示了如何包中计算然后他继续说卡方值(近似值不准确)将在一篇文章中报告,但没有解释如何从跳转到(至少我可以看到)。我得到了的 df,但没有得到值的计算。 WezANOVAezWχ2χ2χ2

制作可重现示例的代码:

library(reshape2); library(ez)
dat <- data.frame(id=as.factor(1:10), matrix(rpois(90, 10), ncol=9))
dat2 <- melt(dat)
ezANOVA(data=dat2, dv = .(value), wid=.(id), within=.(variable), 
    detailed=TRUE, type=3)

数据框如下所示:

   id X1 X2 X3 X4 X5 X6 X7 X8 X9
1   1  8  9  7  4 11  7 17  2  6
2   2 14 10  9  8  5 14 11 11  8
3   3  9  9  9  9 19 13  5  9 10
4   4  8  7 14  9  5  9 10  6 12
5   5  7  8 10  3  8 10  6 14 11
6   6  6  7 14  6  8 10  9  9 16
7   7  7 13 11 11  7  7 13  6  9
8   8  9  8 14  9  7  5 14  9  7
9   9 12  4  8 12  5 15 14 11  5
10 10  1  9 11  6  6  9  8  9 11

输出ezANOVA

$ANOVA
       Effect DFn DFd       SSn       SSd           F                   p p<.05       ges
1 (Intercept)   1   9 7416.5444  54.01111 1235.836453 0.00000000006027733     * 0.8943306
2    variable   8  72  106.1556 822.28889    1.161879 0.33404053851453236       0.1080513

$`Mauchly's Test for Sphericity`
    Effect           W         p p<.05
2 variable 0.003960765 0.6793373      

$`Sphericity Corrections`
    Effect      GGe     p[GG] p[GG]<.05      HFe     p[HF] p[HF]<.05
2 variable 0.548411 0.3435378           1.134714 0.3340405  

我不在乎解决方案是否已经在某个 R 包中,或者是否必须手动完成计算(尽管后者可能更具指导性)。

1个回答

使用这篇关于Mauchly 测试切换的近似值Wlog(W)χ2

library(reshape2); library(ez)
dat <- data.frame(id=as.factor(1:10), matrix(rpois(90, 10), ncol=9))
dat2 <- melt(dat)
mod <- ezANOVA(data=dat2, dv = .(value), wid=.(id), within=.(variable), 
    detailed=TRUE, type=3)
mod


#or repeated measures
k <- 5
#number of particpants  
n <- 9
d <- 1 - ((2 * ((k - 1)^2)+(k - 1)+2)/(6*(k - 1)*(n - 1)))

W <- mod[[2]][2]     #Mauchly's W from ezANOVA
-(n-1)*d*log(W)      #chi^2
(k*(k - 1)/2) - 1    #df