您的位置:首页 > 编程语言 > Python开发

方差,协方差,相关系数,协方差矩阵总结及python示例

2018-01-25 15:09 253 查看

方差

方差用来度量随机变量 X 与其数学期望 E(X) 的偏离程度。

随机变量 X 的离差 X-E(X) 的平方的数学期望叫做方差,公式为: D(X)=E[(X−EX)2]

  方差总是一个非负数,当随机变量的可能值集中在数学期望的附近时,方差较小;反之方差较大。所以由方差的大小可以推断随机变量分布的分散程度。

  python代码举例:

import numpy as np
X = np.array([1,2,3])
print(np.var(X))
#0.666666666667


协方差

协方差用来刻画两个随机变量 X , Y 的相关性

公式为 : Cov(X,Y)=E[(X−μx)(Y−μy)]

  总结:如果协方差为正,说明X,Y同向变化,协方差越大说明同向程度越高;如果协方差为负,说明X,Y反向运动,协方差越小说明反向程度越高。

  对上述“同向”和“反向”的理解:

  1)你变大,同时我也变大,说明两个变量是同向变化的,这时协方差就是正的。

  2)你变大,同时我变小,说明两个变量是反向变化的,这时协方差就是负的。

  3)从数值来看,协方差的数值越大,两个变量同向程度也就越大。反之亦然。

相关系数

用随机变量X,Y的协方差除以X的标准差和Y的标准差,公式为:ρ=Cov(X,Y)σxσy

相关系数也可以看成是协方差:一种剔除了两个变量量纲,标准化后的协方差。

既然是中特殊的协方差,那么:

  1)也可以反映两个变量变化时是同向还是反向,如果同向变化就为正,反向变化就为负。

  2)由于它是标准化后的协方差,因此更重要的特性来了:它消除了两个变量变化幅度的影响,而只是单纯反应两个变量每单位变化时的相似程度。

对于两个随机变量:

  1)当他们的相关系数为1时,说明两个变量变化时的正向相似度最大,即,你变大一倍,我也变大一倍;你变小一倍,我也变小一倍。也即是完全正相关(以X、Y为横纵坐标轴,可以画出一条斜率为正数的直线,所以X、Y是线性关系的)。

  2)随着他们相关系数减小,两个变量变化时的相似度也变小,当相关系数为0时,两个变量的变化过程没有任何相似度,也即两个变量无关。

  3)当相关系数继续变小,小于0时,两个变量开始出现反向的相似度,随着相关系数继续变小,反向相似度会逐渐变大。

  4)当相关系数为-1时,说明两个变量变化的反向相似度最大,即,你变大一倍,我变小一倍;你变小一倍,我变大一倍。也即是完全负相关(以X、Y为横纵坐标轴,可以画出一条斜率为负数的直线,所以X、Y也是线性关系的)。

协方差矩阵

协方差只能处理二维问题,即两个随机变量的相关程度。

维数多了就需要计算多个协方差,于是出现了协方差矩阵。

协方差矩阵的每一个值就是对应下标的两个随机变量的协方差(即相关程度)。

举例:三个随机变量X,Y,Z,协方差矩阵为:

C=⎡⎣⎢Cov(X,X)Cov(Y,X)Cov(Z,X)Cov(X,Y)Cov(Y,Y)Cov(Z,Y)Cov(X,Z)Cov(Y,Z)Cov(Z,Z)⎤⎦⎥

可以看出,协方差矩阵是一个对称矩阵,而且对角线是各个维度的方差。

  python代码举例:

import numpy as np
X = np.array([[-2.1,-1,4.3],[3,1.1,0.12],[3,1.1,0.12]])
#每一行代表一个随机变量,每列代表随机变量的值
#[[-2.1,-1,4.3],
# [3,1.1,0.12],
# [3,1.1,0.12]]

print(np.cov(X))
#[[ 11.71      ,  -4.286     ,  -4.286     ],
# [ -4.286     ,   2.14413333,   2.14413333],
# [ -4.286     ,   2.14413333,   2.14413333]])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息