基本介紹
- 中文名:皮爾遜相關係數
- 外文名:Pearson Correlation Coefficients
- 通常用:R 或 ρ 表示
- 設計者:Karl Pearson
函式介紹,係數理解,計算舉例,
函式介紹
在統計學中,皮爾遜相關係數(Pearson correlation coefficient),通常用 R 或 ρ 表示,是用來度量兩個變數 X 和 Y 之間的相互關係(線性相關)的,取值範圍在 [-1,+1] 之間。它在學術研究中被廣泛套用來度量兩個變數線性相關性的強弱。它是由 Karl Pearson 在19世紀80年代從 Francis Galton 介紹的想法基礎發展起來的,但是發展後與原想法相似但略有不同,這種相關係數常被稱為“Pearson 的 R” (Pearson's R)。
對於隨機變數X和Y,皮爾森相關係數的就是:(x和y的協方差) / (x的標準差∗y的標準差),用於判斷兩組數的線性關係程度。
求解公式為: ,其中Cov(X,Y) 代表X與Y的協方差,Var(X) 和Var(Y) 代表X和Y的方差。當相關性為 1 時,X與Y的關係可以表示為Y=aX+b,其中a>0;當相關性為 -1 時,X與Y的關係可以表示為Y=aX+b,其中a<0。如果X與Y相互獨立,那么相關性為0。
係數理解
對皮爾遜相關係數的理解有兩個角度:
其一,按照高中數學水平來理解, 它很簡單, 可以看做將兩組數據首先做Z分數處理之後, 然後兩組數據的乘積和除以樣本數
Z分數一般代表在常態分配中, 數據偏離中心點的距離,即等於變數減掉平均數再除以標準差(就是高考的標準分類似的處理)。
標準差則等於變數減掉平均數的平方和,再除以樣本數,最後再開方。
其二,按照大學的線性數學水平來理解, 它比較複雜一點,可以看做是兩組數據的向量夾角的餘弦。
皮爾遜相關的約束條件
從以上解釋, 也可以理解皮爾遜相關的約束條件:
1、兩個變數間有線性關係
2、變數是連續變數
3、變數均符合常態分配,且二元分布也符合常態分配
4、兩變數獨立
計算舉例
在實踐統計中,一般只輸出兩個係數,一個是相關係數,也就是計算出來的相關係數大小,在 [-1, 1] 之間;另一個是獨立樣本檢驗係數,用來檢驗樣本一致性。
先舉個手算的例子:假設五個國家的國民生產總值分別是1、2、3、5、8(單位10億美元),又假設這五個國家的貧困比例分別是11%、12%、13%、15%、18%。
這個例子中,應計算出相關係數為1出來。我們看看如何一步一步計算出來的。
x 的平均值是 3.8,y 的平均值是 0.138。所以分子是:sum((x-mean(x))*(y-mean(y)))=0.308
用中學數學來寫就是:
(1-3.8)*(0.11-0.138)=0.0784
(2-3.8)*(0.12-0.138)=0.0324
(3-3.8)*(0.13-0.138)=0.0064
(5-3.8)*(0.15-0.138)=0.0144
(8-3.8)*(0.18-0.138)=0.1764
(2-3.8)*(0.12-0.138)=0.0324
(3-3.8)*(0.13-0.138)=0.0064
(5-3.8)*(0.15-0.138)=0.0144
(8-3.8)*(0.18-0.138)=0.1764
0.0784+0.0324+0.0064+0.0144+0.1764=0.308
同理, 分號下面的,分別是:
sum((x-mean(x))^2)=30.8
sum((y-mean(y))^2)= 0.00308
sum((y-mean(y))^2)= 0.00308
用中學數學來寫,分別是:
(1-3.8)^2=7.84 #平方
(2-3.8)^2=3.24 #平方
(3-3.8)^2=0.64 #平方
(5-3.8)^2=1.44 #平方
(8-3.8)^2=17.64 #平方
(2-3.8)^2=3.24 #平方
(3-3.8)^2=0.64 #平方
(5-3.8)^2=1.44 #平方
(8-3.8)^2=17.64 #平方
7.84+3.24+0.64+1.44+17.64=30.8
同理,求得:
sum((y-mean(y))^2)= 0.00308
然後再開平方根,分別是:
30.8^0.5=5.549775
0.00308^0.5=0.05549775
0.00308^0.5=0.05549775
用分子除以分母,就計算出最終結果:
0.308/(5.549775*0.05549775)=1
- 再舉個簡單的R語言例子
假設有100人, 一組數據是年齡,平均年齡是35歲,標準差是5歲;另一組數據是發帖數量,平均帖子數量是45份,標準差是8份。
假設這兩組都是常態分配。我們來求這兩者的皮爾遜相關係數。R腳本如下:
> x<-rnorm(n=100,mean=35,sd=5) #創建一組平均數為35,標準差為5,樣本數為100的隨機數
> y<-rnorm(n=100,mean=45,sd=8) #創建一組平均數為45,標準差為8,樣本數為100的隨機數
> cor.test(x,y,method="pearson") #計算這兩組數的相關,並進行T檢驗
然後 R 輸出結果為:
Pearson's product-moment correlation
data: x and y
t = -0.0269,df = 98,p-value = 0.9786
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval: -0.1990316 0.1938019
sample estimates: cor
-0.002719791
當然,由於這裡是兩組自動生成的隨機數,所以相關度約等於 0 。讀者也可以用非隨機的數據驗證一下計算。