我可以使用置换测试来避免比例上下文中的多重比较问题吗?

机器算法验证 r 多重比较 置换检验
2022-03-17 20:12:11

我正在评估 5 种不同方法来预测特定二元结果的有效性(称它们为“成功”和“失败”)。数据如下所示:

Method    Sample_Size    Success    Percent_Success
1         28             4          0.14  
2         19             4          0.21  
3         24             7          0.29  
4         21             13         0.61  
5         22             9          0.40 

我想在这 5 种方法中进行测试,以评估这些方法的相对优越性。换句话说,我想按性能顺序对方法进行排序,方法 1 > 方法 2 > ... 方法 5。为了避免多重比较的问题,我计划按照以下几行进行排列测试:

第 1 步:汇集所有数据,使总样本量为 114,总共 37 次成功。

第二步:将数据随机分成5组,对应的样本量分别为28、19、24、21、22。

第 3 步:如果从第 2 步观察到的 Percent_Success 顺序与我的数据顺序一致,则增加一个计数器。

第 4 步:多次重复第 2 步和第 3 步(比如 10000 次)。

所需的 p 值 = 最终计数器值 / 10000。

问题:

  1. 上面的程序可以吗?

  2. R中有什么东西可以让我执行上述测试吗?

  3. 任何改进或替代方法的建议都会有所帮助。

2个回答

建议的程序没有回答您的问题。它仅在原假设下估计您观察到的顺序发生的频率。但是在那个空值下,一个很好的近似值,所有订单的可能性都是一样的,因此您的计算将产生接近 1/5 的值!= 约 0.83%。这什么也没告诉我们。

一个更明显的观察结果:根据您的数据,顺序是 4 > 5 > 3 > 2 > 1。您对它们的相对优势的估计是 0.61 - 0.40 = 21%、0.40 - 0.21 = 11% 等。

现在,假设您的问题涉及在没有差异的零假设下,任何的比例差异在多大程度上可能是由于偶然性造成的。您确实可以通过排列测试来评估这十个问题。但是,在每次迭代中,您需要跟踪十个相对差异的指标,而不是总订单的一个全局指标。(52)=10

对于您的数据,具有 100,000 次迭代的模拟给出了结果

543210.024390.00030.132330.2996120.097630.003740.2922230.202530.0088440.08702

方法 4 与方法 1、2 和 3 之间的比例差异不太可能是由于偶然性(估计概率分别为 0.03%、0.37%、0.88%),但其他差异可能是。有一些证据 (p = 2.44%) 表明方法 1 和 5 之间存在差异。因此,您可以确信关系 4 > 3、4 > 2 和 4 > 1 所涉及的比例差异都是正数,最有可能的是 5 > 1 的差异。

您建议的 Monte-Carlo 置换检验程序将为所有方法的成功概率相同的零假设检验产生一个 p 值。但是,当相应的精确置换测试完全可行时,没有理由在这里进行蒙特卡洛置换测试。这是 Fisher 的精确检验(好吧,有些人为 2x2 表保留该名称,在这种情况下,它是条件精确检验)。我刚刚将您的数据输入了 Stata 和 -tabi ...,精确地给出了 p=.0067(作为比较,Pearson 的卡方检验给出了 p=.0059)。我确信 R 中存在一个等效的函数,R 专家很快就会添加它。

如果您真的想查看排名,您可能最好使用贝叶斯方法,因为它可以简单地解释为每种方法确实是最好的、第二好的、第三好的……的概率。当然,这是以要求您先验概率为代价的。排名的最大似然估计只是观察到的排序,但据我所知,很难以一种易于解释的方式量化频率论框架中排名的不确定性。

我意识到我没有提到多重比较,但我只是不明白这是怎么回事。