皮爾遜相關系數及其MATLAB實現
一、參考鏈接
1.http://blog.csdn.net/wsywl/article/details/5727327
2.http://www.cnblogs.com/zhangchaoyang/articles/2631907.html
3.http://blog.sciencenet.cn/blog-479412-641317.html
二、初稿時間
2020年1月13日
三、皮爾遜相關系數
1. 什么是相關系數?為什么會有相關系數?
相關系數是用以反映變量之間相關關系密切程度的統計指標,相關系數的平方稱為判定系數。
2. 相關系數的幾種類型
相關關系是一種非確定性的關系,相關系數是研究變量之間線性相關程度的量。由於研究對象的不同,相關系數有如下幾種定義方式:
(1)簡單相關系數:又叫皮爾遜相關系數或線性相關系數,一般用字母P 表示,是用來度量變量間的線性關系的量。
(2)復相關系數:又叫多重相關系數。復相關是指因變量與多個自變量之間的相關關系。例如,某種商品的季節性需求量與其價格水平、職工收入水平等現象之間呈現復相關關系。
(3)典型相關系數:是先對原來各組變量進行主成分分析,得到新的線性關系的綜合指標,再通過綜合指標之間的線性相關系數來研究原各組變量間相關關系。
3. 相關系數的性質
相關系數的值介於–1與+1之間,即–1≤r≤+1。其性質如下:
-
當|r|=1時,表示兩變量為完全線性相關,即為函數關系。
-
當r=0時,表示兩變量間無線性相關關系。
-
當0<|r|<1時,表示兩變量存在一定程度的線性相關。且|r|越接近1,兩變量間線性關系越密切;|r|越接近於0,表示兩變量的線性相關越弱。
-
一般可按三級划分:|r|<0.4為低度線性相關;0.4≤|r|<0.7為顯著性相關;0.7≤|r|<1為高度線性相關。
4. 相關系數適用范圍
當兩個變量的標准差都不為零時,相關系數才有定義,皮爾遜相關系數適用於:
(1) 兩個變量之間是線性關系,都是連續數據。
(2) 兩個變量的總體是正態分布,或接近正態的單峰分布。
(3) 兩個變量的觀測值是成對的,每對觀測值之間相互獨立。
5. 皮爾遜相關系數的計算公式
皮爾遜相關也稱為積差相關(或積矩相關)是英國統計學家皮爾遜於20世紀提出的一種計算直線相關的方法。
假設有兩個變量X、Y,那么兩變量間的皮爾遜相關系數可通過以下公式計算:
公式一:
公式二:
公式三:
公式四:
以上列出的四個公式等價,其中E是數學期望,cov表示協方差,N表示變量取值的個數。
6. 相關系數的檢驗
置信度 = 1 - 顯著性水平,置信度越高(顯著性水平越低)說明我們越有把握相信兩者相關。
四、程序實現
1. MATLAB中自帶的相關系數計算函數
%*************************************************************************%
%程序目的:學習理解簡單相關系數,學習MATLAB中和簡單相關系數相關的函數
%2017年01月13日
%------------------經驗積累S---------------------%
%(1)MATLAB中的corr函數是按照列進行相關系數計算的,所以函數的輸入變量要確保至少
%2列,每列至少2個元素(1*n和1*n的向量是無法計算相關系數的)
%(2)corrcoef也可以計算相關系數,但是corrcoef計算相關系數時自動把m*n矩陣,變為
%向量,具體參考函數文檔說明
%(3)corr函數默認計算的是Pearson相關系數
%(4)reshape函數用於矩陣的重塑
%------------------經驗積累E---------------------%
%*************************************************************************%
clc;
clear all;
X = [1,6,7,14,13,28,31,43,55,68,77,87];
Y = [2,3,9,15,12,34,32,44,56,72,74,81];
Z = [X',Y'];
% 比較PCor1和PCor2,理解corr函數是如何按照列計算相關系數的
PCor1 = corr(X',Y');
% disp(['PCor1 = ',num2str(PCor1)]);
PCor2 = corr(Z);
% 比較corrcoef的計算結果和corr計算結果的差異
PCor3 = corrcoef(X',Y');
PCor4 = corrcoef(Z);
% 加入顯著性水平P
[PCor5,P5] = corr(X',Y');
[PCor6,P6] = corr(Z);
% 通過此處進一步理解corr按列計算相關系數
K = rand(12,2).*10; L = rand(12,2).*10;
M = [Z,K]; N = [Z,L];
[PCor7,P7] = corr(M,N);
% 比較corrcoef和corr的計算結果,理解corrcoef的計算方式
[PCor8,P8] = corrcoef(M,N);
M2 = reshape(M,[],1);
N2 = reshape(N,[],1);
[PCor9,P9] = corrcoef(M2,N2);
[PCor10,P10] = corr(M2,N2);