什么是協(xié)方差
協(xié)方差(Covariance)在概率論和統(tǒng)計學(xué)中用于衡量兩個變量的總體誤差。而方差是協(xié)方差的一種特殊情況,即當(dāng)兩個變量是相同的情況。協(xié)方差表示的是兩個變量的總體的誤差,這與只表示一個變量誤差的方差不同。
如果兩個變量的變化趨勢一致,也就是說如果其中一個大于自身的期望值,另外一個也大于自身的期望值,那么兩個變量之間的協(xié)方差就是正值。 如果兩個變量的變化趨勢相反,即其中一個大于自身的期望值,另外一個卻小于自身的期望值,那么兩個變量之間的協(xié)方差就是負(fù)值。
協(xié)方差的計算方法
1.在概率論和統(tǒng)計學(xué)中,協(xié)方差用于衡量兩個變量的總體誤差。
2.期望值分別為E(X) = μ 與 E(Y) = ν 的兩個實(shí)數(shù)隨機(jī)變量X與Y之間的協(xié)方差定義為:
COV(X,Y)=E[(X-E(X))(Y-E(Y))]
等價計算式為COV(X,Y)=E(XY)-E(X)E(Y)
協(xié)方差公式
上面幾個統(tǒng)計量看似已經(jīng)描述的差不多了,但我們應(yīng)該注意到,標(biāo)準(zhǔn)差和方差一般是用來描述一維數(shù)據(jù)的,但現(xiàn)實(shí)生活我們常常遇到含有多維數(shù)據(jù)的數(shù)據(jù)集,最簡單的大家上學(xué)時免不了要統(tǒng)計多個學(xué)科的考試成績。面對這樣的數(shù)據(jù)集,我們當(dāng)然可以按照每一維獨(dú)立的計算其方差,但是通常我們還想了解更多,比如,一個男孩子的猥瑣程度跟他受女孩子歡迎程度是否存在一些聯(lián)系啊,嘿嘿~協(xié)方差就是這樣一種用來度量兩個隨機(jī)變量關(guān)系的統(tǒng)計量,我們可以仿照方差的定義:
來度量各個維度偏離其均值的程度,標(biāo)準(zhǔn)差可以這么來定義:
協(xié)方差的結(jié)果有什么意義呢?如果結(jié)果為正值,則說明兩者是正相關(guān)的(從協(xié)方差可以引出“相關(guān)系數(shù)”的定義),也就是說一個人越猥瑣就越受女孩子歡迎,嘿嘿,那必須的~結(jié)果為負(fù)值就說明負(fù)相關(guān)的,越猥瑣女孩子越討厭,可能嗎?如果為0,也是就是統(tǒng)計上說的“相互獨(dú)立”。
從協(xié)方差的定義上我們也可以看出一些顯而易見的性質(zhì),如:
協(xié)方差多了就是協(xié)方差矩陣
上一節(jié)提到的猥瑣和受歡迎的問題是典型二維問題,而協(xié)方差也只能處理二維問題,那維數(shù)多了自然就需要計算多個協(xié)方差,比如n維的數(shù)據(jù)集就需要計算 n! / ((n-2)!*2) 個協(xié)方差,那自然而然的我們會想到使用矩陣來組織這些數(shù)據(jù)。給出協(xié)方差矩陣的定義:
這個定義還是很容易理解的,我們可以舉一個簡單的三維的例子,假設(shè)數(shù)據(jù)集有三個維度,則協(xié)方差矩陣為
可見,協(xié)方差矩陣是一個對稱的矩陣,而且對角線是各個維度上的方差。
很顯然,均值描述的是樣本集合的中間點(diǎn),它告訴我們的信息是很有限的,而標(biāo)準(zhǔn)差給我們描述的則是樣本集合的各個樣本點(diǎn)到均值的距離之平均。以這兩個集合為例,[0,8,12,20]和[8,9,11,12],兩個集合的均值都是10,但顯然兩個集合差別是很大的,計算兩者的標(biāo)準(zhǔn)差,前者是8.3,后者是1.8,顯然后者較為集中,故其標(biāo)準(zhǔn)差小一些,標(biāo)準(zhǔn)差描述的就是這種“散布度”。之所以除以n-1而不是除以n,是因?yàn)檫@樣能使我們以較小的樣本集更好的逼近總體的標(biāo)準(zhǔn)差,即統(tǒng)計上所謂的“無偏估計”。而方差則僅僅是標(biāo)準(zhǔn)差的平方。
協(xié)方差的計算公式例子
首先,隨機(jī)產(chǎn)生一個10*3維的整數(shù)矩陣作為樣本集,10為樣本的個數(shù),3為樣本的維數(shù)。
mysample = fix(rand(10,3)*50)
根據(jù)公式,計算協(xié)方差需要計算均值,那是按行計算均值還是按列呢,我一開始就老是困擾這個問題。前面我們也特別強(qiáng)調(diào)了,協(xié)方差矩陣是計算不同維度間的協(xié)方差,要時刻牢記這一點(diǎn)。樣本矩陣的每行是一個樣本,每列為一個維度,所以我們要按列計算均值。為了描述方便,我們先將三個維度的數(shù)據(jù)分別賦值:
》》 dim1 = mysample(:,1);
》》 dim2 = mysample(:,2);
》》 dim3 = mysample(:,3);
計算dim1與dim2,dim1與dim3,dim2與dim3的協(xié)方差:
》》 sum((dim1 - mean(dim1)) .* (dim2 - mean(dim2))) / (size(mysample, 1) - 1) %得到 -147.0667
》》 sum((dim1 - mean(dim1)) .* (dim3 - mean(dim3))) / (size(mysample, 1) - 1) %得到 -82.2667
》》 sum((dim2 - mean(dim2)) .* (dim3 - mean(dim3))) / (size(mysample, 1) - 1) %得到 76.5111
搞清楚了這個后面就容易多了,協(xié)方差矩陣的對角線就是各個維度上的方差,下面我們依次計算:
》》 var(dim1) %得到 227.8778
》》 var(dim2) %得到 179.8222
》》 var(dim3) %得到 156.7111
這樣,我們就得到了計算協(xié)方差矩陣所需要的所有數(shù)據(jù),調(diào)用Matlab自帶的cov函數(shù)進(jìn)行驗(yàn)證:
》》 cov(mysample)
把我們計算的數(shù)據(jù)對號入座,是不是一摸一樣?
評論
查看更多