内容目錄
- Pearson相關系數(積差相關系數)
- 适用條件
- Spearman等級相關系數
- 适用條件
- Kendall's Tau相關系數
- 适用條件
- 偏相關
- 适用條件
- R語言實作
- Pearson、Spearman、Kendall
- 示例
- 偏相關
- 相關性顯著性檢驗
- 相關性可視化
相關性分析就是通過定量名額描述變量之間的強弱、直接或間接的聯系。
常見相關性名額
- Pearson相關系數(積差相關系數)
- Spearman等級相關系數
- Kendall's Tau相關系數
- 偏相關
Pearson相關系數(積差相關系數)
Pearson相關系數是用于表示相關性大小的最常用名額,數值介于-1~1之間,越接近0相關性越低,越接近-1或1相關性越高。正負号表明相關方向,正号為正相關、負号為負相關。
适用條件
- 兩個正态分布的連續變量
Spearman等級相關系數
又稱為秩相關系數,利用兩變量的秩次大小來進行分析,屬于非參數統計方法。
适用條件
- 适用于不滿足Pearson相關系數正态分布要求的連續變量。
- 也可以用于有序分類變量的之間的相關性測量。
Kendall's Tau相關系數
Kendall's Tau相關系數是一種非參數檢驗。
适用條件
- 适用于兩個有序分類變量。
偏相關
當要進行相關性分析的兩個變量其取值受到其他變量影響時,可以利用偏相關分析對其他變量進行控制,在控制其他變量基礎之上進行這兩個變量之間相關性分析。
适用條件
- 考慮第三方影響的兩個變量之間的相關性分析。
R語言實作
Pearson、Spearman、Kendall
Pearson、Spearman、Kendall相關系數都可以通過cor函數實作,cov協方差函數參數同cor函數。
協方差是相關分析中一個重要概念,方差是協方差的一種特殊存在。樣本協方差是離均差乘積在樣本中的平均,可以近似反映變量x與變量y之間的聯系強弱和方向。協方差可以引出相關分析概念。
協方差的大小與x、y的量綱有關。
函數格式基本為:cor(x,use=,method=)
參數 | 描述 |
---|---|
x | 矩陣或資料框 |
use | 指定缺失資料的處理方式。可選項:all.obs(假設不存在缺失資料)、everything(資料存在缺失值時,相關系數計算結果會顯示missing)、complete.obs(行删除)、pairwise.complete.obs(成對删除) |
method | 指定相關系數的類型。可選類型為pearson、spearman、kendall |
預設為use='everything',method='pearson'
示例
- 資料集
state.x77:R語言自帶美國50州1977年的人口、收入、文盲率、預期壽命、謀殺率和高中畢業率資料。
#選中state.x77資料集收入與高中畢業率變量states #協方差cov(states) Income HS GradIncome 377573.306 3076.76898HS Grad 3076.769 65.23789#相關性分析cor(states) Income HS GradIncome 1.0000000 0.6199323HS Grad 0.6199323 1.0000000#spearman相關cor(states,method = 'spearman') Income HS GradIncome 1.0000000 0.5104809HS Grad 0.5104809 1.0000000#結果顯示,收入與高中畢業率有較高相關性
偏相關
使用ggm包pcor()函數計算偏相關系數。
函數調用格式為:
pcor(u,s)
其中,U為一個數值向量,前兩個數值表示要計算相關系數的變量下标,其餘變量為條件變量下标。S為變量的協方差矩陣。
#載入ggm包library(ggm)#生成資料集states #擷取資料集各變量名稱colnames(states)[1] "Population" "Income" [3] "Illiteracy" "Life Exp" [5] "Murder" "HS Grad" #計算偏相關pcor(c(1,5,2,3,6),cov(states))[1] 0.3462724#結果顯示,在控制了收入、文盲率個高中畢業率影響時,人口和謀殺率之間的相關系數為0.346
相關性顯著性檢驗
使用cor.test()函數對單個Pearson、Spearman、kendall相關系數進行檢驗。
函數格式為:
cor.test(x,y,alternative='',method=)
其中,x和y為要檢驗相關性的變量,alternative則用來指定進行雙側檢驗或單側檢驗('two.side'、‘less’、‘greater’)。method用以指定要計算的相關類型(Pearson、Spearman、kendall)。
#檢驗預期壽命與謀殺率相關性。cor.test(states[,3],states[,5]) Pearson's product-moment correlationdata: states[, 3] and states[, 5]t = 6.8479, df = 48, p-value =1.258e-08alternative hypothesis: true correlation is not equal to 095 percent confidence interval: 0.5279280 0.8207295sample estimates: cor 0.7029752#結果顯示,P大于0.05。即兩者之間相關性微乎其微。
cor.test()每次隻能檢驗一種相關關系。
psych包中corr.test()可以一次檢驗多種。
library(psysh)corr.test(states,use = 'complete')#結果太大,不再展示
相關性可視化
這裡隻展示最簡單的相關性可視化方法。詳細内容見繪圖文章闆塊
最簡單兩個連續變量相關性可視化用散點圖表達。
使用plot()函數即可。
#選中變量收入與高中畢業率states #繪圖plot(states)

語言小白速通 懂點語言 歡迎分享收藏關注