如何在R中计算Cohen's d(附实例)

2,374 阅读3分钟

在统计学中,我们经常使用p值来确定两组平均值之间是否存在统计学上的显著差异。

然而,虽然P值可以告诉我们两组之间是否存在统计学上的显著差异,但效应大小可以告诉我们这个差异究竟有多大。

最常见的效果大小的测量方法之一是科恩的d,其计算方法为:

Cohen's d = (x1-x2) / √(s12 + s22) / 2

其中:

  • x1,x2:分别为样本1和样本2的平均值
  • s12, s22:样本1和样本2的方差,分别为

利用这个公式,下面是我们如何解释科恩的d:

  • d0.5表示两组平均值相差0.5个标准差。
  • d1表示两组平均值相差1个标准差。
  • d2表示组内平均数相差2个标准差。

以此类推:

下面是另一种解释Cohen's d的方法。效应大小为0.5意味着第1组的平均人数比第2组的平均人数高出0.5个标准差。

在解释Cohen's d时,我们经常使用以下经验法则:

  • 0.2的值代表一个小的效应大小
  • 0.5的值代表一个中等效果大小
  • 0.8的值代表一个大的效应大小

下面的例子显示了如何在R中计算Cohen's d。

例子:如何在R中计算Cohen's d

假设一位植物学家给植物施用两种不同的肥料,以确定一个月后植物的平均生长量(以英寸为单位)是否有显著差异。

我们可以用两种方法来快速计算R语言中的Cohen's d。

方法1:使用lsr包

library(lsr)

#define plant growth values for each group
group1 <- c(8, 9, 11, 11, 12, 14, 15, 16, 16, 18, 20, 21)
group2 <- c(7, 9, 10, 10, 11, 11, 12, 14, 14, 16, 20, 23)

#calculate Cohen's d
cohensD(group1, group2)

[1] 0.2635333

方法2:使用effsize包

library(effsize)

#define plant growth values for each group
group1 <- c(8, 9, 11, 11, 12, 14, 15, 16, 16, 18, 20, 21)
group2 <- c(7, 9, 10, 10, 11, 11, 12, 14, 14, 16, 20, 23)

#calculate Cohen's d
cohen.d(group1, group2)

Cohen's d

d estimate: 0.2635333 (small)
95 percent confidence interval:
     lower      upper 
-0.5867889  1.1138555 

请注意,两种方法产生的结果是一样的。科恩的d是0.2635

我们将此解释为:接受1号肥料的植物的平均高度比接受2号肥料的植物的平均高度大0.2635个标准差。

使用前面提到的经验法则,我们会把这解释为一个小的效应大小。

换句话说,无论两种肥料之间的植物平均生长量是否存在统计学上的显著差异,小组平均值之间的实际差异是微不足道的。

其他资源

以下教程提供了关于效应大小和Cohen's d的额外信息:

效果大小:它是什么以及它为什么重要
如何在Excel中计算Cohen's d