今天看**的時候又看到了協方差矩陣這個破東西,以前看模式分類的時候就特困擾,沒想到現在還是搞不清楚,索性開始查協方差矩陣的資料,惡補之後決定馬上記錄下來,嘿嘿~本文我將用自認為循序漸進的方式談談協方差矩陣。
學過概率統計的孩子都知道,統計裡最基本的概念就是樣本的均值,方差,或者再加個標準差。首先我們給你乙個含有n個樣本的集合x=
,依次給出這些概念的公式描述,這些高中學過數學的孩子都應該知道吧,一帶而過。
x¯=∑ni=1xin
s=∑ni=1(xi−x¯)2n−1−−−−−−−−−−−−−√
s2=∑ni=1(xi−x¯)2n−1
很顯然,均值描述的是樣本集合的中間點,它告訴我們的資訊是很有限的,而標準差給我們描述的則是樣本集合的各個樣本點到均值的距離之平均。以這兩個集合為例,[0,8,12,20]和[8,9,11,12],兩個集合的均值都是10,但顯然兩個集合差別是很大的,計算兩者的標準差,前者是8.3,後者是1.8,顯然後者較為集中,故其標準差小一些,標準差描述的就是這種「散布度」。之所以除以n-1而不是除以n,是因為這樣能使我們以較小的樣本集更好的逼近總體的標準差,即統計上所謂的「無偏估計」。而方差則僅僅是標準差的平方。
var(x)=∑ni=1(xi−x¯)(xi−x¯)n−1
來度量各個維度偏離其均值的程度,標準差可以這麼來定義:
cov(x,y)=∑ni=1(xi−x¯)(yi−y¯)n−1
協方差的結果有什麼意義呢?如果結果為正值,則說明兩者是正相關的(從協方差可以引出「相關係數」的定義),也就是說乙個人越猥瑣就越受女孩子歡迎,嘿嘿,那必須的~結果為負值就說明負相關的,越猥瑣女孩子越討厭,可能嗎?如果為0,也是就是統計上說的「不相關」。(原文為「相互獨立」現更正為「不相關」)
從協方差的定義上我們也可以看出一些顯而易見的性質,如:
1.cov(x,x)=var(x)
2.cov(x,y)=cov(y,x)
上一節提到的猥瑣和受歡迎的問題是典型二維問題,而協方差也只能處理二維問題,那維數多了自然就需要計算多個協方差,比如n維的資料集就需要計算n!(n−2)!∗2
個協方差,那自然而然的我們會想到使用矩陣來組織這些資料。給出協方差矩陣的定義:
cn×n=(ci,j,ci,j=cov(dimi,dimj))
這個定義還是很容易理解的,我們可以舉乙個簡單的三維的例子,假設資料集有
三個維度,則協方差矩陣為
可見,協方差矩陣是乙個對稱的矩陣,而且對角線是各個維度上的方差。
上面涉及的內容都比較容易,協方差矩陣似乎也很簡單,但實戰起來就很容易讓人迷茫了。必須要明確一點,### 協方差矩陣計算的是不同維度之間的協方差,而不是不同樣本之間的。這個我將結合下面的例子說明,以下的演示將使用matlab,為了說明計算原理,不直接呼叫matlab的cov
函式。
首先,隨機產生乙個10*3
維的整數矩陣作為樣本集,10為樣本的個數,3為樣本的維數。
1mysample = fix(rand(10,3)*50)
根據公式,計算協方差需要計算均值,那是按行計算均值還是按列呢,我一開始就老是困擾這個問題。前面我們也特別強調了,協方差矩陣是計算不同維度間的協方差,要時刻牢記這一點。樣本矩陣的每行是乙個樣本,每列為乙個維度,所以我們要### 按列計算均值。為了描述方便,我們先將三個維度的資料分別賦值:12
3dim1 = mysample(:,1);
dim2 = mysample(:,2);
dim3 = mysample(:,3);
計算dim1與dim2,dim1與dim3,dim2與dim3的協方差:12
3sum( (dim1-mean(dim1)) .* (dim2-mean(dim2)) ) / ( size(mysample,1)-1 ) % 得到 74.5333
sum( (dim1-mean(dim1)) .* (dim3-mean(dim3)) ) / ( size(mysample,1)-1 ) % 得到 -10.0889
sum( (dim2-mean(dim2)) .* (dim3-mean(dim3)) ) / ( size(mysample,1)-1 ) % 得到 -106.4000
搞清楚了這個後面就容易多了,協方差矩陣的對角線就是各個維度上的方差,下面我們依次計算:12
3std(dim1)^2 % 得到 108.3222
std(dim2)^2 % 得到 260.6222
std(dim3)^2 % 得到 94.1778
這樣,我們就得到了計算協方差矩陣所需要的所有資料,呼叫matlab自帶的cov
函式進行驗證:
1cov(mysample)
把我們計算的資料對號入座,是不是一摸一樣?12
x = mysample - repmat(mean(mysample),10,1); % 中心化樣本矩陣,使各維度均值為0
c = (x'*x)./(size(x,1)-1);
理解協方差矩陣的關鍵就在於牢記它計算的是不同維度之間的協方差,而不是不同樣本之間,拿到乙個樣本矩陣,我們最先要明確的就是一行是乙個樣本還是乙個維度,心中明確這個整個計算過程就會順流而下,這麼一來就不會迷茫了~
p.s.寫**要選latex,在wordpress裡編輯公式還得用latex,用latex還真對得起咱學計算機這張臉~
在jekyll上可以使用mathax
協方差 協方差矩陣
期望 離散型隨機變數的一切可能的取值xi與對應的概率pi xi 之積的和稱為該離散型隨機變數的數學期望 設級數絕對收斂 記為 e x 隨機變數最基本的數學特徵之一。它反映隨機變數平均取值的大小。又稱期望或均值。求法 設離散型隨機變數x的取值為 方差 方差是各個資料與平均數之差的平方的平均數。在概率論...
期望 方差 協方差 協方差矩陣
方差pearson相關係數 協方差矩陣與相關係數矩陣 我們將隨機實驗e的一切可能基本結果 或實驗過程如取法或分配法 組成的集合稱為e的樣本空間,記為s。樣本空間的元素,即e的每乙個可能的結果,稱為樣本點。這樣思考一下,如果某個資料集x xx滿足它是某個分布的隨機取樣,那麼在取樣過程中最可能出現的值是...
協方差和協方差矩陣
協方差的定義 對於一般的分布,直接代入e x 之類的就可以計算出來了,但真給你乙個具體數值的分布,要計算協方差矩陣,根據這個公式來計算,還真不容易反應過來。網上值得參考的資料也不多,這裡用乙個例子說明協方差矩陣是怎麼計算出來的吧。記住,x y是乙個列向量,它表示了每種情況下每個樣本可能出現的數。比如...