R語言相關性分析

2021-09-29 14:10:29 字數 3045 閱讀 4480

相關性分析就是通過定量指標描述變數之間的強弱、直接或間接的聯絡。

常見相關性指標

pearson相關係數是用於表示相關性大小的最常用指標,數值介於-1~1之間,越接近0相關性越低,越接近-1或1相關性越高。正負號表明相關方向,正號為正相關、負號為負相關。

又稱為秩相關係數,利用兩變數的秩次大小來進行分析,屬於非引數統計方法。

kendall』s tau相關係數是一種非引數檢驗。

當要進行相關性分析的兩個變數其取值受到其他變數影響時,可以利用偏相關分析對其他變數進行控制,在控制其他變數基礎之上進行這兩個變數之間相關性分析。

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州2023年的人口、收入、文盲率、預期壽命、**率和高中畢業率資料。

#選中state.x77資料集收入與高中畢業率變數

states

#協方差

cov(states)

income hs grad

income 377573.306 3076.76898

hs grad 3076.769 65.23789

#相關性分析

cor(states)

income hs grad

income 1.0000000 0.6199323

hs grad 0.6199323 1.0000000

#spearman相關

cor(states,method = 'spearman')

income hs grad

income 1.0000000 0.5104809

hs 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

correlation

data: states[, 3] and states[, 5]

t = 6.8479, df = 48, p-value =

1.258e-08

alternative hypothesis: true correlation is not equal to 0

95 percent confidence interval:

0.5279280 0.8207295

sample estimates:

cor

0.7029752

#結果顯示,p大於0.05。即兩者之間相關性微乎其微。

cor.test()每次只能檢驗一種相關關係。

psych包中corr.test()可以一次檢驗多種。

library(psysh)

corr.test(states,use = 'complete')

#結果太大,不再展示

最簡單兩個連續變數相關性視覺化用散點圖表達。

使用plot()函式即可。

#選中變數收入與高中畢業率

states

#繪圖plot(states)

R語言相關性

相關係數可以用來描述定量變數之間的關係。相關係數的符號 表明關係的方向 正相 關或負相關 其值的大小表示關係的強弱程度 完全不相關時為0,完全相關時為1 1 pearson spearman和kendall相關 cor 函式可以計算這三種相關係數,而cov 函式可以用於計算協方差,兩個函式的引數有 ...

R語言相關性分析及步驟

記錄一下r語言學習過程,對於r的基礎就是基本資料型別 向量,矩陣,資料框,字串等等 庫的呼叫以及函式自定義,還需要多加學習!進入主題,今天主題是相關性分析 以下為 y c 170,175,180 定義向量 y1 c 20,25,30 y cor.test y,y1,method spearman 呼...

spearman相關性分析 相關性分析

r語言常用函式 cor 預設結果為矩陣 cor mydat,use method use 缺失值的處理,method 處理方法 cor x,y 可以計算非方形矩陣,x y分別為2個矩陣,相同的行數 cor.test x,y,alternative method x y為檢驗相關性的變數 librar...