Numpy_协方差与相关系数
協(xié)方差與相關(guān)系數(shù)
- 協(xié)方差與相關(guān)系數(shù)
- 協(xié)方差
- 相關(guān)系數(shù)
1.協(xié)方差
如果兩個(gè)變量的變化趨勢(shì)一致,也就是說(shuō)如果其中一個(gè)大于自身的期望值時(shí)另外一個(gè)也大于自身的期望值,那么兩個(gè)變量之間的協(xié)方差就是正值;如果兩個(gè)變量的變化趨勢(shì)相反,即其中一個(gè)變量大于自身的期望值時(shí)另外一個(gè)卻小于自身的期望值,那么兩個(gè)變量之間的協(xié)方差就是負(fù)值。
可以通俗的理解為:兩個(gè)變量在變化過(guò)程中是同方向變化?還是反方向變化?同向或反向程度如何??
你變大,同時(shí)我也變大,說(shuō)明兩個(gè)變量是同向變化的,這時(shí)協(xié)方差就是正的;?
你變大,同時(shí)我變小,說(shuō)明兩個(gè)變量是反向變化的,這時(shí)協(xié)方差就是負(fù)的;?
從數(shù)值來(lái)看,協(xié)方差的數(shù)值越大,兩個(gè)變量同向程度也就越大。反之亦然。
Cov(X,Y)=1m∑i=1m(xi?xˉ)(yi?yˉ)
import numpy as npa = np.array([1,2,3]) b = np.array([4,3,4]) x = np.vstack((a,b)) np.cov(a, b) np.cov(a, b, bias=True) np.cov(x)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
輸出:
>>> np.cov(a, b) array([[ 1. , 0. ],[ 0. , 0.33333333]])>>> np.cov(a, b, bias=True) array([[ 0.66666667, 0. ],[ 0. , 0.22222222]])>>> np.cov(x) array([[ 1. , 0. ],[ 0. , 0.33333333]])- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
這里使用numpy庫(kù)的cov函數(shù)來(lái)計(jì)算協(xié)方差,輸出結(jié)果為一個(gè)協(xié)方差矩陣,results[i][j]表示第i個(gè)變量與第j個(gè)變量的協(xié)方差,比如np.cov(x)的結(jié)果為
>>> np.cov(x) array([[ 1. , 0. ],[ 0. , 0.33333333]])- 1
- 2
- 3
x為變量矩陣,x的第 i 行表示第 i 個(gè)隨機(jī)變量,這里第0個(gè)隨機(jī)變量與第0個(gè)隨機(jī)變量的協(xié)方差為1,第0個(gè)隨機(jī)變量與第1個(gè)隨機(jī)變量的協(xié)方差為0,第1個(gè)隨機(jī)變量與第0個(gè)隨機(jī)變量的協(xié)方差為0,第1個(gè)隨機(jī)變量與第1個(gè)隨機(jī)變量的協(xié)方差為0.33333333.
還有一點(diǎn)就是bais參數(shù)的意義,默認(rèn)為False,那么計(jì)算均值的時(shí)候除以 n - 1,如果設(shè)為T(mén)rue,那么計(jì)算均值的時(shí)候除以n,其中n為隨機(jī)變量的維度數(shù)。具體理論涉及到統(tǒng)計(jì)學(xué)知識(shí),可以參考知乎回答。
numpy的cov函數(shù)使用的三點(diǎn):
2. 相關(guān)系數(shù)
相關(guān)系數(shù)是用以反映變量之間相關(guān)關(guān)系密切程度的統(tǒng)計(jì)指標(biāo)。相關(guān)系數(shù)也可以看成協(xié)方差:一種剔除了兩個(gè)變量量綱影響、標(biāo)準(zhǔn)化后的特殊協(xié)方差,它消除了兩個(gè)變量變化幅度的影響,而只是單純反應(yīng)兩個(gè)變量每單位變化時(shí)的相似程度。
r=Cov(X,Y)δx??√δy??√
并且
|r|≤1
其中,δx,δy表示X,Y的方差。
import numpy as npa = np.array([1,2,3]) b = np.array([2,5,8]) x = np.vstack((a,b)) np.corrcoef(a, b) np.corrcoef(x)- 1
- 2
- 3
- 4
- 5
- 6
- 7
輸出
>>> np.corrcoef(a, b) array([[ 1., 1.],[ 1., 1.]])>>> np.corrcoef(x) array([[ 1., 1.],[ 1., 1.]])- 1
- 2
- 3
- 4
- 5
- 6
- 7
numpy中函數(shù)corrcoef的用法與函數(shù)cov的用法相似,只是corrcoef中bais參數(shù)不起作用。
numpy的cov函數(shù)使用的兩點(diǎn):
總結(jié)
以上是生活随笔為你收集整理的Numpy_协方差与相关系数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Microsoft Dynamics E
- 下一篇: 计算机工作原理(简述)