Python Scipy中关于大脑数据的双样本Kolmogorov-Smirnov检验

时间:2018-05-16 15:32:42

标签: python numpy scipy statistics

我有来自2个不同人群的大脑解剖测量。一组人数多于另一组人员(分别为n和m个人)。我必须对这些数据运行KS测试。我有点不清楚传递给scipy两个样本KS测试的论据。 scipy 2样本ks的参数是否会在第1组中针对for循环中第2组中的每个个体进行测试?或者,第1组中的每个功能是否与第2组中的其他所有功能相对应?

我编写了这段代码但显然是错误的,因为我使用iteritems()来循环遍历列,或许它应该是n * m?

for group1, group2 in zip(group1.transpose().iteritems(), 
group2.transpose().iteritems()):

    value, pvalue = ks_2samp(np.array(group1[1]), np.array(group2[1]))
    print(value, pvalue)
    if pvalue > 0.05:
        print('Samples are likely drawn from the same distributions 
        (fail to reject H0)')
    else: 
        print('Samples are likely drawn from the different 
        distributions (reject H0)')

1 个答案:

答案 0 :(得分:1)

让我们说其中一项测量是脑部质量。将组1的所有脑质量测量值收集到序列(或1-d阵列)中,并对组2进行相同操作。将这两个序列传递给ks_2samp。这将测试两组的大脑质量是否来自同一分布。

例如,如果group1group2是Pandas DataFrames,每个人都有一行,并且每个人都有不同测量值的列,包括一个名为" mass"对于脑部肿块,你会这样做:

value, pvalue = ks_2samp(group1['mass'].values, group2['mass'].values)