R語言數據特徵分析——相關性分析

R語言數據特徵分析——相關性分析

分析連續變量之間線性相關程度的強弱,並用適當的統計指標表示出來的過程稱為相關分析。

1、直接繪製散點圖

判斷兩個變量是否具有線性相關關係最直觀的方法是直接繪製散點圖。

R語言數據特徵分析——相關性分析

2、繪製散點圖矩陣

需要同時考察多個變量間的相關關係時,一一繪製它們之間的散點圖會十分麻煩。此時可利用散點圖矩陣來同時繪製各變量間的散點圖,從而快速發現多個變量間的主要相關性,這在進行多元線性迴歸時顯得尤為重要。

R語言數據特徵分析——相關性分析

3、計算相關係數

為了更加準確地描述變量之間的線性相關程度,可以通過計算相關係數進行相關分析。在二元變量的相關分析過程中比較常用的有Pearson相關係數、Spearman秩相關係數和判定係數。

(1)Pearson相關係數

Pearson相關係數一般用於分析兩個連續性變量之間的關係,其計算公式如下:

R語言數據特徵分析——相關性分析

相關係數r的取值範圍:-1<=r<=1

R語言數據特徵分析——相關性分析

0

R語言數據特徵分析——相關性分析

(2)Spearman秩相關係數

Pearson線性相關係數要求連續變量的取值服從正態分佈。不服從正態分佈的變量、分類或等級變量之間的關聯性可採用Spearman秩相關係數,也稱等級相關係數來描述。

其計算公式如下:

R語言數據特徵分析——相關性分析

對兩個變量成對的取值分別按照從小到大(或者從大到小)順序編秩,Ri代表Xi的秩次,Qi代表Yi的秩次,Ri-Qi為Xi、Yi的秩次之差。

下面給出一個變量x=(X1,X2,...,Xi,...,Xn)秩次的計算過程:

R語言數據特徵分析——相關性分析

對於一個變量,相同的取值必須有相同的秩次,所以在計算中採用的秩次是排序後所在位置的平均值。

只要兩個變量具有嚴格單調的函數關係,那麼它們就是完全的Spearman相關的,這與Pearson相關不同,Pearson相關只有在變量具有線性關係時才是完全相關的。

上述兩種相關係數在實際應用計算中都要對其進行假設檢驗,使用t檢驗方法檢驗其顯著性水平以確定其相關程度。在正態分佈假定下,Spearman秩相關係數與Pearson相關係數在效率上是等價的,而對於連續測量數據,更適合用Pearson相關係數進行分析。

(3)判定係數

判定係數是相關係數的平方,用r^2表示,用來衡量回歸方程對y的解釋程度。判定係數取值範圍為:0<=r^2<=1。r^2越接近於1,表明x與y之間的相關性越強;r^2越接近於0,表明兩個變量之間幾乎沒有直線相關關係。

下面將通過餐飲系統不同菜品的日銷量數據,來進行不同菜品間的相關性分析。數據的下載地址為:https://github.com/windform/R/blob/master/R%E8%AF%AD%E8%A8%80%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/%E6%95%B0%E6%8D%AE%E8%B4%A8%E9%87%8F%E5%88%86%E6%9E%90/chapter3/data/catering_sale_all.csv

菜品日銷量數據格式如下:

R語言數據特徵分析——相關性分析

分析代碼如下:

> # 讀取數據

> cordata

> # 求出相關係數矩陣

> cor(cordata[, 2:11])

百合醬蒸鳳爪 翡翠蒸香茜餃 金銀蒜汁蒸排骨 樂膳真味雞 蜜汁焗餐包 生炒菜心 鐵板酸菜豆腐 香煎韭菜餃 香煎羅卜糕 原汁原味菜心

百合醬蒸鳳爪 1.000000000 0.009205803 0.01679933 0.45563817 NA 0.30849559 0.20489784 0.12744825 -0.09027555 0.42831626

翡翠蒸香茜餃 0.009205803 1.000000000 0.30443437 -0.01227936 NA -0.18044636 -0.02690814 0.06234445 0.27027633 0.02046215

金銀蒜汁蒸排骨 0.016799326 0.304434367 1.00000000 0.03513460 NA -0.18428973 0.18727155 0.12154343 0.07780811 0.02907437

樂膳真味雞 0.455638166 -0.012279359 0.03513460 1.00000000 NA 0.32546172 0.29769187 -0.06886643 -0.03022205 0.42187795

蜜汁焗餐包 NA NA NA NA 1 NA NA NA NA NA

生炒菜心 0.308495593 -0.180446360 -0.18428973 0.32546172 NA 1.00000000 0.36978749 0.03823316 0.04989806 0.12298779

鐵板酸菜豆腐 0.204897840 -0.026908140 0.18727155 0.29769187 NA 0.36978749 1.00000000 0.09554300 0.15795755 0.56733190

香煎韭菜餃 0.127448249 0.062344452 0.12154343 -0.06886643 NA 0.03823316 0.09554300 1.00000000 0.17833563 0.04968889

香煎羅卜糕 -0.090275548 0.270276328 0.07780811 -0.03022205 NA 0.04989806 0.15795755 0.17833563 1.00000000 0.08898022

原汁原味菜心 0.428316260 0.020462147 0.02907437 0.42187795 NA 0.12298779 0.56733190 0.04968889 0.08898022 1.00000000

由於缺失值的出現,相關係數計算結果中也出現了NA,但沒有影響其他菜品的相關係數。從上面的結果可以看到:如果顧客點了“百合醬蒸鳳爪”,則點“翡翠蒸香茜餃”、“金銀蒜汁排骨”、“香煎蘿蔔糕”、“鐵板酸菜豆腐”、“香煎韭菜餃”等主食類的相關性比較低,反而點“樂膳真味雞”、“生炒菜心”、“原汁原味菜心”的相關性比較高。


分享到:


相關文章: