使用corrplot包可視化相關(guān)性矩陣

介紹

本文介紹如何繪制相關(guān)圖中R.相關(guān)圖相關(guān)矩陣的圖形基茵。突出顯示數(shù)據(jù)表中最相關(guān)的變量非常有用。在該圖中,相關(guān)系數(shù)根據(jù)該值著色倔韭。相關(guān)矩陣也可以根據(jù)變量之間的關(guān)聯(lián)程度進行重新排序。這里使用R corrplot軟件包瓢对。

請注意寿酌,這里也可以使用在線軟件來計算相關(guān)矩陣并繪制相關(guān)圖,而無需進行任何安裝硕蛹。

安裝R corrplot軟件包

要執(zhí)行本文中的R代碼醇疼,需要corrplot程序包。

install.packages("corrplot")

相關(guān)分析數(shù)據(jù)

mtcars數(shù)據(jù)被用于計算相關(guān)矩陣法焰。

head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

計算相關(guān)矩陣

M<-cor(mtcars)
head(round(M,2))
       mpg   cyl  disp    hp  drat    wt  qsec    vs    am  gear  carb
mpg   1.00 -0.85 -0.85 -0.78  0.68 -0.87  0.42  0.66  0.60  0.48 -0.55
cyl  -0.85  1.00  0.90  0.83 -0.70  0.78 -0.59 -0.81 -0.52 -0.49  0.53
disp -0.85  0.90  1.00  0.79 -0.71  0.89 -0.43 -0.71 -0.59 -0.56  0.39
hp   -0.78  0.83  0.79  1.00 -0.45  0.66 -0.71 -0.72 -0.24 -0.13  0.75
drat  0.68 -0.70 -0.71 -0.45  1.00 -0.71  0.09  0.44  0.71  0.70 -0.09
wt   -0.87  0.78  0.89  0.66 -0.71  1.00 -0.17 -0.55 -0.69 -0.58  0.43

相關(guān)圖:可視化相關(guān)矩陣

R corrplot函數(shù)用于繪制相關(guān)矩陣僵腺。

該函數(shù)的簡化格式為:

corrplot(corr, method="circle")
參數(shù) 描述
更正 相關(guān)矩陣可視化。要可視化常規(guī)矩陣壶栋,請使用is.corr = FALSE。
方法 可視化方法:“圓圈”普监,“顏色”贵试,“數(shù)字”等

可視化方法

可以使用七種不同的可視化方法:“圓形”,“正方形”凯正,“橢圓”毙玻,“數(shù)字”,“陰影”廊散,“顏色”桑滩,“餅圖”( “circle”, “square”, “ellipse”, “number”, “shade”, “color”, “pie”)。

library(corrplot)
corrplot(M, method="circle")
相關(guān)矩陣允睹,R中的相關(guān)圖运准,相關(guān)圖
corrplot(M, method="pie")
相關(guān)矩陣,R中的相關(guān)圖缭受,相關(guān)圖
corrplot(M, method="color")
相關(guān)矩陣胁澳,R中的相關(guān)圖,相關(guān)圖

正相關(guān)以藍色顯示米者,負相關(guān)以紅色顯示韭畸。顏色強度和圓圈的大小與相關(guān)系數(shù)成正比。

顯示相關(guān)系數(shù)

corrplot(M, method="number")
相關(guān)矩陣蔓搞,R中的相關(guān)圖胰丁,相關(guān)圖

相關(guān)圖布局的類型

布局分為三種:

  • “ full”(默認):顯示完整的相關(guān)矩陣
  • “ upper”:顯示相關(guān)矩陣的上三角
  • “ lower”:顯示相關(guān)矩陣的下三角
corrplot(M, type="upper")
相關(guān)矩陣,R中的相關(guān)圖喂分,相關(guān)圖
corrplot(M, type="lower")
相關(guān)矩陣锦庸,R中的相關(guān)圖,相關(guān)圖

重新排序相關(guān)矩陣

相關(guān)矩陣可以根據(jù)被重新排序相關(guān)系數(shù)妻顶。這對于確定矩陣中隱藏的結(jié)構(gòu)和圖案很重要酸员。在以下示例中蜒车,使用“ hclust”表示層次結(jié)構(gòu)的聚類順序。

# correlogram with hclust reordering
corrplot(M, type="upper", order="hclust")
相關(guān)矩陣幔嗦,R中的相關(guān)圖酿愧,相關(guān)圖
# Using different color spectrum
col<- colorRampPalette(c("red", "white", "blue"))(20)
corrplot(M, type="upper", order="hclust", col=col)
相關(guān)矩陣,R中的相關(guān)圖邀泉,相關(guān)圖
# Change background color to lightblue
corrplot(M, type="upper", order="hclust", col=c("black", "white"),
         bg="lightblue")
相關(guān)矩陣嬉挡,R中的相關(guān)圖,相關(guān)圖

更改相關(guān)圖的顏色

如上節(jié)所示汇恤,可以自定義相關(guān)圖的顏色庞钢。RcolorBrewer調(diào)色板的顏色在以下R腳本中使用:

library(RColorBrewer)
corrplot(M, type="upper", order="hclust", 
         col=brewer.pal(n=8, name="RdBu"))
相關(guān)矩陣,R中的相關(guān)圖因谎,相關(guān)圖
corrplot(M, type="upper", order="hclust",
         col=brewer.pal(n=8, name="RdYlBu"))
相關(guān)矩陣基括,R中的相關(guān)圖,相關(guān)圖
corrplot(M, type="upper", order="hclust",
         col=brewer.pal(n=8, name="PuOr"))
相關(guān)矩陣财岔,R中的相關(guān)圖风皿,相關(guān)圖

更改文本標簽的顏色和旋轉(zhuǎn)

tl.col(用于文本標簽顏色)和 tl.srt(用于文本標簽字符串旋轉(zhuǎn))用于更改文本的顏色和旋轉(zhuǎn)。

corrplot(M, type="upper", order="hclust", tl.col="black", tl.srt=45)
相關(guān)矩陣匠璧,R中的相關(guān)圖桐款,相關(guān)圖

將相關(guān)圖與顯著性檢驗相結(jié)合

計算相關(guān)性的p值

為了計算p值矩陣,使用了一個自定義R函數(shù):

# mat : is a matrix of data
# ... : further arguments to pass to the native R cor.test function
cor.mtest <- function(mat, ...) {
    mat <- as.matrix(mat)
    n <- ncol(mat)
    p.mat<- matrix(NA, n, n)
    diag(p.mat) <- 0
    for (i in 1:(n - 1)) {
        for (j in (i + 1):n) {
            tmp <- cor.test(mat[, i], mat[, j], ...)
            p.mat[i, j] <- p.mat[j, i] <- tmp$p.value
        }
    }
  colnames(p.mat) <- rownames(p.mat) <- colnames(mat)
  p.mat
}
# matrix of the p-value of the correlation
p.mat <- cor.mtest(mtcars)
head(p.mat[, 1:5])
           mpg       cyl      disp        hp      drat
mpg  0.000e+00 6.113e-10 9.380e-10 1.788e-07 1.776e-05
cyl  6.113e-10 0.000e+00 1.803e-12 3.478e-09 8.245e-06
disp 9.380e-10 1.803e-12 0.000e+00 7.143e-08 5.282e-06
hp   1.788e-07 3.478e-09 7.143e-08 0.000e+00 9.989e-03
drat 1.776e-05 8.245e-06 5.282e-06 9.989e-03 0.000e+00
wt   1.294e-10 1.218e-07 1.222e-11 4.146e-05 4.784e-06

向相關(guān)圖添加顯著性水平

# Specialized the insignificant value according to the significant level
corrplot(M, type="upper", order="hclust", 
         p.mat = p.mat, sig.level = 0.01)
相關(guān)矩陣夷恍,R中的相關(guān)圖魔眨,相關(guān)圖
# Leave blank on no significant coefficient
corrplot(M, type="upper", order="hclust", 
         p.mat = p.mat, sig.level = 0.01, insig = "blank")

另外,在上述圖中酿雪,相關(guān)性p-值> 0.01被認為是微不足道的遏暴。在這種情況下,相關(guān)系數(shù)值留為空白或添加叉號指黎。

自定義相關(guān)圖

col <- colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF", "#77AADD", "#4477AA"))
corrplot(M, method="color", col=col(200),  
         type="upper", order="hclust", 
         addCoef.col = "black", # Add coefficient of correlation
         tl.col="black", tl.srt=45, #Text label color and rotation
         # Combine with significance
         p.mat = p.mat, sig.level = 0.01, insig = "blank", 
         # hide correlation coefficient on the principal diagonal
         diag=FALSE 
         )
相關(guān)矩陣拓挥,R中的相關(guān)圖,相關(guān)圖

結(jié)論

使用corrplot() R函數(shù)繪制相關(guān)矩陣的優(yōu)美袋励。

資訊

參考corrplot介紹

This analysis was performed using R (ver. 3.1.0).


覺得有用的老鐵麻煩點個小愛心~??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末侥啤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子茬故,更是在濱河造成了極大的恐慌盖灸,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件磺芭,死亡現(xiàn)場離奇詭異赁炎,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門徙垫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讥裤,“玉大人,你說我怎么就攤上這事姻报〖河ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵吴旋,是天一觀的道長损肛。 經(jīng)常有香客問我,道長荣瑟,這世上最難降的妖魔是什么治拿? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮笆焰,結(jié)果婚禮上劫谅,老公的妹妹穿的比我還像新娘。我一直安慰自己嚷掠,他們只是感情好同波,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著叠国,像睡著了一般。 火紅的嫁衣襯著肌膚如雪戴尸。 梳的紋絲不亂的頭發(fā)上粟焊,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天,我揣著相機與錄音孙蒙,去河邊找鬼项棠。 笑死,一個胖子當著我的面吹牛挎峦,可吹牛的內(nèi)容都是我干的香追。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼坦胶,長吁一口氣:“原來是場噩夢啊……” “哼透典!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起顿苇,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤峭咒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后纪岁,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凑队,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年幔翰,在試婚紗的時候發(fā)現(xiàn)自己被綠了漩氨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片西壮。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖叫惊,靈堂內(nèi)的尸體忽然破棺而出款青,到底是詐尸還是另有隱情,我是刑警寧澤赋访,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布可都,位于F島的核電站,受9級特大地震影響蚓耽,放射性物質(zhì)發(fā)生泄漏渠牲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一步悠、第九天 我趴在偏房一處隱蔽的房頂上張望签杈。 院中可真熱鬧,春花似錦鼎兽、人聲如沸答姥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鹦付。三九已至,卻和暖如春择卦,著一層夾襖步出監(jiān)牢的瞬間敲长,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工秉继, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留祈噪,地道東北人。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓尚辑,卻偏偏與公主長得像辑鲤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子杠茬,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容