Python:2-D Kolmogorov-Smirnov,有2个样本

时间:2015-04-09 16:41:44

标签: python statistics scipy

我有两个维度的两个数据集:(X1,Y1)和(X2,Y2)。 我希望能够计算KS检验统计量,以确定来自这两个数据集的值是来自相同或不同的分布。之前我使用过scipy.stats.ks_2samp,但是比较一个维度中的两个数据集,或者两个样本的概率分布。然而,在这种情况下,我坚持不是概率分布,而是两个样本的离散x和y值。对于这种情况,我怎样才能在python中获得ks测试值?我为每个参数X1,Y1,X2和Y2分别设置了numpy数组。 谢谢!

1 个答案:

答案 0 :(得分:3)

This Notebook为2个样本提供了用于2D K-S测试的Python实现。 .py文件可以下载here。代码似乎是C代码的翻译,如果样本量很大,效率可能会有问题。

更多信息

该算法首先在两篇论文中开发

可以在

中找到一个很好的介绍和C实现

此处标题为Beware the Kolmogorov-Smirnov test的帖子也与主题相关,您可能需要查看。

更新

我还使用numpy编写了一个python实现,它应该有更好的性能。您可以找到代码here

您最好使用原始论文/书籍检查代码(无论哪一个)。 2d KS测试的python实现远没有那些在numpy / scipy中的检查。