方差
定義
方差是在概率論和統(tǒng)計方差衡量隨機變量或一組數(shù)據(jù)時離散程度的度量灸促。
概率論中方差用來度量隨機變量和其數(shù)學期望(即均值)之間的偏離程度诫欠。
統(tǒng)計中的方差(樣本方差)是每個樣本值與全體樣本值的平均數(shù)之差的平方值的平均數(shù)。
在許多實際問題中浴栽,研究方差即偏離程度有著重要意義荒叼。
使用numpy計算
>>> a=np.random.randint(10,size=10)
>>> a
array([3, 6, 2, 8, 9, 7, 5, 6, 9, 8])
>>> np.var(a) #樣本總方差
5.21
>>> np.var(a, ddof = 1) # 計算樣本方差
5.788888888888889
>>> b=np.random.randint(10,size=10)
>>> b
array([9, 8, 4, 2, 3, 2, 0, 8, 1, 4])
>>> c=(a,b)
>>> c
(array([3, 6, 2, 8, 9, 7, 5, 6, 9, 8]), array([9, 8, 4, 2, 3, 2, 0, 8, 1, 4]))
>>> np.var(c) # 計算所有元素方差
8.36
>>> np.var(c, axis = 0) # 計算每一列的方差
array([ 9. , 1. , 1. , 9. , 9. , 6.25, 6.25, 1. , 16. ,
4. ])
>>> np.var(c, axis = 1) # 計算每一行的方差
array([5.21, 9.09])
使用pandas計算
pandas 中的 var 函數(shù)可以得到樣本方差(不是總體方差)
>>> import pandas as pd
>>> df = pd.DataFrame(np.array([[85, 76, 90], [82, 90, 88], [84, 88, 78]]), columns=['a', 'b', 'b'], index=['x', 'y', 'z'])
>>> df
a b b
x 85 76 90
y 82 90 88
z 84 88 78
>>> df.var() # 顯示每一列的方差
a 2.333333
b 57.333333
b 41.333333
dtype: float64
>>> df.var(axis = 1) # 顯示每一行的方差
x 50.333333
y 17.333333
z 25.333333
dtype: float64
協(xié)方差COV
定義
協(xié)方差(Covariance)在概率論和統(tǒng)計學中用于衡量兩個變量的總體誤差。而方差是協(xié)方差的一種特殊情況典鸡,即當兩個變量是相同的情況被廓。
協(xié)方差表示的是兩個變量的總體的誤差,這與只表示一個變量誤差的方差不同椿每。 如果兩個變量的變化趨勢一致伊者,也就是說如果其中一個大于自身的期望值,另外一個也大于自身的期望值间护,那么兩個變量之間的協(xié)方差就是正值亦渗。 如果兩個變量的變化趨勢相反,即其中一個大于自身的期望值汁尺,另外一個卻小于自身的期望值法精,那么兩個變量之間的協(xié)方差就是負值。
協(xié)方差自然是由方差衍生而來的痴突,方差反應的是一個變量(一維)的離散程度搂蜓,到二維了,我們可以對每個維度求其離散程度辽装,但我們還想知道更多帮碰。我們想知道兩個維度(變量)之間的關系,直觀的舉例就是身高和體重(青少年)拾积,我們采集到的數(shù)據(jù)里面有一種固有的性質(zhì)殉挽,那就是身高越高的樣本似乎總有著更大的體重丰涉,那我們?nèi)绾魏饬窟@種關系呢,單獨求兩個方差是不行的斯碌。因此協(xié)方差應運而生一死,它的公式也與方差極度同源,方差是每個樣本減去均值的平方后去平均(n-1)傻唾,協(xié)方差就把平方的2拆成1+1投慈,就是x減去x的平均,乘以冠骄,y減去y的平均伪煤,最后對整體取平均。
協(xié)方差的效果是:協(xié)方差的值如果為正值猴抹,則說明兩者是正相關的 (數(shù)值越大带族,相關性越強),結果為負值就說明負相關的蟀给,如果為0蝙砌,也是就是統(tǒng)計上說的“相互獨立”。
使用numpy
>>> X = np.array([171, 184, 210, 198, 166, 167])
>>> Y = np.array([78, 77, 98, 110, 80, 69])
>>> np.cov(X,Y)
array([[328.66666667, 228.73333333],
[228.73333333, 237.46666667]])
#輸出一個2*2的協(xié)方差矩陣
# 328.66666667是X與X的協(xié)方差
# 228.73333333是X和Y的協(xié)方差
# 237.46666667是Y和Y的協(xié)方差
使用panda
>>> X = np.array([171, 184, 210, 198, 166, 167])
>>> Y = np.array([78, 77, 98, 110, 80, 69])
>>> x1=pd.DataFrame(X)
>>> y1=pd.DataFrame(Y)
>>> x1[0].cov(x1[0])
328.6666666666667
>>> x1[0].cov(y1[0])
228.73333333333332
>>> y1[0].cov(y1[0])
237.46666666666667
相關系數(shù)
定義
相關系數(shù)是最早由統(tǒng)計學家卡爾·皮爾遜設計的統(tǒng)計指標跋理,是研究變量之間線性相關程度的量择克,一般用字母 r 表示。由于研究對象的不同前普,相關系數(shù)有多種定義方式肚邢,較為常用的是皮爾遜相關系數(shù)。
使用numpy
>>> X = np.array([171, 184, 210, 198, 166, 167])
>>> Y = np.array([78, 77, 98, 110, 80, 69])
# 得到相關性矩陣
>>> np.corrcoef(X,Y)
array([[1. , 0.81874809],
[0.81874809, 1. ]])
使用pandas
>>> x1=pd.DataFrame(X)
>>> y1=pd.DataFrame(Y)
>>> z=pd.concat([x1,y1],axis=1)
>>> z
0 0
0 171 78
1 184 77
2 210 98
3 198 110
4 166 80
5 167 69
# 得到相關性矩陣
>>> z.corr()
0 0
0 1.000000 0.818748
0 0.818748 1.000000