【问题标题】:Unusually large value for statistic in wilcoxon test in scipyscipy中wilcoxon测试中的统计值异常大
【发布时间】:2017-03-10 06:07:12
【问题描述】:

我正在对实验前后每人平均心率的数据集进行 wilcoxon 测试。大约有62人参加。

我跑:

statistic, p-value = wilcoxon(dataBefore - dataAfter)

p 值为 0.0005,但统计数据为 498。这似乎是一个异常大的数字。我注意到这里返回的内容有些不清楚。我认为 scipy 使用了 t 检验,但我也看到人们将其存储为 z 统计量。它在返回什么?

该手册对我来说没有多大意义:https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.wilcoxon.html 它说: “statistic : float - 高于或低于零的差的等级之和,以较小者为准。” 但这对我来说没有多大意义。这是人们通常报告的价值吗?

【问题讨论】:

    标签: python numpy statistics


    【解决方案1】:

    Wilcoxon 符号秩检验与检验统计量 W 或检验统计量 T 一起使用。有关 WT 的计算的详细信息,请参阅Wikipedia,包括一个示例。 scipy.stats.wilcoxon 计算 T。 (与 R 一样,但它调用统计量 V。)对于 N = 62,W 的最大可能值为 1+2+ ...+62 = 1953,T 的最大可能值是它的一半,所以你的 T = 498 没问题。

    请注意,Wilcoxon T 不是来自学生 t 检验的 t。但是,如果前后差异通过正态性,则配对 t 检验可以用作 Wilcoxon 的替代方法,例如,请参阅 GraphPad 的 checklist

    这是一个人工心率数据示例,Wilcoxon p-value 和 T 与您的情况类似:

    import scipy.stats as st, numpy as np
    
    # example data with 63 before-after values  
    before = np.arange(50, 70, 0.32)
    after = np.arange(46.5, 76.5, 0.48)
    
    print st.wilcoxon(before, after)
    print st.ttest_rel(before, after)
    

    输出是

    WilcoxonResult(statistic=506.0, pvalue=0.00058875122425830928)
    Ttest_relResult(statistic=-3.9512409047662991, pvalue=0.00020172580202906966)
    

    此示例中的前后差异是均匀分布的,因此不是很正常,因此 Wilcoxon 检验将是更好的选择。

    【讨论】:

      猜你喜欢
      • 2014-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多