大家好,我是菜鳥君。最近在B站背景和QQ群被小夥伴們催到崩潰。感謝各位的鞭笞,不是,充滿愛意的提醒。今天就來說說R語言怎麼進行相關性分析。
首先,安裝兩個R包,其中“corrplot”包就能畫出好多酷炫的相關性矩陣圖。“pheatmap”包是用來畫熱力圖的。
install.packages("corrplot")install.packages("pheatmap")library("pheatmap")library("corrplot")
我們調用R裡自帶的資料集,今天調用的這個是關于汽車道路測試的各項名額資料,名叫mtcars。這個資料集比較規整,資料均為數值型,有興趣的小夥伴可以用它來做各種統計分析的練習。
x = mtcars #将資料集命名為xsummary(x) #檢視資料分布情況dim(x) #檢視行列數

dim的結果裡,第一個數是行數,第二個數是列數,也就是這資料裡有32種車,11個道路測試名額。
我們先算一下cov,這個函數計算的是列與列的協方差,值越大,說明變化趨勢越一緻。
cov(x)pheatmap::pheatmap(cov(x)) #熱力圖
這個圖由于有一個變量的協方差過大(超過15000),是以,襯托的其他部分數值過小,大部分都是藍色了。這不是個合理的熱力圖。
接下來,我們求一下列之間的相關性系數,這個系數越接近0,表示列與列之間越不相關。用pheatmap來展示熱力圖,顔色越接近紅色,相關系數越大。
cor(x)pheatmap::pheatmap(cor(x)) #熱力圖
這個熱力圖就看起來比較“五彩斑斓”,其中方格的顔色越紅,說明兩列正相關系數越大。顔色越藍,說明負相關系數越大。顔色較淺的部分就是相關系數較小,接近于0。
此外,pheatmap圖還有個優勢,那就是可以同時做層次聚類的樹圖。這使得它在生物資訊領域大放異彩,可以直覺的展示基因組資料之間的關系。從頂部與左側的聚類樹圖中,我們還可以看出這11個名額大緻可聚為2大類。這是一般的相關分析圖辦不到的。
接下來,我們用corrplot來展示一下相關性矩陣圖。
corrplot(cor(x)) #暫不設定method,預設是圓圈
這個圖大家可能在很多文獻、公衆号裡都見過,千萬别覺着它有多複雜!其實用corrplot一行指令就搞定了。
如果不想要圓圈,咱們還有很多種選擇,比如餅圖。
corrplot(cor(x),method="pie") #餅圖
這個圖看起來比圓圈圖的資訊更直覺,用餅圖面積大小+顔色深淺來表示相關系數大小。
想不想更直覺一點?我們可以直接在圖中加上相關性系數的數值。
corrplot(cor(x),method="color",addCoef.col="grey") #用顔色顯示,顯示相關系數
這樣的一張相關性分析圖包含了顔色深淺+相關性系數大小,放到論文裡那肯定是亮點啊。
也許有小夥伴對顔色搭配有進一步的要求,運用colorRampPalette這個功能就能輕松設定啦!
#設定顔色,我選的海軍藍+白色+磚紅col=colorRampPalette(c("navy", "white", "firebrick3"))
至于具體咋選顔色、R裡哪些配色方案好看,咱們改天專門說說。
然後咱們再用這個設定後的顔色,來個挑戰一點的,畫相關性矩陣三角矩陣圖。上三角是圓圈大小,下三角顯示相關性系數,同時顔色上一一對應。
其中,顔色col(10)的意思是在設定的三種顔色範圍内,取深淺不同的10個顔色,對應相關系數大小。
#上面畫個三角矩陣corrplot(cor(x),type="upper",col=col(10),tl.pos="d") #tl.pos="d"不顯示各列名字#下面補充系數corrplot(cor(x),add=TRUE, type="lower", method="number",diag=FALSE,tl.pos="n", cl.pos="n",col=col(10))
這樣的相關性矩陣圖,誰看了不點贊?基本上彙集了我們想要展示的各項特征。是不是比SPSS出圖美多了?(實話實說,SPSS大牛别噴我)
這期關于R語言相關性酷炫圖的繪制就介紹到這啦~各位還想看啥内容的資料分析,歡迎給我們留言,有啥問題歡迎到QQ群互動交流,一起進步!
下期再見,嗷。
記得點一下“在看”
QQ群:83837564
B站UP主:誰說菜鳥不會資料分析