【问题标题】:Wilcoxon rank sum testWilcoxon秩和检验
【发布时间】:2016-03-11 03:09:45
【问题描述】:

我正在使用一个简单的数据集执行成对 Wilcoxon 检验,并得到了令人惊讶的结果。使用完整集(A、B 和 C)比较 ​​A 组和 C 组返回的 p 值不同于将 A 和 C 与数据子集(仅 A 和 C 组)进行比较。

dfx <- data.frame(group = c(rep('A', 8), rep('B', 15), rep('C', 6)), sex = sample(c("M", "F"), size = 29, replace = TRUE), age = runif(n = 29, min = 18, max = 54))
pairwise.wilcox.test(dfx$age, dfx$group, pool.sd=F, paired=F)

Pairwise comparisons using Wilcoxon rank sum test 
data:  dfx$age and dfx$group 
  A    B   
B 0.55 -   
C 0.13 0.19
P value adjustment method: holm 

dfx.ac<-dfx[which(dfx$group!='B'),]
pairwise.wilcox.test(dfx.ac$age, dfx.ac$group, pool.sd=F, paired=F)

Pairwise comparisons using Wilcoxon rank sum test 
data:  dfx.ac$age and dfx.ab$group 
  A    
C 0.043
P value adjustment method: holm 

对单个数据使用 Wilcoxon 检验返回相同的 p 值。

a<-dfx[which(dfx$group=='A'),]$age
c<-dfx[which(dfx$group=='C'),]$age
wilcox.test(a,c)
W = 8, p-value = 0.04262

wilcox.test(dfx.ac$age~dfx.ac$group)
W = 8, p-value = 0.04262

pairwise.wilcox.test(dfx$age, dfx$group, pool.sd=F,paired=F) 我做错了什么?

如果我比较一组 3 组或 4 组,差异相同。 dfx

dfx.nb<-dfx[which(dfx$group!='B'),]

pairwise.wilcox.test(dfx$age,dfx$group, pool.sd=F, paired=F)
  A    B    C   
B 1.00 -    -   
C 0.57 0.62 -   
D 0.56 0.56 1.00

pairwise.wilcox.test(dfx.nb$age,dfx.nb$group, pool.sd=F, paired=F)
  A    C   
C 0.28 -   
D 0.28 0.95

【问题讨论】:

    标签: r


    【解决方案1】:

    检查?pairwise.wilcox.test。该函数实现了对多重比较的校正,从而解释了差异。

    编辑添加:

    当您进行单次比较时,P 的 p 值可以解释为表示在无效的原假设下获得观察数据的概率等于P。因此,如果我们想确保在无效的原假设下观察我们的数据的概率小于0.05,我们只需检查是否p&lt;0.05(在统计学中,我们将阈值称为显着性@ 987654327@,并经常对p &lt; alpha=0.05感兴趣)。但是如果你比较大量的组,那么你会发现至少有一个p值小于alpha的概率远大于alpha!

    例如,假设我做了两个独立的比较。如果原假设为真,则每个产生小于alpha=0.05 的 p 值的概率为 0.05。但其中至少一个产生小于alpha=0.05 的p 值的可能性是1-0.95*0.95 = 0.0975。因此,我们几乎有十分之一的机会出现 I 类错误(如果零假设是正确的)。如果我们进行 100 次比较,我们几乎可以肯定,如果我们不加批判地解释我们的 p 值,我们将犯 I 类错误。

    为避免这种情况,我们可以“调整” p 值以确保我们控制 I 类错误率。最保守的选项,称为 Bonferroni 校正,是通过将 alpha 除以我们执行的比较次数来调整(其效果类似于将我们的 p 值乘以比较次数)。

    pairwise.wilcox.test 正在自动调整 p 值,以便它们可以根据alpha=0.05 进行解释,而不会严重夸大 I 类错误率。您进行的比较越多,需要调整的 p 值就越多,以控制类型 1 错误率。 [顺便说一句,请注意校正有点复杂,因为三个比较不再完全相互独立(您可以通过注意(a &gt; b) &amp; (b &gt; c) 隐含a &gt; c 来看到这一点)。在实践中,我们在进行调整时通常不会考虑这种非独立性。]

    调整方法定义pairwise.wilcox.test 如何估计必要的调整。更改调整方法将更改估计必要调整的详细信息,并可能更改您的 p 值。调整方法Holm大概实现了Holm-Bonferroni method

    【讨论】:

    • 在这两种情况下,我都使用 Holm 调整方法。唯一的区别是一组包含两组,另外三组。我分别对 3 组和 4 组做了同样的事情。
    • 但是您在这两种情况下进行了不同数量的比较!我将在我的答案中添加对多次测试更正的逻辑和目的的解释。
    • 好的,另一个调整函数会给出相同的结果吗?我会比较所有组,就好像我会使用 wilco.test 遍历它们一样。
    • 非常感谢您的详细解释。我不是统计学家,很遗憾无法显示真实数据。我比较了重复的独立实验,我使用箱线图显示。其中,我想强调显着不同的箱线图。由于实验次数仅重复 6 到 10 次,无法评估预期的正态分布,因此我选择了 Wicoxon 检验。
    • 使用 Wilcoxon 测试很聪明。您选择的测试不会改变多重比较的问题。你有两个选择。一种是报告单次比较的 p 值。请记住,这意味着即使您的比较中没有影响,您检测到的“显着”影响的平均数量将更接近于 alpha 比较次数的倍数 比阿尔法。因此,当实际上任何地方都没有效果时,您可能会展示一堆“重要”的箱线图。
    猜你喜欢
    • 2013-09-19
    • 1970-01-01
    • 2020-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-08
    相关资源
    最近更新 更多