期望值、方差、协方差、相关系数,numpy 计算均值、方差、协方差,相关系数

文章目录

  • 期望值、方差、协方差、相关系数
    • 一、期望值
    • 二、方差
      • 1. 概念:
      • 2. 示例:
    • 三、协方差
      • 1. 概念:
      • 2. 示例:
    • 四、协方差矩阵
      • 1. 概念:
      • 2. 示例:
    • 五、协方差的相关系数
      • 1. 概念:
      • 2. 示例:
    • 六、numpy 计算均值、方差、标准差

期望值、方差、协方差、相关系数

一、期望值

在概率论和统计学中,数学期望(mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一。它反映随机变量平均取值的大小。
需要注意的是,期望值并不一定等同于常识中的“期望”——“期望值”也许与每一个结果都不相等。期望值是该变量输出值的加权平均。期望值并不一定包含于变量的输出值集合里。
大数定律规定,随着重复次数接近无穷大,数值的算术平均值几乎肯定地收敛于期望值。

  • 离散情况:
    E(X) = ΣPi * Xi

例如,掷一枚公平的六面骰子,其每次“点数”的期望值是3.5,计算如下:

X 1 2 3 4 5 6
P(x) 1/6 1/6 1/6 1/6 1/6 1/6

E(X) = 1 * 1/6 + 2 * 1/6 + 3 * 1/6 + 4 * 1/6 + 5 * 1/6 + 6 * 1/6 = 3.5

  • 连续情况:
    如果X是连续的随机变量,存在一个相应的概率密度函数 f(x),则X的期望值为:
    E[X] = ∫x f(x) dx

二、方差

1. 概念:

在概率论和统计学中,方差是衡量随机变量或一组数据离散程度的度量。
概率论中方差用来度量随机变量和其数学期望(即均值)之间的偏离程度。统计中的方差(样本方差)是每个样本值与全体样本值的平均数之差的平方值的平均数。在许多实际问题中,研究方差即偏离程度有着重要意义。
方差是衡量源数据和期望值相差的度量值。

  1. 在统计描述中,方差用来计算每一个变量(观察值)与总体均数之间的差异。为避免出现离均差总和为零,离均差平方和受样本含量的影响,统计学采用平均离均差平方和来描述变量的变异程度。
    总体方差计算公式:
    在这里插入图片描述X为变量,μ为总体均值,N为总体例数。

    实际工作中,总体均数难以得到时,应用样本统计量代替总体参数,经校正后,样本方差计算公式:
    S2= ∑(X - A)2 / (n-1)
      S2为样本方差,X为变量,A为样本均值,n为样本例数。

  2. 在概率分布中,离散型随机变量方差计算公式:
    D(X) = E{[X-E(X)] ^ 2} = E(X ^ 2) - [ E(X)]^2
    D(X)称为变量X的方差,而 σ = D(X)(1/2) 称为标准差(或均方差)

方差刻画了随机变量的取值对于其数学期望的离散程度。(标准差、方差越大,离散程度越大)
若X的取值比较集中,则方差D(X)较小,若X的取值比较分散,则方差D(X)较大。
因此,D(X)是刻画X取值分散程度的一个量,它是衡量取值分散程度的一个尺度。

2. 示例:

如 X 样本为:5、6、9、16,则 X 的方差计算如下为:
先求 X 的平均数为 (5+6+9+16)/ 4 = 9
总体方差 = ((5-9)2+(6-9)2+(9-9)2+(16-9)2)/ 4 = 18.5
样本方差 = ((5-9)2+(6-9)2+(9-9)2+(16-9)2)/ (4-1) = 24.667


三、协方差

1. 概念:

协方差(Covariance)在概率论和统计学中用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况(方差是衡量一个变量之间的离散程度)。

期望值分别为E(X) = u 与 E(Y) = ν 的两个实随机变量 X 与 Y 之间的协方差定义为:
  COV(X,Y) = E[(X-E(X))(Y-E(Y))] = E(XY) - 2E(X)E(Y) + E(X)(Y) = E(XY) - uv

也可以用平均值来计算协方差:
  Cov(X,Y)=1/(N−1)∑(Xi−Xi_)(Yi−Yi_)
  Xi_,Yi_为平均值。这里,之所以除以 N-1 而不是 N 的原因是对总体样本期望的无偏估计。
期望值、方差、协方差、相关系数,numpy 计算均值、方差、协方差,相关系数_第1张图片
直观上来看,协方差表示的是两个变量总体误差的方差,这与只表示一个变量误差的方差不同。如果两个变量的变化趋势一致,也就是说如果其中一个大于自身的期望值,另外一个也大于自身的期望值,那么两个变量之间的协方差就是正值。 如果两个变量的变化趋势相反,即其中一个大于自身的期望值,另外一个却小于自身的期望值,那么两个变量之间的协方差就是负值。
如果X与Y是统计独立的,那么二者之间的协方差就是0,反之则不成立

2. 示例:

X,Y的变量取值如下:

变量
X 1 5 6
Y 4 3 9

求解X,Y的协方差过程如下:

  1. X的均值为Xi_:(1+5+6) / 3 = 4
    Y的均值为Yi_:(4+3+9) / 3 = 16/3
  2. 协方差 Cov(X,Y) = 1/(N−1)∑(Xi−Xi_)(Yi−Yi_) = ( (1-4) * (4-16/3) + (5-4) * (3-16/3) + (6-4) * (9-16/3) ) / (3-1) = 4.5
    (numpy源码中也是使用这种方式来计算协方差的)
    注:
    X方差 Var(X,X) = ( (1-4) * (1-4) + (5-4) * (5-4) + (6-4) * (6-4) ) / (3-1) = 7
    可以看出协方差与方差的区别和联系。

四、协方差矩阵

1. 概念:

协方差也只能处理二维问题,那维数多了自然就需要计算多个协方差,比如n维的数据集就需要计算 n! / ((n-2)!*2) 个协方差,那自然而然的我们会想到使用矩阵来组织这些数据。
在统计学与概率论中,协方差矩阵(也称离差矩阵、方差-协方差矩阵)是一个矩阵,其 i, j 位置的元素是第 i 个与第 j 个随机变量之间的协方差。这是从标量随机变量到高维度随机向量的自然推广。

给出协方差矩阵的定义:
假设 X 是以 n 个随机变数组成的列向量,
X = [ X 1 X 2 . . . X n ] X= \left[ \begin{matrix} X1 \\ X2 \\ ... \\ Xn \end{matrix} \right] X=X1X2...Xn
并且并且 μi 是 Xi 的期望值,即 μi = E(Xi)。

协方差矩阵的第 (i,j) 项(第 (i,j) 项是一个协方差)被定义为如下形式:
 ∑ij = Cov(Xi,Xj) = E[(Xi - μi)(Xj - μj)T]

协方差矩阵完整形式:
期望值、方差、协方差、相关系数,numpy 计算均值、方差、协方差,相关系数_第2张图片
这个定义还是很容易理解的,我们可以举一个简单的三维的例子,假设数据集有三个维度,则协方差矩阵为:
在这里插入图片描述
可见,协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差。

2. 示例:

X,Y,Z,K的变量取值如下:

变量
X 1 5 6
Y 4 3 9
Z 4 2 9
K 4 7 2

所以协方差矩阵C为:
C = [ c o v ( X , X ) c o v ( X , Y ) c o v ( X , Z ) c o v ( X , K ) c o v ( Y , X ) c o v ( Y , Y ) c o v ( Y , Z ) c o v ( Y , K ) c o v ( Z , X ) c o v ( Z , Y ) c o v ( Z , Z ) c o v ( Z , K ) c o v ( K , X ) c o v ( K , Y ) c o v ( K , Z ) c o v ( K , K ) ] C= \left[ \begin{matrix} cov(X,X) & cov(X,Y) & cov(X,Z) & cov(X,K)\\ cov(Y,X) & cov(Y,Y) & cov(Y,Z) & cov(Y,K)\\ cov(Z,X) & cov(Z,Y) & cov(Z,Z) & cov(Z,K)\\ cov(K,X) & cov(K,Y) & cov(K,Z) & cov(K,K)\\ \end{matrix} \right] C=cov(X,X)cov(Y,X)cov(Z,X)cov(K,X)cov(X,Y)cov(Y,Y)cov(Z,Y)cov(K,Y)cov(X,Z)cov(Y,Z)cov(Z,Z)cov(K,Z)cov(X,K)cov(Y,K)cov(Z,K)cov(K,K)

每一个协方差的求解过程为:
协方差 Cov(X,Y) = 1/(N−1)∑(Xi−Xi_)(Yi−Yi_) = ( (1-4) * (4-16/3) + (5-4) * (3-16/3) + (6-4) * (9-16/3) ) / (3-1) = 4.5

最终的协方差矩阵为:
C = [ 7 4.5 4 − 0.5 4.5 10.33 11.5 − 7.16 4 11.5 13 − 8.5 − 0.5 − 7.16 − 8.5 6.33 ] C= \left[ \begin{matrix} 7 & 4.5 & 4 & -0.5 \\ 4.5 & 10.33 & 11.5 & -7.16 \\ 4 & 11.5 & 13 & -8.5 \\ -0.5 & -7.16 & -8.5 & 6.33 \\ \end{matrix} \right] C=74.540.54.510.3311.57.16411.5138.50.57.168.56.33


五、协方差的相关系数

1. 概念:

相关关系是一种非确定性的关系,相关系数是研究变量之间线性相关程度的量。
为了准确得到变量之间的相似程度,我们需要把协方差除以各自变量的标准差。这样就得到了相关系数的表达式:
  r(X,Y) = Cov(X,Y) / (σX σY)
可见,相关系数就是在协方差的基础上除以变量 X 和 Y 的标准差。

为什么除以各自变量的标准差就能消除幅值影响呢?
这是因为标准差本身反映了变量的幅值变化程度,除以标准差正好能起到抵消的作用,让协方差标准化。这样,相关系数的范围就被归一化到 [-1,1] 之间了。

相关系数大于零,则表示两个变量正相关,且相关系数越大,正相关性越高;
相关系数小于零,则表示两个变量负相关,且相关系数越小,负相关性越高;
相关系数等于零,则表示两个变量不相关。

回过头来看一下协方差与相关系数的关系,其实,相关系数是协方差的标准化、归一化形式,消除了量纲、幅值变化不一的影响。实际应用中,在比较不同变量之间相关性时,使用相关系数更为科学和准确。协方差在机器学习的很多领域都有应用,而且非常重要!

2. 示例:

X,Y的变量取值如下:

变量
X 1 5 6
Y 4 3 9

求解X,Y的协方差过程如下:

  1. 协方差 Cov(X,Y) = 1/(N−1)∑(Xi−Xi_)(Yi−Yi_) = ( (1-4) * (4-16/3) + (5-4) * (3-16/3) + (6-4) * (9-16/3) ) / (3-1) = 4.5
  2. X的标准差 σX = 71/2
    Y的标准差 σY = 10.331/2
  3. 相关系数 r(X,Y) = 4.5 / (71/2 * 10.331/2) = 0.529

六、numpy 计算均值、方差、标准差

  • 计算方差时,numpy 中的 var 函数,默认是总体方差(计算时除以样本数 N),若需要得到样本方差(计算时除以 N - 1),需要参数 ddo f= 1
  • 计算协方差和相关系数时,numpy 返回的结果是协方差 / 相关系数的矩阵形式
import numpy as np

a = [1, 5, 6]
b = [4, 3, 9]
X = np.array([[1, 5, 6], [4, 3, 9], [4, 2, 9], [4, 7, 2]])

# 计算变量的平均数
aver_a = np.mean(a)
print("aver_a:", aver_a)

# 计算总体方差(有偏)
var_a = np.var(a)
print("var_a:", var_a)

# 计算总体标准差
std_a = np.std(a)
print("std_a:", std_a)

# 计算样本方差(无偏)
var_sample_a = np.var(a, ddof=1)
print("var_sample_a:", var_sample_a)

# 计算样本标准差
std_sample_a = np.std(a, ddof=1)
print("std_sample_a:", std_sample_a)

# 计算变量 a,b的协方差,(结果以协方差矩阵的形式呈现)
cov_ab = np.cov(a, b)
print("cov_ab:", cov_ab)

# 变量数组 X 的协方差矩阵
cov_X = np.cov(X)
print("cov_X:", cov_X)

# 计算变量a和b的相关系数
corrcoef_ab = np.corrcoef(a, b)
print("corrcoef_ab:", corrcoef_ab)


# 变量数组 X 的相关系数矩阵
corrcoef_X = np.corrcoef(X)
print("corrcoef_X:", corrcoef_X)

运行结果:

aver_a: 4.0
var_a: 4.666666666666667
std_a: 2.160246899469287
var_sample_a: 7.0
std_sample_a: 2.6457513110645907

cov_ab: [[ 7.          4.5       ]
		 [ 4.5        10.33333333]]

cov_X: [[ 7.          4.5         4.         -0.5       ]
 		[ 4.5        10.33333333 11.5        -7.16666667]
 		[ 4.         11.5        13.         -8.5       ]
 		[-0.5        -7.16666667 -8.5         6.33333333]]

corrcoef_ab: [[1.         0.52910672]
			  [0.52910672 1.        ]]

corrcoef_X: [[ 1.          0.52910672  0.41931393 -0.07509393]
 			 [ 0.52910672  1.          0.99221536 -0.88589207]
 			 [ 0.41931393  0.99221536  1.         -0.93676591]
 			 [-0.07509393 -0.88589207 -0.93676591  1.        ]]


参考资料:

  • 维基百科:
    https://zh.wikipedia.org/zh-cn/%E7%9B%B8%E5%85%B3
  • 博客:
    https://blog.csdn.net/YPP0229/article/details/100519343

你可能感兴趣的:(机器学习,概率论,统计学,协方差,数据分析)