python计算皮尔森相关系数

参考博客:

https://blog.csdn.net/ruthywei/article/details/82527400

公式的核心作用就是研究两个变量的相关性

def pearson(vector1, vector2):
    n = len(vector1)
    #simple sums
    sum1 = sum(float(vector1[i]) for i in range(n))
    sum2 = sum(float(vector2[i]) for i in range(n))
    #sum up the squares
    sum1_pow = sum([pow(v, 2.0) for v in vector1])
    sum2_pow = sum([pow(v, 2.0) for v in vector2])
    #sum up the products
    p_sum = sum([vector1[i]*vector2[i] for i in range(n)])
    #分子num,分母den
    num = p_sum - (sum1*sum2/n)
    den = math.sqrt((sum1_pow-pow(sum1, 2)/n)*(sum2_pow-pow(sum2, 2)/n))
    if den == 0:
        return 0.0
    return num/den

python计算皮尔森相关系数_第1张图片

皮尔森相关系数受异常值的影响较大

这点在使用时需要注意

你可能感兴趣的:(python)