使用哪个测试来比较 3 组之间的比例?

机器算法验证 假设检验 二项分布 多重比较
2022-02-28 03:22:09

我们正在测试一个电子邮件营销活动。在我们最初的测试中,我们发送了两种不同类型的电子邮件,并有第三个对照组没有收到电子邮件。现在,我们将返回“结果”作为返回我们应用的用户的比例。结果如下:

  Group | received e-mail | returned | %-returned
  -----------------------------------------------
  A     | 16,895          | 934      | 5.53%
  B     | 17,530          | 717      | 4.09%
  C     | 42408           | 1618     | 3.82%

看起来 A 组实际上可能比 B 和 C 组更好,但什么是显示这一点的正确测试?

2个回答

在这样的表中,您可以对 G 检验产生的 G 统计量进行分区,而不是计算 OR 或运行逻辑回归。尽管您必须决定如何对其进行分区。这里的 G 统计量类似于 Pearson 的 X^2 并且也遵循 X^2 分布,为:

G = 2 * 总和(OBS * ln(OBS/EXP))。

您首先计算整个表的值,在这种情况下:G = 76.42,在 2 df 上,这是非常显着的 (p < 0.0001)。也就是说,回报率取决于组(A、B 或 C)。

然后,因为您有 2 df,您可以执行两个较小的 1 df (2x2) G 测试。但是,在执行第一个测试后,您必须折叠第一个测试中使用的两个级别的行,然后使用这些值对第三个级别进行测试。在这里,假设您首先针对 C 测试 B。

Obs   Rec    Ret    Total
B   17530    717    18247
C   42408   1618    44026

Exp     Rec    Ret  Total
B   17562.8  684.2  18247
C   42375.2 1650.8  44026

这会在 1 df 上产生 2.29 的 G-stat,这并不显着(p = 0.1300)。然后创建一个新表,将 B 行和 C 行组合起来。现在针对 B+C 测试 A。

Obs   Rec    Ret    Total
A   16895    934    17829
B+C 59938   2335    62273

Exp     Rec    Ret  Total
A   17101.4  727.6  17829
B+C 59731.6 2541.4  62273

这会在 1 df 上产生 74.13 的 G-stat,这也非常显着(p < 0.0001)。

您可以通过添加两个较小的测试统计量来检查您的工作,这应该等于较大的测试统计量。确实如此:2.29 + 74.13 = 76.42

这里的故事是,您的 B 组和 C 组没有显着差异,但是 A 组的回报率高于 B 和 C 组的总和。

希望有帮助!

您也可以通过先比较 A 和 B,然后比较 C 和 A+B,或者比较 A 和 C,然后比较 B 和 A+C,对 G-stat 进行不同的分区。此外,您可以将其扩展到 4 个或更多组,但在每次测试之后,您必须折叠刚刚测试的两行,最大测试数等于原始表中的 df。还有其他方法可以对更复杂的表进行分区。Agresti 的书《分类数据分析》应该有详细信息。具体来说,他关于双向列联表推理的章节。

我会简单地计算 A 组和 B 组之间、B 组和 C 组之间以及 A 和 C 组之间的优势(或风险)比,看看它们是否在统计上不同。在这种情况下,我认为没有理由进行“综合”比例测试,因为您只有三个组。三个卡方检验也可以解决问题。

正如一些人在下面的评论中所概述的那样,带有计划对比的逻辑回归也可以很好地工作。