欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Pandas数据的相关性分析

程序员文章站 2022-07-13 08:53:41
...

本文的主要内容是基于中国大学mooc(慕课)中的“Python数据分析与可视化”课程进行整理和总结。
两个事物,表示成X和Y,如何判断他们之间的相关性?
X增大,Y也增大,两个变量正相关;
X增大,Y减小,两个变量负相关;
X增大,Y没有明显变化,两个变量不相关;
度量两个数据的相关性有以下方法:

  • 协方差,如下所示,如果协方差大于0,则表明正相关,若协方差小于0,则为负相关,协方差为0时,X和Y不相关;
    cov(X,Y)=i=1n(XiXˉ)(YiYˉ)n1cov(X, Y) = \frac{\sum_{i=1}^{n}(X^{i}-\bar{X})(Y^{i}-\bar{Y})}{n - 1}
  • pearson相关系数,取值范围为[-1,1],其绝对值在0.8-1之间极强相关,0.6-0.8强相关,0.4-0.6中等强度相关,0.2-0.4弱相关,0-0.2极弱相关或无关。
    r=i=1n(xixˉ)(yiyˉ)i=1n(xixˉ)2i=1n(yiyˉ)2r = \frac{\sum_{i=1}^{n}(x^{i}-\bar{x})(y^{i}-\bar{y})}{\sqrt{\sum_{i=1}^{n}(x^{i}-\bar{x})^{2}}\sqrt{\sum_{i=1}^{n}(y^{i}-\bar{y})^{2}}}
    pandas提供了适用于相关分析函数。
方法 说明
.cov() 计算协方差矩阵
.corr() 计算相关系数矩阵,Pearson,Spearman,Kendall等系数
hprie = pd.Series([3,22,12,22,12],index=['2008','2009','2010','2011','2012'])
m2 = pd.Series([8,15,10,23,10],index=['2008','2009','2010','2011','2012'])
hprie.corr(m2)
0.8384822301002933