相關性分析 -pearson spearman kendall相關系數
先說獨立與相關的關系:對於兩個隨機變量,獨立一定不相關,不相關不一定獨立。有這么一種直觀的解釋(不一定非常准確):獨立代表兩個隨機變量之間沒有任何關系,而相關僅僅是指二者之間沒有線性關系,所以不難推出以上結論。
衡量隨機變量相關性的方法主要有三種:pearson相關系數,spearman相關系數,kendall相關系數:
1. pearson相關系數,亦即皮爾遜相關系數
pearson相關系數用來衡量兩個隨機變量之間的相關性,計算公式為:
公式-1
其中cov(X,Y)也叫做X,Y的協方差,σX是X的標准差,μX是X的期望E(X).
因為σX=E[(X-E(X))2]=E(X2)-E(X)2,並且
公式-2
所以公式-1可以改寫為:
公式-3
R語言中求兩個隨機變量pearson相關系數的函數:
1 //賦予a,b向量值 2 a<-c(1,2,3) 3 b<-c(11,12,14) 4 5 //計算pearson相關系數 6 cor.test(a,b,method="pearson") 7 cor=0.9819805060619659
2. spearman相關系數,亦即秩相關系數
spearman和kendall都是等級相關系數,亦即其值與兩個相關變量的具體值無關,而僅僅與其值之間的大小關系有關。
spearman相關系數,亦即秩相關系數,根據隨機變量的等級而不是其原始值衡量相關性的一種方法。
spearman相關系數的計算可以由計算pearson系數的方法,只需要把原隨機變量中的原始數據替換成其在隨機變量中的等級順序即可:
(1,10,100,101)替換成(1,2,3,4)
(21,10,15,13)替換成(4,1,3,2)
然后求替換后的兩個隨機變量的pearson相關系數即可.
R語言中求兩個隨機變量的spearman相關系數的函數:
1 //賦予a,b向量值 2 a<-c(1,10,100,101) 3 b<-c(21,10,15,13) 4 5 //計算spearman相關系數 6 cor.test(a,b,method="spearman") 7 rho=-0.4 8 9 //用替換后的向量的pearson相關系數進行驗證 10 e<-c(1,2,3,4) 11 f<-c(4,1,3,2) 12 cor.test(e,f,method="pearson") 13 cor=-0.4
3. kendall相關系數,亦即和諧系數
kendall相關系數又稱作和諧系數,也是一種等級相關系數,其計算方法如下:
對於X,Y的兩對觀察值Xi,Yi和Xj,Yj,如果Xi<Yi並且Xj<Yj,或者Xi>Yi並且Xj>Yj,則稱這兩對觀察值是和諧的,否則就是不和諧的.
kendall相關系數的計算公式如下:
公式-4
亦即,所有觀察值對中(總共有0.5*n*(n-1)對),和諧的觀察值對減去不和諧的觀察值對的數量,除以總的觀察值對數.
R語言中計算kendall相關系數的函數:
1 //賦予a,b向量值 2 a<-c(1,2,3) 3 b<-c(1,3,2) 4 5 //計算kendall相關系數 6 cor.test(a,b,method="kendall") 7 tau=0.3333333333
參考文獻:
1. pearson,spearman,kendall三種相關分析方法異同
2. Wikipedia: Pearson product-moment correlation coefficient