Python:具有 2 个样本的二维 Kolmogorov-Smirnov
Python: 2-D Kolmogorov-Smirnov with 2 samples
我有两个数据集,每个数据集都是二维的:(X1,Y1) 和 (X2,Y2)。
我希望能够计算 KS 检验统计量以确定这两个数据集中的值是否来自相同或不同的分布。我以前用过scipy.stats.ks_2samp,但那是在一个维度上比较两个数据集,或者可能是两个样本的概率分布。然而,在这种情况下,我坚持的不是概率分布,而是两个样本的离散 x 和 y 值。在这种情况下,我该如何继续获取 python 中的 ks 测试值?对于每个参数 X1、Y1、X2 和 Y2,我都有单独的 numpy 数组。
谢谢!
This Notebook provide a Python implementation for 2D K-S test with 2 samples. The .py
file can be downloaded here。代码好像是C
代码的翻译,如果样本量大,效率可能会有问题。
(破link)
更多信息
该算法在两篇论文中首次开发
- Peacock, J.A. 1983, Two-Dimensional Goodness-of-Fit Testing in Astronomy
- Fasano, G. and Franceschini, A. 1987, A Multidimensional Version of the Kolmogorov-Smirnov Test.
一个很好的介绍和 C
实现可以在
中找到
Press, W.H. et al. 1992, Numerical Recipes in C,第 14.7 节,p645。
您可以在本书的其他版本中找到 C++/Fortran
实现。
这里有个post标题Beware the Kolmogorov-Smirnov test也和主题有关,你不妨看看
更新
我也用 numpy 写了一个 python 实现,它应该比引用的笔记本有更好的性能。您可以找到代码 here.
你最好在任何申请之前检查代码(无论使用哪个)与原始papers/books。 python 2d KS 测试的实现比 numpy/scipy 中的其他共同测试要少得多。
我有两个数据集,每个数据集都是二维的:(X1,Y1) 和 (X2,Y2)。 我希望能够计算 KS 检验统计量以确定这两个数据集中的值是否来自相同或不同的分布。我以前用过scipy.stats.ks_2samp,但那是在一个维度上比较两个数据集,或者可能是两个样本的概率分布。然而,在这种情况下,我坚持的不是概率分布,而是两个样本的离散 x 和 y 值。在这种情况下,我该如何继续获取 python 中的 ks 测试值?对于每个参数 X1、Y1、X2 和 Y2,我都有单独的 numpy 数组。 谢谢!
This Notebook provide a Python implementation for 2D K-S test with 2 samples. The
(破link).py
file can be downloaded here。代码好像是C
代码的翻译,如果样本量大,效率可能会有问题。
更多信息
该算法在两篇论文中首次开发
- Peacock, J.A. 1983, Two-Dimensional Goodness-of-Fit Testing in Astronomy
- Fasano, G. and Franceschini, A. 1987, A Multidimensional Version of the Kolmogorov-Smirnov Test.
一个很好的介绍和 C
实现可以在
Press, W.H. et al. 1992, Numerical Recipes in C,第 14.7 节,p645。
您可以在本书的其他版本中找到
C++/Fortran
实现。
这里有个post标题Beware the Kolmogorov-Smirnov test也和主题有关,你不妨看看
更新
我也用 numpy 写了一个 python 实现,它应该比引用的笔记本有更好的性能。您可以找到代码 here.
你最好在任何申请之前检查代码(无论使用哪个)与原始papers/books。 python 2d KS 测试的实现比 numpy/scipy 中的其他共同测试要少得多。