相关系数矩阵计算_corrplot包:相关性矩阵可视化
今天學習下相關性矩陣的可視化,可以用來可視化相關性矩陣的包有corrplot包、corrgram包、GGally包、ggcorrplot包等,這些包在大部分情況下都可以滿足需求。今天先來學習corrplot包的使用,后面幾天有空會詳細講解下另外三個包。
目? 錄
1. 安裝和加載R包
2. 加載數據集
3. 數據處理
3.1 轉換矩陣
3.2 計算相關系數
4. 簡單繪制
5. 自定義參數
5.1 可視化方法
5.2 矩陣顯示類型
5.3 繪制組合圖形
5.4 相關矩陣排序
5.5 設置矩陣顏色
5.6 設置文本標簽屬性
5.7 設置圖例屬性
5.8 設置圖形外觀
5.9 設置顯著水平
1. 安裝和加載R包
corrplot包可以用來可視化相關矩陣,這個包中的參數很多,可以很詳細的自定義圖形。
第一步先安裝和加載好R包。
install.packages("corrplot")?#?安裝包library(corrplot)?#?加載包
2. 加載數據集
使用mtcars內置數據集進行演示,先加載包,看下數據集的信息。
data(mtcars)?#?加載數據集head(mtcars,?10)?#?查看數據集前10行
3. 數據處理
在使用mtcars數據集繪制圖形前需要對數據集進行一些簡單處理。
3.1 轉換矩陣
繪圖前可以將數據集轉換為矩陣,當然,我也看到很多推文沒有將數據集轉換成矩陣,一樣可以繪制圖形,這一步也許可以省略。
mtcars?#?轉化為矩陣3.2 計算相關系數
在繪制圖形前,先計算下相關系數,可以使用cor()函數,函數中有"pearson", "kendall", "spearman"三種方法計算,我們選擇默認的"pearson"方法即可。
cor_mtcars?'pearson')cor_mtcars
4. 簡單繪制
先簡單繪制個基本圖形,我們在后面慢慢調整參數自定義圖形。
corrplot(cor_mtcars)如上圖所示,一行代碼就簡單繪制出了圖形。
在上圖中,正相關用藍色顯示,負相關用紅色顯示。顏色強度和圓圈的大小與相關系數成正比。
下面我們開始慢慢調整參數設置圖形。
5. 自定義參數
5.1 可視化方法
在上圖中,可視化的方法method參數默認為"circle",也就是圓形顯示。還可以使用"square","ellipse","number","pie","shade"和"color"顯示,分別表示方形、橢圓形、數字、餅圖、陰影、顏色。
layout(matrix(1:6,?2,?3))?#?分割繪圖設備corrplot(cor_mtcars,?method?=?"square")?#?方形
corrplot(cor_mtcars,?method?=?"ellipse")?#?橢圓形
corrplot(cor_mtcars,?method?=?"number")?#?數字
corrplot(cor_mtcars,?method?=?"pie")?#?餅圖
corrplot(cor_mtcars,?method?=?"shade")?#?陰影
corrplot(cor_mtcars,?method?=?"color")?#?顏色
5.2 矩陣顯示類型
在基礎圖形中,矩陣顯示為全矩陣顯示,可以設置type參數為"lower"和"upper",來分別顯示上三角和下三角矩陣。
layout(matrix(1:2,?1,?2))?#?分割繪圖設備corrplot(cor_mtcars,?type?=?"lower")?#?下三角矩陣
corrplot(cor_mtcars,?type?=?"upper")?#?上三角矩陣
5.3 繪制組合圖形
在上面我們可以繪制出上三角和下三角矩陣圖形,然后可以使用add參數來繪制組合圖形。
add為TRUE則可以圖形添加到現有圖形中。
corrplot(cor_mtcars,?method?=?"square",??????????type?=?"lower")?#?下三角矩陣
corrplot(cor_mtcars,?method?=?"pie",?
?????????type?=?"upper",?add?=?TRUE)?#?上三角矩陣
如上圖所示,先繪制一個下三角圖形,再將上三角圖形添加到圖形上。
5.4 相關矩陣排序
在corrplot包中,使用order參數設置相關性矩陣排序,排序方法有original(默認)、AOE、FPC、hclust、alphabet等5種。
我們看看其他四種排序是什么樣的。
layout(matrix(1:4,?2,?2))?#?分割繪圖設備corrplot(cor_mtcars,?order?=?"AOE")?#?特征向量角序
corrplot(cor_mtcars,?order?=?"FPC")?#?第一主成分順序
corrplot(cor_mtcars,?order?=?"hclust")?#?按層次聚類
corrplot(cor_mtcars,?order?=?"alphabet")?#?按字母順序
當order為"hclust"按層次聚類時,層次聚類方法也有幾種,有"ward", "ward.D", "ward.D2", "single", "complete", "average", "mcquitty", "median"或"centroid"等,可以使用hclust.method參數來指定。
同時也可以設置addrect參數來設置可視化矩陣上聚類矩形的數量,為NULL時默認不添加矩形。
可以使用rect.col、rect.lwd參數來設置聚類矩形的顏色和線寬。
layout(matrix(1:6,?2,?3))?#?分割繪圖設備corrplot(cor_mtcars,?order?=?"hclust",?#?按層次聚類
?????????hclust.method?=?"ward.D2")?#層次聚類方法
corrplot(cor_mtcars,?order?=?"hclust",?
?????????hclust.method?=?"median")?
corrplot(cor_mtcars,?order?=?"hclust",?
?????????hclust.method?=?"single")?
corrplot(cor_mtcars,?order?=?"hclust",?
?????????hclust.method?=?"complete",?
?????????addrect?=?2)?#?設置聚類矩形的數量
corrplot(cor_mtcars,?order?=?"hclust",?
?????????hclust.method?=?"average",?
?????????addrect?=?2,?rect.col?=?"red")??#?設置聚類矩形的顏色
corrplot(cor_mtcars,?order?=?"hclust",?
?????????hclust.method?=?"mcquitty",?
?????????addrect?=?4,?rect.lwd?=?3)?#?設置聚類矩形的線寬
5.5 設置矩陣顏色
使用col參數來設置顏色,還可以使用bg參數設置背景顏色。
layout(matrix(1:3,?1,?3))?#?分割繪圖設備col?=?colorRampPalette(c('blue',?'white',?'red'))(40)
corrplot(cor_mtcars,?method?=?"color")
corrplot(cor_mtcars,?method?=?"color",?col?=?col)?#?矩陣顏色
corrplot(cor_mtcars,?method?=?"circle",?bg?=?"grey")?#?背景顏色
還可以設置其他的顏色。
layout(matrix(1:6,?2,?3))?#?分割繪圖設備corrplot(cor_mtcars,?order?=?"hclust",?col?=?heat.colors(100))
corrplot(cor_mtcars,?order?=?"hclust",?col?=?terrain.colors(100))
corrplot(cor_mtcars,?order?=?"hclust",?col?=?cm.colors(100))
corrplot(cor_mtcars,?order?=?"hclust",?col?=?gray.colors(100))
library(RColorBrewer)
corrplot(cor_mtcars,?order?=?"hclust",?col?=?brewer.pal(n?=?8,?name?=?"RdYlBu"))
corrplot(cor_mtcars,?col?=?brewer.pal(n?=?8,?name?=?"PuOr"))
5.6 設置文本標簽屬性
layout(matrix(1:4,?2,?2))?#?分割繪圖設備corrplot(cor_mtcars,?tl.pos?=?"n")?#?不顯示文本標簽
corrplot(cor_mtcars,?tl.pos?=?"lt")?#?在左邊和頂部顯示
corrplot(cor_mtcars,?tl.cex?=?1.5)?#?設置文本標簽的縮放倍數
corrplot(cor_mtcars,?tl.col?=?"black")?#?設置文本標簽的顏色
5.7 設置圖例屬性
顏色標簽,也就是圖形旁邊的圖例,可以使用cl.pos、cl.cex、cl.ratio、cl.align.text、cl.offset等參數來設置。
5.7.1 設置圖例位置
corrplot(cor_mtcars,?cl.pos?=?"n")?#?不顯示圖例corrplot(cor_mtcars,?cl.pos?=?"r")?#?圖例放在右邊
corrplot(cor_mtcars,?cl.pos?=?"b")?#?圖例放在底部
5.7.2 設置圖例文本屬性
corrplot(cor_mtcars,?cl.cex?=?1.5)?#?設置圖例中數字標簽的縮放倍數corrplot(cor_mtcars,?cl.ratio?=?2.0)?#?數字,設置圖例的寬度
corrplot(cor_mtcars,?cl.align.text?=?"l")?#?字符,設置圖例中的數字標簽的對齊方式
5.8 設置圖形外觀
可以設置圖形的標題、四邊間距、網格線等。
layout(matrix(1:4,?2,?2))?#?分割繪圖設備corrplot(cor_mtcars,?mar?=?c(2.2,?2.6,2.8,1.9))?#?設置圖形四邊間距
corrplot(cor_mtcars,?addgrid.col?=?"black")?#?設置網格線
corrplot(cor_mtcars,?outline?=?"black")?#?設置圓形、橢圓形等外邊框
corrplot(cor_mtcars,?tl.pos?=?"n",?
?????????title??=?"R語言統計與繪圖?公眾號")?#?添加圖形標題
5.9 設置顯著水平
可以在圖形上顯示顯著性水平。
layout(matrix(1:4,?2,?2))?#?分割繪圖設備res1?.95)
corrplot(cor_mtcars,?p.mat?=?res1$p,?
?????????sig.level?=?.2)?#?設置p值>0.2的不顯示
corrplot(cor_mtcars,?p.mat?=?res1$p,?
?????????sig.level?=?.05)?#?設置p值>0.05的不顯示
corrplot(cor_mtcars,?p.mat?=?res1$p,?
?????????insig?=?"blank")?#?擦除p值>0.05的相關系數,設置為空白
corrplot(cor_mtcars,?p.mat?=?res1$p,?
?????????insig?=?"p-value")
參考資料
既往專輯
總結
以上是生活随笔為你收集整理的相关系数矩阵计算_corrplot包:相关性矩阵可视化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 保存文件_使用SaveFileDi
- 下一篇: c语言atof字母,C语言字符转换之at