我有两组不同个体的大脑解剖测量结果。一组比另一组有更多的个体(假设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)')
1条答案
按热度按时间hfwmuf9z1#
假设其中一个测量值是脑质量,将第1组的所有脑质量测量值集合成一个序列(或一维数组),对第2组也做同样的操作,将这两个序列传递给
ks_2samp
,这样就可以检验两组的脑质量是否来自同一个分布。例如,如果
group1
和group2
是Pandas DataFrame,其中一行表示每个个体,列表示与每个个体相关的不同测量值,包括一个称为“mass”的脑质量测量值,则您可以执行以下操作: