在Python Scipy中对大脑数据的双样本Kolmogorov-Smirnov测试



我有来自两组不同个体的大脑解剖测量。一个组比另一个组有更多的个体(例如 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 组的所有脑质量测量值收集到一个序列(或 1-D 数组)中,并对第 2 组执行相同的操作。 将这两个序列传递给ks_2samp。 这将测试两组的脑质量是否来自相同的分布。

例如,如果group1group2是 Pandas 数据帧,其中每个个体都有一行,列用于与每个人关联的不同测量值,包括一个称为"质量"的脑质量,您将执行以下操作:

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

最新更新