有没有一种方法可以直接使用emmeans()获取效应大小(如Cohen's d或最合适的效应大小)?
我无法找到任何使用emmeans()获取效应大小的内容。
post <- emmeans(fit, pairwise~ favorite.pirate | sex)
emmip(fit, ~ favorite.pirate | sex)
没有内置的效应量计算方法,但您可以通过定义自定义对比函数,将每个成对比较除以sigma值来拼凑一个。
mypw.emmc = function(..., sigma = 1) {
result = emmeans:::pairwise.emmc (...)
for (i in seq_along(result[1, ]))
result[[i]] = result[[i]] / sigma
result
}
> mypw.emmc(1:3, sigma = 4)
1 - 2 1 - 3 2 - 3
1 0.25 0.25 0.00
2 -0.25 0.00 0.25
3 0.00 -0.25 -0.25
使用您的模型,误差SD为9.246(查看summary(fit)
); 因此,...
> emmeans(fit, mypw ~ sex, sigma = 9.246, name = "effect.size")
NOTE: Results may be misleading due to involvement in interactions
$emmeans
sex emmean SE df lower.CL upper.CL
female 63.8 0.434 3.03 62.4 65.2
male 74.5 0.809 15.82 72.8 76.2
other 68.8 1.439 187.08 65.9 71.6
Results are averaged over the levels of: favorite.pirate
Degrees-of-freedom method: kenward-roger
Confidence level used: 0.95
$contrasts
effect.size estimate SE df t.ratio p.value
female - male -1.158 0.0996 399 -11.624 <.0001
female - other -0.537 0.1627 888 -3.299 0.0029
male - other 0.621 0.1717 981 3.617 0.0009
Results are averaged over the levels of: favorite.pirate
Degrees-of-freedom method: kenward-roger
P value adjustment: tukey method for comparing a family of 3 estimates
需要注意的是:
sigma
的变化。这不是一个很好的例子,因为
a. 因素相互作用(Edward Low在他的个人资料中不同)。此外,请参阅警告消息。
b. 模型是奇异的(在拟合模型时发出警告),导致 college
的估计方差为零。
emmeans(fit, pairwise ~ sex, divisor = 9.246)
。这将在下一个CRAN更新中提供,但现在可以从github网站rvlenth/emmeans获取。 - Russ Lenthlibrary(yarrr)
View(pirates)
library(lme4)
library(lmerTest)
fit <- lmer(weight~ favorite.pirate * sex +(1|college), data = pirates)
anova(fit, ddf = "Kenward-Roger")
post <- emmeans(fit, pairwise~ sex)
post