用numpy计算Pearson相关系数

2020年9月11日 / 52次阅读 / Last Modified 2020年9月11日
NumPy

Pearson相关系数,有些地址直接就说是 correlation coefficient,是用来判断两个变量线性相关程度的一个统计指标。计算公式如下:

Pearson相关系数
Pearson相关系数

cov(x,y)表示x和y的协方差。sigma_x和sigma_y分别是x和y的标准差。

numpy.corrcoef函数,对应pearson相关系数的计算,计算结果也是一个对称矩阵。

>>> ab = np.random.randn(2,10)
>>> ab
array([[-0.80352118, -0.53166139,  0.05714376,  0.33560234, -0.14251525,
         0.39068488,  1.13244498, -0.05797731, -1.50913616,  1.53437352],
       [ 0.68384754, -1.72543842,  0.23212496, -0.47594436, -0.98935316,
         0.42252572, -0.51605912,  0.72565695, -0.47538229,  2.02889833]])
>>> np.corrcoef(ab)
array([[1.        , 0.44232878],
       [0.44232878, 1.        ]])
>>> np.corrcoef(ab[0,:],ab[1,:])
array([[1.        , 0.44232878],
       [0.44232878, 1.        ]])

跟np.cov一样,np.corrcoef也是默认用row来定位数据。

下面是摘自网络的一段关于此相关系统使用的一些介绍:

积差相关系数的适用条件: 在相关分析中首先要考虑的问题就是两个变量是否可能存在相关关系,如果得到了肯定的结论,那才有必要进行下一步定量的分析。

另外还必须注意以下几个问题:

  • 1、 积差相关系数适用于线性相关的情形,对于曲线相关等更为复杂的情形,积差相关系数的大小并不能代表相关性的强弱。
  • 2、 样本中存在的极端值对Pearson积差相关系数的影响极大,因此要慎重考虑和处理,必要时可以对其进行剔出,或者加以变量变换,以避免因为一两个数值导致出现错误的结论。
  • 3、 Pearson积差相关系数要求相应的变量呈双变量正态分布,注意双变量正态分布并非简单的要求x变量和y变量各自服从正态分布,而是要求服从一个联合的双变量正态分布
  • 以上几条要求中,前两者的要求最严,第三条比较宽松,违反时系数的结果也是比较稳健的。

-- EOF --

本文链接:https://www.pynote.net/archives/2467

留言区

《用numpy计算Pearson相关系数》有1条留言

电子邮件地址不会被公开。 必填项已用*标注

  • 麦新杰

    相关系数的值在-1到1之间,值的绝对值越大,线性相关性就越强! [回复]


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top