1

对于 ANOVA,可以很容易地得到部分 eta 平方 ( np2) 效应大小effectsize::eta_squared

> model <- aov(mpg ~ factor(cyl), data = mtcars)
> effectsize::eta_squared(model)
For one-way between subjects designs, partial eta squared is equivalent to eta squared.
Returning eta squared.
# Effect Size for ANOVA

Parameter   | Eta2 |       90% CI
---------------------------------
factor(cyl) | 0.73 | [0.57, 0.82]

此外,在 SPSS 中进行MANOVAnp2时,只需选中“Estimates of effect size”框即可轻松获得每个 DV。

在此处输入图像描述

在此处输入图像描述

但是,尝试获取np2R 中的每个 DV:

> model <- manova(cbind(mpg, hp) ~ factor(cyl), data = mtcars)
> effectsize::eta_squared(model)
# Effect Size for ANOVA (Type I)

Parameter   | Eta2 (partial) |       90% CI
-------------------------------------------
factor(cyl) |           0.46 | [0.28, 0.57]

或者:

> heplots::etasq(model)
                eta^2
factor(cyl) 0.4564352

只输出一个np2(对于全局模型?),而不是每个 DV 的单独效果大小。

注释文档?eta_squared

对于 mlm / maov 模型,分别为每个响应计算效果大小

但这显然是注意这里的情况。然而,当我检查对象的类时,它包括类maov

> class(model)
[1] "manova" "maov"   "aov"    "mlm"    "lm"    

当然,可以通过定义单独的模型为每个效应大小重新运行方差分析:

> model <- aov(mpg ~ factor(cyl), data = mtcars)
> effectsize::eta_squared(model)
Parameter   | Eta2 |       90% CI
---------------------------------
factor(cyl) | 0.73 | [0.57, 0.82]

> model <- aov(hp ~ factor(cyl), data = mtcars)
> effectsize::eta_squared(model)
Parameter   | Eta2 |       90% CI
---------------------------------
factor(cyl) | 0.71 | [0.55, 0.80]

或者lapply为每个模型写一个调用:

aov.list <- list(model1 <- aov(mpg ~ factor(cyl), data = mtcars),
                 model2 <- aov(hp ~ factor(cyl), data = mtcars))

lapply(aov.list, effectsize::eta_squared)

[[1]]
Parameter   | Eta2 |       90% CI
---------------------------------
factor(cyl) | 0.73 | [0.57, 0.82]

[[2]]    
Parameter   | Eta2 |       90% CI
---------------------------------
factor(cyl) | 0.71 | [0.55, 0.80]

但这似乎不是最有效的。当然,有一种方法可以做到这一点effectsize::eta_squared

问题

如何以正确的方式为每个 DV 在 R 中获得 MANOVA 的部分 eta 平方?

4

0 回答 0