皮尔逊相关系数

1. 定义

皮尔逊相关系数用于度量两个变量(X和Y)之间的线性相关程度,其值介于-1与1之间。这种线性相关直观表述就是,随着X增大,Y是否同时增大或者减小;当二者分布在一条直线上时,皮尔逊相关系数等于1或-1; 两个变量之间没有线性关系,皮尔逊相关系数为0.

相关系数计算公式:

皮尔逊相关系数计算公式

2. 皮尔逊相关系数与协方差

换个角度理解皮尔逊相关系数:
皮尔逊相关系数就是两个变量协方差除以两个变量标准差乘积:

协方差是一个反映两个随机变量相关程度的指标,协方差大于0的时候表示两者正相关,小于0的时候表示两者负相关),但是协方差值的大小并不能很好地度量两个随机变量的关联程度,值的大小受到两个变量量纲的影响,不适合用于比较。为了更好的度量两个随机变量的相关程度,引入了Pearson相关系数,其在协方差的基础上除以了两个随机变量的标准差,消除了量纲的影响。

3. 皮尔逊相关系数度量

  • 0.8-1.0 极强相关
  • 0.6-0.8 强相关
  • 0.4-0.6 中等程度相关
  • 0.2-0.4 弱相关
  • 0.0-0.2 极弱相关或无相关

4. python中如何计算皮尔逊积矩相关系数

M1

import pandas as pd
import numpy as np
  
#原始数据
x= pd.Series([3,1,2,2,1,3])
y= pd.Series([1,2,3,2,1,1])
r = x.corr(y,method="pearson")
print(r)
-0.2738612787525831

M2

import scipy.stats
x= pd.Series([3,1,2,2,1,3])
y= pd.Series([1,2,3,2,1,1])
scipy.stats.pearsonr(x,y)[0]
-0.27386127875258304

M3

import numpy as np
def pearson_r(x, y):
    mx = np.mean(x, axis=0)
    my =np.mean(y, axis=0)
    xm, ym = x - mx, y - my
    r_num = np.sum(xm * ym)
    x_square_sum = np.sum(xm * xm)
    y_square_sum = np.sum(ym * ym)
    r_den = np.sqrt(x_square_sum * y_square_sum)
    r = r_num / r_den
    return np.mean(r)
pearson_r(x,y)
-0.27386127875258304

参考:
皮尔逊积矩相关系数
如何理解皮尔逊相关系数(Pearson Correlation Coefficient)

你可能感兴趣的:(皮尔逊相关系数)