R:Cohen的组d大小> 2,使用glm

时间:2015-02-20 16:12:10

标签: r package

是否有一个软件包可以从所有组的glm公式计算Cohen的d?我有4个独立变量,组大小分别为2,5,6和17.

最常见的软件包compute.eseffsize等不会使用glm公式或超过2的组大小。

谢谢!

2 个答案:

答案 0 :(得分:0)

让我们来看看科恩的公式:

cohen's d formula

Cohen的d采用2个均值并用合并的标准差对它们进行归一化。 它只能用2组。

  

...不要使用glm公式或超过2的组大小来做Cohen's d。

Cohen的d是针对2组计算的,与它们的大小无关,而R只将数值向量作为输入,而不是公式。也许你对effsize的公式界面感到困惑:

require(effsize)
cohen.d(d ~ f)

这不是GLM公式,而是将d中的数字映射到f中的因子。

如果你想要的是cohen d's,你可能需要计算所有成对的cohen d's。我对此表示怀疑,因为给予所有成对的cohen d's并没有给你的结果带来太大的影响。请查看以下链接with effect size measures for GLMs,看看您是否找到了符合您需求的内容。

答案 1 :(得分:0)

我也想从多个小组的角度来获得科恩的。 在寻找可能的解决方案时,我在ARTool软件包(https://cran.r-project.org/web/packages/ARTool/vignettes/art-effect-size.html)的文档中使用了car软件包的sigmaHat函数找到了这种方法

library(dplyr)      #%>%
library(emmeans)    #emmeans
library(DescTools)  #EtaSq
library(car)        #sigmaHat
library(ARTool)     #art, artlm
library(ggplot2)    #ggplot, stat_..., geom_..., etc

data(InteractionTestData)
df = InteractionTestData  

#we'll be doing type 3 tests, so we want sum-to-zero contrasts
options(contrasts = c("contr.sum", "contr.poly"))
m.linear = lm(Y ~ X1*X2, data=df)

x2.contrasts = summary(pairs(emmeans(m.linear, ~ X2)))

x2.contrasts$d = x2.contrasts$estimate / sigmaHat(m.linear)
x2.contrasts
 contrast estimate    SE  df t.ratio p.value       d
 C - D     -1.9121 0.142 294 -13.428 <.0001  -1.8991
 C - E     -1.8530 0.142 294 -13.013 <.0001  -1.8403
 D - E      0.0592 0.142 294   0.415 0.9093   0.0588

Results are averaged over the levels of: X1 
P value adjustment: tukey method for comparing a family of 3 estimates

对我来说,这也很有效,因为sigmaHat从线性,广义线性,非线性或其他模型返回估计的比例。

有人可以肯定这是一种有效的方法,可以一目了然地计算和报告科恩的成对比较吗?