You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询Dunn事后检验中A-B与B-C出现相同p值的原因

问题:Dunn检验中A-B与B-C对比p值相同的原因

我正在学习统计学,在使用事后检验时发现Dunn检验会返回相同的p值,更换数据集后该问题仍重复出现。以下是我的Python代码示例:

import pandas as pd
from scipy.stats import kruskal
from scikit_posthocs import posthoc_dunn

data = {
    'Group': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
    'Values': [10, 15, 12, 18, 20, 22, 25, 28, 30]
}

df = pd.DataFrame(data)

statistic, p_value = kruskal(df[df['Group'] == 'A']['Values'],
                              df[df['Group'] == 'B']['Values'],
                              df[df['Group'] == 'C']['Values'])

print(f"Kruskal-Wallis p-value: {p_value}")

posthoc_results = posthoc_dunn(df, val_col='Values', group_col='Group', p_adjust='holm')

print("\nDunna's Test Results:")
print(posthoc_results)

运行后得到的结果如下:

A         B       C
A  1.000000  0.359425  0.021871
B  0.359425  1.000000  0.359425
C  0.021871  0.359425  1.000000

请问为何A组与B组、B组与C组对比的p值相同?


原因分析

  1. 数据的秩次差异完全相等
    给所有数据按从小到大排秩:10(1)、12(2)、15(3)、18(4)、20(5)、22(6)、25(7)、28(8)、30(9)

    • A组秩和:1+2+3=6
    • B组秩和:4+5+6=15
    • C组秩和:7+8+9=24
      组间秩和差:B-A=9,C-B=9,两组间的秩次差异完全一致。
  2. Dunn检验的计算逻辑
    Dunn检验基于组间秩次差异计算统计量,再结合指定的校正方法(这里是holm)计算p值。当两组的秩次差异相同时,对应的基础统计量一致,经过holm校正后的p值自然会相同。

  3. 更换数据集后的重复现象
    你更换的数据集大概率也存在类似的组间秩次差异相等的情况,才会导致相同的p值结果出现。

内容的提问来源于stack exchange,提问作者user11095838

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:33:26