matlab相關性分析

luxurie發表於2020-11-14

相關性分析

一、皮爾遜相關係數

(person)

計算公式:

樣本協方差: C o v ( x , y ) = ∑ i = 1 n ( X i − X ˉ ) ( Y i − Y ˉ ) n − 1 {Cov(x,y)=\frac{\sum_{i=1}^n(X_i-\bar{X})(Y_i-\bar{Y})}{n-1}} Cov(x,y)=n1i=1n(XiXˉ)(YiYˉ)

樣本標準差 S x = ∑ i = 1 n ( X i − X ˉ ) 2 n − 1 {S_x=\sqrt{\frac{\sum_{i=1}^n(X_i-\bar{X})^2}{n-1}}} Sx=n1i=1n(XiXˉ)2

樣本Person相關係數: r x y = C o v ( X , Y ) S x S y {r_{xy}=\frac{Cov(X,Y)}{S_xS_y}} rxy=SxSyCov(X,Y)

資料間的相關性檢驗

這裡的相關係數指皮爾遜相關係數。

注意:要先進行描述性統計,即在matlab或spass中畫出散點圖,線上性的前提下進行檢驗其相關係數。

(SPSS中:圖形 - 舊對話方塊 - 散點圖/點圖 - 矩陣散點圖)

相關係數越接近於1,就越正相關;越接近於-1,則越負相關。

[R,P]=corrcoef(Test)

其中,

1、Test是一個矩陣,每一列為一組資料,每一行是不同的指標,

2、R是皮爾遜相關係數,(即使相關係數接近於1或-1,也不一定就相關,受異常值的影響,這裡在成線性關係的前提下檢驗才有意義)

3、P是一種概率值,若P<0.01,表示在99%的置信水平下,拒絕原假設;P<0.05或0.1同理,一般與0.05比較。

(R和P都是兩兩進行比較後得到的方陣。)

這裡的原假設是 H 0 {H_0} H0:這兩組資料的相關係數等於0。

那麼拒絕原假設,則表示相關係數顯著於0,並不是等於0的,有一定的相關性。

正態分佈檢驗

前面檢驗相關係數時,前提除了要成線性關係,還要服從正態分佈。

skewness(x) %偏度S,x是一個向量
kurtosis(x) %峰度K

偏度就是判斷資料的分佈的影像是否兩邊均勻分佈

峰度就是判斷分佈影像的尖銳程度,服從正態分佈的話,這個值是3。

雅克-貝拉檢驗

(Jarque-Bera test)

適用於大樣本情況 n>30 ,也稱 JB 檢驗 J B = n 6 [ S 2 + ( K − 3 ) 2 4 ] {JB=\frac{n}{6}[S^2+\frac{(K-3)^2}{4}]} JB=6n[S2+4(K3)2]

matlab進行JB檢驗的語法:
[ h , p ] = j b t e s t ( T e s t ( : , 1 ) , 0.05 ) [h,p] = jbtest(Test(:,1),0.05) [h,p]=jbtest(Test(:,1),0.05)
其中,

1、第一個引數為一個向量,表示一個指標下的一組資料;

2、第二個表示顯著性水平,一般取0.05;

3、返回值 h 為1或0,1表示拒絕原假設,0表示接收原假設。

4、p就是一個概率值,p<0.05則h等於1。

(這裡h和p都是一個數值)

這裡的原假設 H 0 {H_0} H0:這組資料服從正態分佈。

例如:h為0,表示這組資料在95%的置信水平下,接收原假設,服從正態分佈。

夏皮洛-威爾克檢驗

(Shapiro-wilk)

適用於小樣本 3≤n≤50 ,用軟體spass,匯入資料後,在“分析”->“描述統計”->“探索”–>“圖”,選中”含檢驗的正態圖“即可。

Q-Q圖

要求樣本資料量非常大(不推薦)

matlab中的函式 qqplot(Test(:,1))

1、只要一個引數,值為一個向量

2、無返回值,出現一個figure

若影像幾乎在一條直線上,則近似於正態分佈。

二、斯皮爾曼相關係數

(spearman)

計算公式: r s = 1 − 6 ∑ i = 1 n d i 2 n ( n 2 − 1 ) {r_s=1-\frac{6\sum_{i=1}^nd_i^2}{n(n^2-1)}} rs=1n(n21)6i=1ndi2

其中, d i {d_i} di表示 X i {X_i} Xi Y i {Y_i} Yi之間的等級差,等級就是那一列資料按從小到大排序的排名。

另一種定義

斯皮爾曼相關係數被定義為等級之間的皮爾遜相關係數

matlab中的內建函式 corr 使用的是第二種定義方式。

corr 計算Spearman相關係數

用法

(1)corr(X,Y,‘type’,‘Spearman’)

X, Y為列向量

(2)corr(X,‘type’,‘Spearman’)

X為矩陣,計算X各列之間的相關係數

相關係數的檢驗

小樣本

n≤30,直接查臨界表即可,計算得到的相關係數 r 要大於臨界值,才能得到顯著的結論。

大樣本

比較p值

corr函式用兩個引數接收時,返回的第二個引數為p值。

三、總結

person相關係數要滿足 連續資料、正態分佈、線性關係,滿足這些條件的情況下優先使用person相關係數,否則就使用Spearman相關係數,非線性、不滿足正態分佈等都可以用spearman。

除此之外,定序資料之間也用spearman相關係數,例如,優、良、差。

一般情況下,很難滿足正態分佈的條件,所以我們用spearman相關係數。

相關文章