【问题标题】:Numpy correlation confusion [duplicate]Numpy相关混淆[重复]
【发布时间】:2015-06-19 04:17:24
【问题描述】:

我想计算 2 个数组之间的相关性。为此,我想使用 NumPy。

我在一个小例子中使用了numpy.correlate 函数:

import numpy as np

a = [1, 2, 3]
b = [2, 3, 4]

np.correlate(a, b)
>>> np.array([20])

我真的不知道如何解释这个结果。我想要的是一个介于 -1 和 1 之间的数字来表示相关性,其中 1 表示数组正相关,-1 表示数组负相关。

我怎样才能得到这个号码?

【问题讨论】:

    标签: python numpy correlation


    【解决方案1】:

    您使用了错误的功能。您正在寻找numpy.corrcoef,它实际上计算相关系数。

    a = [1, 2, 3]
    b = [2, 3, 4]
    
    >>> np.corrcoef(a, b)
    array([[ 1.,  1.],
           [ 1.,  1.]])
    

    As mentioned by Hooked,这会从协方差矩阵中返回一个值矩阵。

    如果你想要 Pearson 相关系数,你可以使用 pearsonr from scipy.stats.statsHooked's answer here 是此方法的正确实现。

    【讨论】:

    • 应该注意,这会返回协方差矩阵中的值的矩阵。我认为 OP 正在寻找皮尔逊相关系数。
    • 如何解释这个矩阵?是不是不能单号?
    • @JNevens 啊,您正在寻找 Pearson。那我就跟着骗子了,Hooked 有一个很好的答案。
    猜你喜欢
    • 2012-12-22
    • 1970-01-01
    • 2016-02-10
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    相关资源
    最近更新 更多