1 协方差
1.1 定义
协方差(Covariance)在概率论和统计学中用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。
协方差的计算公式如下所示:
方差的计算公式如下所示:
可以看到协方差是度量两个变量的总体误差,而方差只考虑单变量的离散程度。
如果连个变量相互独立,则协方差为零。
2 协方差矩阵
假设X是一个n维随机变量则它的协方差矩阵计算公式为:
其中
我们用一个例子来加以说明,加入我们有三面课程:语文、数学、应用,有5名考生他们的成绩如下:
语文 | 数学 | 英语 |
---|---|---|
90 | 60 | 90 |
90 | 90 | 30 |
60 | 60 | 60 |
60 | 60 | 90 |
30 | 30 | 30 |
我们将该矩阵命名为矩阵A,这个矩阵共有三种属性,每种属性有5个变量,我们需要计算学科与学科之间的协方差,综合在一起就构成了协方差矩阵。
我们将语文、数学、英语分别编号为1、2、3,则它们之间的协方差记为E11、E12、E13、E22、E23、E33,最终该矩阵的协方差矩阵为:
可以根据协方差计算公式进行计算:
首先,我们需要得到这三科的平均成绩:
语文 | 数学 | 英语 |
---|---|---|
66 | 60 | 60 |
然后用矩阵A减去平均成绩(三科分别减去各科的均值),得到新的矩阵:
E12的计算公式为:
由于样本减均值刚刚已经计算完成,这里直接进行计算:
同理,E13的计算公式为:
根据Eij=Eji的性质,得到新的矩阵:
然后除以样本的个数5,得到最后的协方差矩阵:
知道了协方差矩阵如何计算之后我们来使用numpy内置的函数cov()
来计算协方差矩阵。假设有两个变量x0
和x1
,有三组观测(0,2)(1,1)和(2,0)。
import numpy as np
x = np.array([[0, 2], [1, 1], [2, 0]])
值得注意的是,np.cov(x)
函数的默认输入矩阵x每一行代表一个特征,每一列代表一个观测,所以在进行协方差矩阵计算的时候需要对输入矩阵进行转置,或者将默认参数设置为False,如np.cov(x,rowvar=False)
。
import numpy as np
x = np.array([[0, 2], [1, 1], [2, 0]])
np.cov(x.T)
输出:
array([[ 1., -1.],
[-1., 1.]])
亦或者:
import numpy as np
x = np.array([[0, 2], [1, 1], [2, 0]])
np.cov(x, rowvar=False)
输出:
array([[ 1., -1.],
[-1., 1.]])
3 相关系数
相关系数是研究变量之间线性相关程度的量。
相关系数的计算公式如下所示:
可以表示X和Y线性关系的紧密程度.
- 若 则表示X和Y不线性相关,即的充分必要条件是Cov(X,Y)=0,亦即不相关和协方差为零是等价的。
- 当较大时,通常说X 和Y相关程度较好;当较小时,通常说X和Y相关程度较差;当X和Y不相关,通常认为X和Y之间不存在线性关系,但并不能排除X和Y之间可能存在其他关系
网友评论