|
上一期(Stata回歸圖表美化)推送之后,有讀者問我,能不能給相關(guān)系數(shù)的報(bào)告也美化一下?當(dāng)然沒問題,這期我來介紹用R語(yǔ)言中的5個(gè)程序包,繪制13種相關(guān)系數(shù)矩陣,13種哦~圖后直接上代碼。 本期使用R語(yǔ)言內(nèi)置數(shù)據(jù)集進(jìn)行練習(xí);查看R包含哪些內(nèi)置數(shù)據(jù),請(qǐng)使用“data()”函數(shù): 我們使用這里面的“mtcars”數(shù)據(jù),包含“mpg”、“cyl”、“disp”、“hp”、“drat”等11個(gè)變量的汽車道路測(cè)試數(shù)據(jù);在R中讀取內(nèi)置數(shù)據(jù),直接輸入數(shù)據(jù)名稱即可:
# 安裝corrplot包并調(diào)用 install.packages('corrplot') library(corrplot) 第1種:簡(jiǎn)單粗暴 藍(lán)色表示兩個(gè)變量呈正相關(guān),紅色表示變量呈負(fù)相關(guān)。色彩越深,表示變量相關(guān)性越大: # 計(jì)算相關(guān)系數(shù) mycor<> # 刪除缺失值或字符變量 use='complete.obs' # 輸出為mycor且保留兩位小數(shù) round(mycor,digits=2) # 繪制相關(guān)系數(shù)矩陣圖 corrplot(mycor, method = 'shade',shade.col = NA, tl.col ='black', tl.srt = 45, order = 'AOE') 第2種:圓圈圖 藍(lán)色表示兩個(gè)變量呈正相關(guān),紅色表示變量呈負(fù)相關(guān)。色彩越深,表示變量相關(guān)性越大: # 計(jì)算相關(guān)系數(shù) mycor <-> # 繪制相關(guān)系數(shù)矩陣圖 corrplot(mycor, method='circle') 第3種:帶系數(shù)的橢圓圖 橢圓越扁,表示相關(guān)系數(shù)的絕對(duì)值較大;橢圓越圓,表示相關(guān)系數(shù)的絕對(duì)值較?。粰E圓長(zhǎng)軸的方向表示相關(guān)系數(shù)的正負(fù):右上-左下方向?qū)?yīng)正值,左上-右下方向?qū)?yīng)負(fù)值: # 計(jì)算相關(guān)系數(shù) mycor <-> # 繪制相關(guān)系數(shù)矩陣圖 corrplot.mixed(mycor, upper = 'ellipse') 第4種:三角圓圈圖 # 計(jì)算相關(guān)系數(shù) mycor <-> # 繪制相關(guān)系數(shù)矩陣圖 corrplot(mycor, method='circle',type='upper',order='hclust') 第5種:三角顏色圖 # 計(jì)算相關(guān)系數(shù) mycor <-> # 繪制相關(guān)系數(shù)矩陣圖 corrplot(mycor,method='color',type='upper',order='hclust',addCoef.col = 'black')
# 安裝iterators包并調(diào)用 install.packages('iterators') library(iterators) # 安裝corrgram包并調(diào)用 install.packages('corrgram') library(corrgram) 第6種:添加斜線 藍(lán)色和從左下指向右上的斜杠表示兩個(gè)變量呈正相關(guān),紅色和從左上指向右下的斜杠表示變量呈負(fù)相關(guān)。色彩越深,表示變量相關(guān)性越大: # 繪制相關(guān)系數(shù)矩陣圖 corrgram(mtcars, lower.panel=panel.shade, upper.panel=NULL,text.panel=panel.txt, main='Car Mileage Data (unsorted)') 第7種:添加餅圖 上三角區(qū)域使用餅圖表示相關(guān)系數(shù);藍(lán)色和從12點(diǎn)鐘處開始順時(shí)針填充餅圖表示兩個(gè)變量呈正相關(guān),紅色和逆時(shí)針方向填充餅圖表示變量負(fù)相關(guān): # 繪制相關(guān)系數(shù)矩陣圖 corrgram(mtcars, order=TRUE, lower.panel=panel.shade, upper.panel=panel.pie,text.panel=panel.txt, main='Correlogram of mtcar intercorrelations') 第8種:添加擬合曲線與置信橢圓 下三角區(qū)域使用平滑擬合曲線和置信橢圓,上三角區(qū)域使用散點(diǎn)圖: # 繪制相關(guān)系數(shù)矩陣圖 corrgram(mtcars, order=TRUE, lower.panel=panel.ellipse, upper.panel=panel.pts,text.panel=panel.txt, diag.panel=panel.minmax, main='Correlogram of mtcardata using scatterplots and ellipses')
# 安裝ellipse包并調(diào)用 install.packages('ellipse') library(ellipse) 第9種:橢圓圖 橢圓越扁,表示相關(guān)系數(shù)的絕對(duì)值較大;橢圓越圓,表示相關(guān)系數(shù)的絕對(duì)值較??;橢圓長(zhǎng)軸的方向表示相關(guān)系數(shù)的正負(fù):右上-左下方向?qū)?yīng)正值,左上-右下方向?qū)?yīng)負(fù)值:
# 繪制相關(guān)系數(shù)矩陣圖 col = colors[as.vector(apply(cor, 2, rank))] plotcorr(cor, col = col, mar = rep(0, 4)) 第10種:顏色圖 藍(lán)色表示正相關(guān)系數(shù),紅色表示負(fù)相關(guān)系數(shù):
# 計(jì)算相關(guān)系數(shù) fit = lm(mpg ~ ., mtcars) cor = summary(fit, correlation = TRUE)$correlation # 相關(guān)陣上下倒轉(zhuǎn)再轉(zhuǎn)置 cor2 = t(cor[11:1, ]) # 繪制相關(guān)系數(shù)矩陣圖 colors = c('#A50F15', '#DE2D26','#FB6A4A', '#FCAE91','#FEE5D9','white', '#EFF3FF','#BDD7E7', '#6BAED6', '#3182BD','#08519C') image(1:11, 1:11, cor2, axes = FALSE, ann = F, col = colors) text(rep(1:11, 11), rep(1:11, each = 11), round(100 * cor2))
# 安裝GGally包并調(diào)用 install.packages('GGally') library(GGally) 第11種:三角顏色圖
# 繪制相關(guān)系數(shù)矩陣圖 ggcorr(mtcars, label = TRUE, label_alpha = TRUE) 第12種:添加相關(guān)類型
# 繪制相關(guān)系數(shù)矩陣圖 ggpairs(mtcars, columns = c('mpg', 'cyl', 'disp'),upper = list(continuous = wrap('cor', size = 10)), lower =list(continuous = 'smooth'))
# 安裝PerformanceAnalytics包并調(diào)用 install.packages('PerformanceAnalytics') library(PerformanceAnalytics) 第13種:添加直方圖、散點(diǎn)圖與P值 顯示相關(guān)系數(shù)大小、相關(guān)系數(shù)顯著性檢驗(yàn)的P值、變量的直方圖與變量間的散點(diǎn)圖:
# 列出待計(jì)算變量 mydata <> # 繪制相關(guān)系數(shù)矩陣圖 chart.Correlation(mydata, histogram=TRUE, pch=19)
[1] Robert I. Kabacoff. R in Action-Data analysis and graphics with R. Manning Publications Co. 2015: 283-287. |
|
|