在Python中,如何计算两个数据阵列之间的相关性和统计显着性?

时间:2012-06-20 14:26:18

标签: python numpy statistics scipy correlation

我有两组同样长的数据数据集,或者我可以创建一个包含两项数据的数组,我想计算数据所代表的相关性和统计显着性(可能是紧密相关的,或者可能没有统计学上显着的相关性。)

我正在用Python编程并安装了scipy和numpy。我查看并找到Calculating Pearson correlation and significance in Python,但似乎希望操纵数据,使其落入指定范围。

我认为,有什么方法可以让scipy或numpy给出两个数组的相关性和统计显着性?

3 个答案:

答案 0 :(得分:7)

如果你想计算Pearson相关系数,那么scipy.stats.pearsonr就是你要走的路;虽然,重要性仅对较大的数据集有意义。此功能不需要操纵数据落入指定范围。相关的值落在区间[-1,1]中,也许这就是混乱?

如果重要性不是很重要,您可以使用numpy.corrcoef()

Mahalanobis距离确实考虑了两个阵列之间的相关性,但它提供了距离测量,而不是相关性。 (数学上,马哈拉诺比斯距离不是真正的距离函数;然而,它可以在某些情况下如此使用,以获得巨大的优势。)

答案 1 :(得分:2)

您可以在这两个数组之间使用Mahalanobis distance,这会考虑它们之间的相关性。

该功能位于scipy包中:scipy.spatial.distance.mahalanobis

有一个很好的例子here

答案 2 :(得分:0)

<强> scipy.spatial.distance.euclidean()

这给出了2个点,2个np数组,2个列表等之间的欧氏距离

import scipy.spatial.distance as spsd
spsd.euclidean(nparray1, nparray2)

您可以在此处找到更多信息http://docs.scipy.org/doc/scipy/reference/spatial.distance.html