Review Lesson 14 自動摘要
review的代碼及注釋
Lesson 15 相關(guān)分析
相關(guān)性系數(shù)(correlation coefficient)
相關(guān)系數(shù)是變量間關(guān)聯(lián)程度的最基本測量度之一
相關(guān)分析(correlation analysis)
是研究現(xiàn)象之間是否存在某種依存關(guān)系,并對具體有依存關(guān)系的現(xiàn)象探討其相關(guān)方向以及相關(guān)程度廷蓉,是研究隨機(jī)變量之間的相關(guān)關(guān)系的一種統(tǒng)計方法
相關(guān)系數(shù)基本特征
方向(direction)
正相關(guān)(positive correlation):兩個變量變化方向相同
負(fù)相關(guān)(negative correlation):兩個變量變化方向相反
量級(magnitude)
低度相關(guān) 0 <= |r| < 0.3
中度相關(guān) 0.3 <= |r| < 0.8
高度相關(guān) 0.8 <= |r| <= 1
計算相關(guān)系數(shù)公式
協(xié)方差的公式為匿乃,其中Sx皆串,Sy分別表示x和y的標(biāo)準(zhǔn)差。
如果用之前學(xué)過的z分?jǐn)?shù)表示杭朱,則為:
r: 相關(guān)系數(shù)
Zx: 變量x的Z分?jǐn)?shù)
Zy: 變量y的Z分?jǐn)?shù)
N: X和Y取值的配對個數(shù)
代碼實現(xiàn)相關(guān)系數(shù)的計算
#均值
XMean = numpy.mean(X);
YMean = numpy.mean(Y);
#標(biāo)準(zhǔn)差
XSD = numpy.std(X);
YSD = numpy.std(Y);
#z分?jǐn)?shù)
ZX = (X-XMean)/XSD;
ZY = (Y-YMean)/YSD;
#相關(guān)系數(shù),套用第三個公式
r = numpy.sum(ZX*ZY)/(len(X));
r
#直接調(diào)用Python的內(nèi)置的方法計算,返回的是相關(guān)系數(shù)2D Array
numpy.corrcoef(X, Y)
#使用pandas包的DF內(nèi)置方法計算谍椅,返回相關(guān)系數(shù)矩陣
import pandas;
data = pandas.DataFrame({
'X': X,
'Y': Y
})
data.corr()
安斯庫姆四重奏(anscombe’s quartet)
這是個相關(guān)性分析的陷阱
數(shù)據(jù)可視化里最經(jīng)典的案例:四組不同的數(shù)據(jù)做線性相關(guān),得到相關(guān)系數(shù)一樣(0.816)但實際作圖可以看出很大差異古话。
在四幅圖中雏吭,由第一組數(shù)據(jù)繪制的圖表(左上圖)是看起來最“正常”的陪踩,可以看出兩個隨機(jī)變量之間的相關(guān)性杖们。從第二組數(shù)據(jù)的圖表(右上圖)則可以明顯地看出兩個隨機(jī)變量間的關(guān)系是非線性的。第三組中(左下圖)肩狂,雖然存在著線性關(guān)系摘完,但由于一個離群值的存在,改變了線性回歸線孝治,也使得相關(guān)系數(shù)從1降至0.81。最后,在第四個例子中(右下圖)荆秦,盡管兩個隨機(jī)變量間沒有線性關(guān)系篱竭,但僅僅由于一個離群值的存在就使得相關(guān)系數(shù)變得很高步绸。