简介
皮尔逊相关系数(Pearson Correlation Coefficient, pcc)可以度量两个随机变量的线性相关程度,pcc的取值范围为[-1,1]。pcc = 1代表完全线性正相关,pcc = 0代表无线性相关关系,pcc = -1代表完全线性负相关。下面我们用WIKIPEDIA中的一张图来具体感受数据分布和pcc数值的关系。
定义
接着给出pcc的具体定义,对于随机变量,他们的pcc为:
其中:
表示随机变量和的协方差;
表示随机变量的标准差;
表示随机变量的标准差;
当我们将上述定义应用于样本数据,即得到了样本pcc:
其中:
和为样本均值
进一步的,我们将和代入得到,
缺点
1 只能度量“线性”相关关系,对于其他相关关系不敏感
import numpy as np
from scipy.stats import pearsonr
import matplotlib.pyplot as plt
rng = np.random.RandomState(1) #保证每次生成相同的随机序列
x = rng.normal(0, 5, size = 10000)
y = np.sin(x)
plt.scatter(x,y)
plt.xlabel('x')
plt.ylabel('y = sin(x)')
r = pearsonr(x,y)[0]
我们利用如上的代码生成了下图。由于设定, 所以和有很强的相关关系(一种具体的函数关系),但是经过计算我们发现pcc = 0.00083。这可以表明,如果我们用pcc来衡量此数据的相关关系的话,会得到很差的效果。
2 数据必须尽量服从正态分布
Reference
https://en.wikipedia.org/wiki/Pearson_correlation_coefficient