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

zxlwwiss  于 2022-11-10  发布在  Python
关注(0)|答案(1)|浏览(210)

我有两组不同个体的大脑解剖测量结果。一组比另一组有更多的个体(假设n和m个个体)。我必须对这些数据进行KS检验。我对传递给scipy双样本KS检验的参数有点不清楚。scipy双样本ks检验的参数是否是for循环中组1中的每个个体对组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)')
hfwmuf9z

hfwmuf9z1#

假设其中一个测量值是脑质量,将第1组的所有脑质量测量值集合成一个序列(或一维数组),对第2组也做同样的操作,将这两个序列传递给ks_2samp,这样就可以检验两组的脑质量是否来自同一个分布。
例如,如果group1group2是Pandas DataFrame,其中一行表示每个个体,列表示与每个个体相关的不同测量值,包括一个称为“mass”的脑质量测量值,则您可以执行以下操作:

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

相关问题