天天看點

r語言相關性分析_R語言相關性分析

内容目錄

  • 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)
           
r語言相關性分析_R語言相關性分析

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