【问题标题】:In Python, how can I calculate correlation and statistical significance between two arrays of data?在 Python 中,如何计算两个数据数组之间的相关性和统计显着性?
【发布时间】:2012-06-22 17:16:34
【问题描述】:

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

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

我认为,让 scipy 或 numpy 给我两个数组的相关性和统计显着性的正确方法是什么?

【问题讨论】:

  • 你认为scipy.stats.pearsonr为什么要对数据进行操作,使其落入指定范围?
  • 相关系数介于 -1 和 +1 之间。这是输出,不是输入。

标签: python numpy statistics scipy correlation


【解决方案1】:

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

函数在scipy包中:scipy.spatial.distance.mahalanobis

有一个很好的例子here

【讨论】:

    【解决方案2】:

    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

    【讨论】:

      【解决方案3】:

      如果要计算皮尔逊相关系数,那么scipy.stats.pearsonr 是要走的路;虽然,意义只对更大的数据集有意义。此功能不需要将要操作的数据落入指定范围。相关性的值落在[-1,1] 区间内,也许这就是混乱?

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

      马氏距离确实考虑了两个数组之间的相关性,但它提供了距离度量,而不是相关性。 (在数学上,马氏距离不是真正的距离函数;不过,它可以在某些情况下使用,从而获得很大的优势。)

      【讨论】:

        猜你喜欢
        • 2011-04-26
        • 2020-01-04
        • 2022-11-23
        • 2020-05-22
        • 1970-01-01
        • 2022-08-19
        • 1970-01-01
        • 2020-08-02
        相关资源
        最近更新 更多