我們知道R裡面計算兩個數值向量之間的相關性用cor函數,而檢驗是否顯著相關用cor.test。例如
a=1:10set.seed(123)b=a+rnorm(10,0,0.05)cor(a,b) cor.test(a,b)會得到如下結果,a和b是幾乎完整正相關的,相關係數是0.9998834。一般相關係數是-1到1之間的一個數,-1表示完全負相關,1表示完全負相關。>0正相關,<0負相關,=0不相關。
我們還可以簡單的畫圖展示一下
plot(a,b)abline(lm(b~a),col="red",lwd=2,lty=2)那麼如果你有多個數值向量需要計算相關性怎麼辦?
我們拿mtcars這套R自帶的數據來舉個例子,這套數據有32行,11列。
每一行為一種車型,每一列為一種特徵。
下面我們就來看看,如何計算這11種特徵兩兩之間的相關性,這裡給大家介紹四種方法
一、corrplot包
install.packages("corrplot")library(corrplot)M <- cor(mtcars)Pval <- cor.mtest(mtcars)corrplot(M, method = "circle")我們可以來看下特徵兩兩之間的相關係數
也可以看看特徵兩兩之間的相關性檢驗的P值,
看看相關性圖
二、corr包
install.packages("corrr")library(corrr)correlate(mtcars)這個包還有一個特點,就是可以指定某幾個特徵,然後計算跟剩下特徵之間的相關性
focus(correlate(mtcars), mpg)三、psych包
install.packages("psych")library(psych)corr.test(mtcars)得到特徵兩兩之間的相關係數如下
同時也能得到相關性的p值
四、Hmisc包
#安裝Hmisc包install.packages("Hmisc")library(Hmisc)rcorr(as.matrix(mtcars))得到特徵兩兩之間的相關係數如下
同時也能得到相關性的p值
條條大路通羅馬
不管是白貓還是黑貓,抓住老鼠就是好貓
弱水三千只取一瓢總之,方法很多,選擇適合自己的方法達到目的就行。
你的贊同是我前進的動力