Pearson Correlation Coefficient

2020-07-21  本文已影响0人  坐看云起时zym

简介

皮尔逊相关系数(Pearson Correlation Coefficient, pcc)可以度量两个随机变量的线性相关程度,pcc的取值范围为[-1,1]。pcc = 1代表完全线性正相关,pcc = 0代表无线性相关关系,pcc = -1代表完全线性负相关。下面我们用WIKIPEDIA中的一张图来具体感受数据分布和pcc数值的关系。


example.png

定义

接着给出pcc的具体定义,对于随机变量(X,Y),他们的pcc为:
\rho_{X, Y}=\frac{\operatorname{cov}(X, Y)}{\sigma_{X} \sigma_{Y}}
其中:
\operatorname{cov}(X, Y)表示随机变量XY的协方差;
\sigma_{X}表示随机变量X的标准差;
\sigma_{Y}表示随机变量Y的标准差;

当我们将上述定义应用于样本数据,即得到了样本pcc:
r_{x y}=\frac{\sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)\left(y_{i}-\bar{y}\right)}{\sqrt{\sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)^{2}} \sqrt{\sum_{i=1}^{n}\left(y_{i}-\bar{y}\right)^{2}}}
其中:
\bar{x}=\frac{1}{n} \sum_{i=1}^{n} x_{i}\bar{y}=\frac{1}{n} \sum_{i=1}^{n} y_{i}为样本均值
进一步的,我们将\bar{x}\bar{y}代入r_{x y}得到,
r_{x y}=\frac{n \sum x_{i} y_{i}-\sum x_{i} \sum y_{i}}{\sqrt{n \sum x_{i}^{2}-\left(\sum x_{i}\right)^{2}} \sqrt{n \sum y_{i}^{2}-\left(\sum y_{i}\right)^{2}}}

缺点

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]

我们利用如上的代码生成了下图。由于设定y = sin(x), 所以yx有很强的相关关系(一种具体的函数关系),但是经过计算我们发现pcc = 0.00083。这可以表明,如果我们用pcc来衡量此数据的相关关系的话,会得到很差的效果。

x vs sin(x).png

2 数据必须尽量服从正态分布

Reference

https://en.wikipedia.org/wiki/Pearson_correlation_coefficient

上一篇 下一篇

猜你喜欢

热点阅读