[数学基础知识] 协方差和相关系数以及使用pandas进行自动计算

在研究两组数据之间的关联性时会用到的一些概念。

1. 协方差(Covariance) 和协方差矩阵

协方差表示的是两个变量的总体的误差,这与只表示一个变量误差的方差不同。 如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。 如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。

期望值分别为E[X]与E[Y]的两个实随机变量X与Y之间的协方差Cov(X,Y)定义为:
在这里插入图片描述
举例:

AppleOrange
12
03
20
11

E ( A p p l e ) = A p p l e ˉ = ( 1 + 0 + 2 + 1 ) / 4 = 1 E(Apple)=\bar{Apple}=(1+0+2+1)/4=1 E(Apple)=Appleˉ=(1+0+2+1)/4=1
E ( O r a n g e ) = O r a n g e ˉ = ( 2 + 3 + 0 + 1 ) / 4 = 3 / 2 E(Orange)=\bar{Orange}=(2+3+0+1)/4=3/2 E(Orange)=Orangeˉ=(2+3+0+1)/4=3/2

AppleOrangeApple- A p p l e ˉ \bar{Apple} AppleˉOrange- O r a n g e ˉ \bar{Orange} Orangeˉ
1200.5
03-11.5
201-1.5
1100.5
C o v ( A p p l e , O r a n g e ) = [ 0 ∗ 0.5 + ( − 1 ) ∗ 1.5 + 1 ∗ ( − 1.5 ) + 0 ∗ 0.5 ] / ( 4 − 1 ) = 3 / 3 = 1 Cov(Apple, Orange)=[0*0.5+(-1)*1.5+1*(-1.5)+0*0.5]/(4-1)=3/3=1 Cov(Apple,Orange)=[00.5+(1)1.5+1(1.5)+00.5]/(41)=3/3=1
协方差只能研究两组数据之间的关系,当要研究多组数据之间的关系时就要用到协方差矩阵。
在这里插入图片描述举例:
AppleOrangePeach
------------------
124
032
202
112
使用协方差公式求得:
C o v ( A p p l e , A p p l e ) = 2 / 3 Cov(Apple, Apple)=2/3 Cov(Apple,Apple)=2/3
C o v ( O r a n g e , O r a n g e ) = 5 / 3 Cov(Orange, Orange)=5/3 Cov(Orange,Orange)=5/3
C o v ( P e a c h , P e a c h ) = 1 Cov(Peach, Peach)=1 Cov(Peach,Peach)=1
C o v ( A p p l e , O r a n g e ) = − 1 Cov(Apple, Orange)=-1 Cov(Apple,Orange)=1
C o v ( A p p l e , P e a c h ) = 0 Cov(Apple, Peach)=0 Cov(Apple,Peach)=0
C o v ( O r a n g e , P e a c h ) = 1 / 6 Cov(Orange,Peach)=1/6 Cov(Orange,Peach)=1/6
-AppleOrangePeach
------------------
Apple2/3-10
Orange-15/31/6
Peach01/61

使用pandas可以非常方便的计算协方差矩阵,以上列子使用pandas来计算的代码如下:

a = pd.DataFrame([(1.0, 2.0, 4.0), (0, 3.0, 2.0), (2.0, 0, 2.0), (1.0, 1.0, 2.0)],
                  columns=['Apple', 'Orange', 'Peach'])
a.cov()

得到的输出如下
在这里插入图片描述

2. 相关系数

相关系数是最早由统计学家卡尔·皮尔逊设计的统计指标,是研究变量之间线性相关程度的量,一般用字母 r 表示。由于研究对象的不同,相关系数有多种定义方式,较为常用的是皮尔逊相关系数。
相关系数是用以反映变量之间相关关系密切程度的统计指标。相关系数是按积差方法计算,同样以两变量与各自平均值的离差为基础,通过两个离差相乘来反映两变量之间相关程度;着重研究线性的单相关系数。
皮尔逊相关系数的值在[-1,1]之间,大于零是正相关,小于零则表示负相关,其值越接近于1或-1则表示关系越紧密,越接近于零则表示其相关性越小。

相关系数计算公式:
在这里插入图片描述
V a r [ X ] Var[X] Var[X] V a r [ Y ] Var[Y] Var[Y]分布是 X , Y X,Y XY的方差。
由上图可以看到相关系数其实是在协方差的基础上进行计算的。
还是以之前的例子为例,我们来计算他们的相关系数。
我们先来求每个变量的方差
V a r ( A p p l e ) = ( 1 − 1 ) 2 + ( 0 − 1 ) 2 + ( 2 − 1 ) 2 + ( 1 − 1 ) 2 4 − 1 = 2 / 3 Var(Apple) = \frac{(1-1)^2+(0-1)^2+(2-1)^2+(1-1)^2}{4-1}=2/3 Var(Apple)=41(11)2+(01)2+(21)2+(11)2=2/3
V a r ( O r a n g e ) = ( 2 − 1.5 ) 2 + ( 3 − 1.5 ) 2 + ( 0 − 1.5 ) 2 + ( 1 − 1.5 ) 2 4 − 1 = 5 / 3 Var(Orange) = \frac{(2-1.5)^2+(3-1.5)^2+(0-1.5)^2+(1-1.5)^2}{4-1}=5/3 Var(Orange)=41(21.5)2+(31.5)2+(01.5)2+(11.5)2=5/3
V a r ( P e a c h ) = ( 4 − 2.5 ) 2 + ( 2 − 2.5 ) 2 + ( 2 − 2.5 ) 2 + ( 2 − 2.5 ) 2 = 1 Var(Peach) = (4-2.5)^2+(2-2.5)^2+(2-2.5)^2+(2-2.5)^2=1 Var(Peach)=(42.5)2+(22.5)2+(22.5)2+(22.5)2=1
使用协方差公式求得:
C o r r ( A p p l e , A p p l e ) = C o v ( A p p l e , A p p l e ) V a r ( A p p l e ) ∗ V a r ( A p p l e ) = 2 / 3 2 / 3 ∗ 2 / 3 = 1 Corr(Apple, Apple)=\frac{Cov(Apple, Apple)} {\sqrt{Var(Apple)*Var(Apple)}}=\frac{2/3}{\sqrt{2/3*2/3}}=1 Corr(Apple,Apple)=Var(Apple)Var(Apple) Cov(Apple,Apple)=2/32/3 2/3=1
C o r r ( O r a n g e , O r a n g e ) = C o v ( O r a n g e , O r a n g e ) V a r ( O r a n g e ) ∗ V a r ( O r a n g e ) = 5 / 3 5 / 3 ∗ 5 / 3 = 1 Corr(Orange, Orange)=\frac{Cov(Orange,Orange)}{\sqrt{Var(Orange)*Var(Orange)}}=\frac{5/3}{\sqrt{5/3*5/3}}=1 Corr(Orange,Orange)=Var(Orange)Var(Orange) Cov(Orange,Orange)=5/35/3 5/3=1
C o r r ( P e a c h , P e a c h ) = C o v ( P e a c h , P e a c h ) V a r ( P e a c h ) ∗ V a r ( P e a c h ) = 1 1 ∗ 1 = 1 Corr(Peach, Peach)=\frac{Cov(Peach,Peach)}{\sqrt{Var(Peach)*Var(Peach)}}=\frac{1}{\sqrt{1*1}}=1 Corr(Peach,Peach)=Var(Peach)Var(Peach) Cov(Peach,Peach)=11 1=1
C o r r ( A p p l e , O r a n g e ) = C o v ( A p p l e , O r a n g e ) V a r ( A p p l e ) ∗ V a r ( O r a n g e ) = − 1 2 / 3 ∗ 5 / 3 = 3 / 10 = 0.9487 Corr(Apple, Orange)=\frac{Cov(Apple,Orange)}{\sqrt{Var(Apple)*Var(Orange)}}=\frac{-1}{\sqrt{2/3*5/3}}=3/\sqrt{10}=0.9487 Corr(Apple,Orange)=Var(Apple)Var(Orange) Cov(Apple,Orange)=2/35/3 1=3/10 =0.9487
C o r r ( A p p l e , P e a c h ) = C o v ( A p p l e , P e a c h ) V a r ( A p p l e ) ∗ V a r ( P e a c h ) = 0 Corr(Apple, Peach)=\frac{Cov(Apple,Peach)}{\sqrt{Var(Apple)*Var(Peach)}}=0 Corr(Apple,Peach)=Var(Apple)Var(Peach) Cov(Apple,Peach)=0
C o r r ( O r a n g e , P e a c h ) = C o v ( O r a n g e , P e a c h ) V a r ( O r a n g e ) ∗ V a r ( P e a c h ) = 1 / 6 5 / 3 ∗ 1 = 0.2582 Corr(Orange,Peach)=\frac{Cov(Orange,Peach)}{\sqrt{Var(Orange)*Var(Peach)}}=\frac{1/6}{\sqrt{5/3*1}}=0.2582 Corr(Orange,Peach)=Var(Orange)Var(Peach) Cov(Orange,Peach)=5/31 1/6=0.2582

由此我们可以得到相关系数表如下:

-AppleOrangePeach
Apple1-0.94870
Orange-0.948710.2582
Peach00.25821

你会发现所有元素和自己的相关系数都是1,即关系最为紧密。

使用pandas可以非常方便的计算协方差矩阵,以上列子使用pandas来计算的代码如下:

a = pd.DataFrame([(1.0, 2.0, 4.0), (0, 3.0, 2.0), (2.0, 0, 2.0), (1.0, 1.0, 2.0)],
                  columns=['Apple', 'Orange', 'Peach'])
a.corr()

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程小白的逆袭日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值