我正在对实验前后人均心率的数据集进行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它说: “统计:浮动 - 差异等级的总和高于或低于零,以较小者为准。” 但这对我来说没有多大意义。这是人们通常报告的价值吗?
答案 0 :(得分:0)
Wilcoxon符号秩检验与检验统计量 W 或检验统计量 T 一起使用。有关 W 和 T 计算的详细信息,请参阅Wikipedia,其中包括一个示例。 scipy.stats.wilcoxon
计算 T 。 (与R一样,但它调用统计量 V 。)对于 N = 62, W 的最大可能值为1 + 2 + ... + 62 = 1953, T 的最大可能值是该值的一半,因此您的 T = 498就可以了。
请注意,Wilcoxon T 不来自Student's t-test的 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测试将是更好的选择。