【数学和算法】协方差矩阵、方差
1.方差
方差是判斷一個變量(如,身高)距離平均值的偏離程度的量,如,一個班的50個同學的身高方差。
方差只是一個維度,而協方差是多個維度之間的相關性。
方差的性質:
Var(x)=E(x2)?E2(x)\displaystyle\color{blue}Var(x) = E(x^2) - E^2(x)Var(x)=E(x2)?E2(x)
對于正態分布來說,期望為0,即:
E(x)=0\displaystyle\color{blue}E(x) = 0E(x)=0
那么,正態分布的方差為:
Var(x)=E(x2)\displaystyle\color{blue}Var(x) = E(x^2)Var(x)=E(x2)
-----------------------------------------------------------------------------
2.協方差與協方差矩陣:
協方差矩陣 的理解可以參考這篇博客:https://zhuanlan.zhihu.com/p/70644127
也可以去看B站的視頻,講的很透徹: https://www.bilibili.com/video/BV12D4y1S7fU/
如果要研究幾個變量的相關性,如身高、體重、年齡這三個變量的兩兩之間的相關性,那么協方差矩陣就是三行三列的矩陣,矩陣的對角線元素是各個變量自己的方差,非對角線的每個元素是各個變量兩兩之間的協方差。
所以,方差只能說所有人的身高的方差,不能說身高與體重之間的方差。而協方差矩陣的對角線上都是各變量的方差。所以,協方差矩陣包含了各個變量的方差。
-----------------------------------------------------------------------------
2.1 協方差:
注意上面的E[(X-Ux)(Y-Uy)]是對(X-Ux)(Y-Uy)的整體求期望,并不能分別對(X-Ux)和(Y-Uy)求期望,上面公式中(X-Ux)是行向量,(Y-Uy)是列向量。看看下面協方差的公式就明白了:
設X、Y分別表示身高和體重,那么上面的Cov(X,Y)就是所有人的身高與體重二者的協方差,只是一個數字,并不是協方差矩陣。身高與體重的協方差需要對每個人計算(自己身高 - 所有人身高均值)*(自己體重 - 所有人體重均值),然后再把他們相加求均值,得到的均值也叫期望E,就是身高和體重的協方差。
上面的Cov(X,X)就只是所有人的身高方差,也只是一個數字。
協方差只是兩個變量之間的相關性,如,身高與體重的協方差,并不存在身高、體重、年齡三者的協方差。
2.2 協方差矩陣:
為了更清晰明白,我們再增加一個維度,年齡Z,那么三維協方差矩陣是由
Cov(X,Y)\displaystyle\color{blue}Cov(X,Y)Cov(X,Y)、Cov(Y,X)\displaystyle\color{blue}Cov(Y,X)Cov(Y,X)、Cov(X,Z)\displaystyle\color{blue}Cov(X,Z)Cov(X,Z)、Cov(Z,X)\displaystyle\color{blue}Cov(Z,X)Cov(Z,X)、Cov(Y,Z)\displaystyle\color{blue}Cov(Y,Z)Cov(Y,Z)、Cov(Z,Y)\displaystyle\color{blue}Cov(Z,Y)Cov(Z,Y)
這6個協方差,和Cov(X,X)\displaystyle\color{blue}Cov(X,X)Cov(X,X)、Cov(Y,Y)\displaystyle\color{blue}Cov(Y,Y)Cov(Y,Y)、Cov(Z,Z)\displaystyle\color{blue}Cov(Z,Z)Cov(Z,Z) 這3個方差組成。
很明顯,他們有以下關系:
協方差:
Cov(X,Y)=Cov(Y,X)\displaystyle\color{blue}Cov(X,Y) = Cov(Y,X)Cov(X,Y)=Cov(Y,X)
Cov(X,Z)=Cov(Z,X)\displaystyle\color{blue}Cov(X,Z) = Cov(Z,X)Cov(X,Z)=Cov(Z,X)
Cov(Y,Z)=Cov(Z,Y)\displaystyle\color{blue}Cov(Y,Z) = Cov(Z,Y)Cov(Y,Z)=Cov(Z,Y)
方差:
Cov(X,X)=Var(X)\displaystyle\color{blue}Cov(X,X) = Var(X)Cov(X,X)=Var(X)
Cov(Y,Y)=Var(Y)\displaystyle\color{blue}Cov(Y,Y) = Var(Y)Cov(Y,Y)=Var(Y)
Cov(Z,Z)=Var(Z)\displaystyle\color{blue}Cov(Z,Z) = Var(Z)Cov(Z,Z)=Var(Z)
------------------------------------------------------
2.3 協方差矩陣是怎么計算得到的?
可以根據方差的公式理解記憶協方差的公式:
那么三維的協方差矩陣P(X,Y,Z)就是下面這樣:
-----------------------------------------------------------------------------
2.4 協方差矩陣推導過程:(可跳過,寫的不那么好理解)
設有個三維的列向量W(年齡w1、身高w2、體重w3),
W?=[w1w2w3]\displaystyle\color{blue}\vec W = \begin{bmatrix} w1\\ w2\\ w3\end{bmatrix}W=???w1w2w3????
那么他們的協方差矩陣為:
P=E(W?W?T)\displaystyle\color{blue}P = E(\vec{W}\vec{W}^T)P=E(WWT)
注意,上面的協方差是對W?W?T\displaystyle\color{blue}\vec{W}\vec{W}^TWWT求期望,并非協方差=W?W?T\displaystyle\color{blue}協方差=\vec{W}\vec{W}^T協方差=WWT。
為了方便書寫,我們只取兩維(年齡w1、身高w2)來證明:
很多個人,每個人都有各自的身高、體重、年齡屬性。n個人抽象成n個點,每個點都有各自的3個維度(3個屬性)。
協方差是協方差,協方差矩陣是協方差矩陣,協方差矩陣是由協方差組成。
兩個變量之間的協方差
假設有n個人(n個點),下面的
-
w1表示(年齡-年齡均值)
-
w2表示(身高-身高均值)
-
w1*w2表示(年齡-年齡均值)*(身高-身高均值),對他們所有人求期望E(w1*w2)即身高與年齡的協方差。
注意:涉及到求方差和協方差,那必須是很多個人(很多個點),求期望也是對很多個人求期望(均值)。 下面第一個式子不是協方差矩陣,他是一個人的兩個屬性之間的運算(但是還是不能脫離所有人的均值),對第一個式子求期望,就是對所有的人求均值,之后才是協方差矩陣。
第一個式子不能獨立存在,他表示每個人的通項:
想一下,身高的方差=[(學生1的身高-所有人的身高均值)的平方+ (學生2的身高-所有人的身高均值)的平方+ ... + (學生n的身高-所有人的身高均值)的平方] /n。
由于方差和期望有以下關系:
Var(x)=E(x2)?E2(x)\displaystyle\color{blue}Var(x) = E(x^2) - E^2(x)Var(x)=E(x2)?E2(x)對于正態分布,他的期望E(x)=0\displaystyle\color{blue}E(x) = 0E(x)=0
所以E2(x)=0\displaystyle\color{blue}E^2(x) = 0E2(x)=0
所以方差就等于 Var(x)=E(x2)\displaystyle\color{blue}Var(x) = E(x^2)Var(x)=E(x2)
所以可以得到上面的協方差矩陣。
上面的協方差矩陣的書寫方式會造成誤解,因為X和Y協方差 并不等于 X的標準差乘以Y的標準差,而且可正可負,在這里是表示二者之間的協方差,并不是二者標準差相乘。這篇博客的最后介紹了相關系數:
總結
以上是生活随笔為你收集整理的【数学和算法】协方差矩阵、方差的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数学和算法】初识卡尔曼滤波器(二)
- 下一篇: 【C++】41. std::copy和a