皮爾遜相關系數及其MATLAB實現


皮爾遜相關系數及其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>0時,表示兩變量正相關,r<0時,兩變量為負相關

  • 當|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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM