技術貼│R語言13種相關矩陣圖

2021-02-20 表哥有話講

鄭連虎,在數學學院取得理學學位的文科生,中國人民大學碩博連讀生在讀,山東大學管理學學士、理學學士

個人公眾號:阿虎定量筆記

文章(技術貼│Stata回歸圖表美化)推送之後,有讀者問我,能不能給相關係數的報告也美化一下?當然沒問題,這期我來介紹用R語言中的5個程序包,繪製13種相關係數矩陣,13種哦~圖後直接上代碼。

本期使用R語言內置數據集進行練習;查看R包含哪些內置數據,請使用「data()」函數:


我們使用這裡面的「mtcars」數據,

包含「mpg」、「cyl」、「disp」、「hp」、「drat」等11個變量的汽車道路測試數據;在R中讀取內置數據,直接輸入數據名稱即可:


corrplot包

# 安裝corrplot包並調用

install.packages("corrplot")

library(corrplot)

第1種:簡單粗暴

藍色表示兩個變量呈正相關,紅色表示變量呈負相關。色彩越深,表示變量相關性越大:


# 計算相關係數

mycor<-cor(mtcars)

# 刪除缺失值或字符變量

use="complete.obs"

# 輸出為mycor且保留兩位小數

round(mycor,digits=2)

# 繪製相關係數矩陣圖

corrplot(mycor, method = "shade",shade.col = NA, tl.col ="black", tl.srt = 45, order = "AOE")

第2種:圓圈圖

藍色表示兩個變量呈正相關,紅色表示變量呈負相關。色彩越深,表示變量相關性越大:


# 計算相關係數

mycor <- cor(mtcars)

# 繪製相關係數矩陣圖

corrplot(mycor, method="circle")

第3種:帶係數的橢圓圖

橢圓越扁,表示相關係數的絕對值較大;橢圓越圓,表示相關係數的絕對值較小;橢圓長軸的方向表示相關係數的正負:右上-左下方向對應正值,左上-右下方向對應負值:


# 計算相關係數

mycor <- cor(mtcars)

# 繪製相關係數矩陣圖

corrplot.mixed(mycor, upper = "ellipse")

第4種:三角圓圈圖


# 計算相關係數

mycor <- cor(mtcars)

# 繪製相關係數矩陣圖

corrplot(mycor, method="circle",type="upper",order="hclust")

第5種:三角顏色圖


# 計算相關係數

mycor <- cor(mtcars)

# 繪製相關係數矩陣圖

corrplot(mycor,method="color",type="upper",order="hclust",addCoef.col = "black")

 

corrgram包

# 安裝iterators包並調用

install.packages("iterators")

library(iterators)

# 安裝corrgram包並調用

install.packages("corrgram")

library(corrgram)

第6種:添加斜線

藍色和從左下指向右上的斜槓表示兩個變量呈正相關,紅色和從左上指向右下的斜槓表示變量呈負相關。色彩越深,表示變量相關性越大:


# 繪製相關係數矩陣圖

corrgram(mtcars, lower.panel=panel.shade, upper.panel=NULL,text.panel=panel.txt, main="Car Mileage Data (unsorted)")

第7種:添加餅圖

上三角區域使用餅圖表示相關係數;藍色和從12點鐘處開始順時針填充餅圖表示兩個變量呈正相關,紅色和逆時針方向填充餅圖表示變量負相關:


# 繪製相關係數矩陣圖

corrgram(mtcars, order=TRUE, lower.panel=panel.shade, upper.panel=panel.pie,text.panel=panel.txt, main="Correlogram of mtcar intercorrelations")

第8種:添加擬合曲線與置信橢圓

下三角區域使用平滑擬合曲線和置信橢圓,上三角區域使用散點圖:


# 繪製相關係數矩陣圖

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包

# 安裝ellipse包並調用

install.packages("ellipse")

library(ellipse)

第9種:橢圓圖

橢圓越扁,表示相關係數的絕對值較大;橢圓越圓,表示相關係數的絕對值較小;橢圓長軸的方向表示相關係數的正負:右上-左下方向對應正值,左上-右下方向對應負值:


# 繪製相關係數矩陣圖

col = colors[as.vector(apply(cor, 2, rank))]

plotcorr(cor, col = col, mar = rep(0, 4))

第10種:顏色圖

藍色表示正相關係數,紅色表示負相關係數:


# 計算相關係數

fit = lm(mpg ~ ., mtcars)

cor = summary(fit, correlation = TRUE)$correlation

# 相關陣上下倒轉再轉置

cor2 = t(cor[11:1, ])

# 繪製相關係數矩陣圖

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包

# 安裝GGally包並調用

install.packages("GGally")

library(GGally)

第11種:三角顏色圖


# 繪製相關係數矩陣圖

ggcorr(mtcars, label = TRUE, label_alpha = TRUE)

第12種:添加相關類型


# 繪製相關係數矩陣圖

ggpairs(mtcars, columns = c("mpg", "cyl", "disp"),upper = list(continuous = wrap("cor", size = 10)), lower =list(continuous = "smooth"))

 

PerformanceAnalytics包

# 安裝PerformanceAnalytics包並調用

install.packages("PerformanceAnalytics")

library(PerformanceAnalytics)

第13種:添加直方圖、散點圖與P值

顯示相關係數大小、相關係數顯著性檢驗的P值、變量的直方圖與變量間的散點圖:


# 列出待計算變量

mydata <-mtcars[c('mpg','cyl','disp','hp','drat')]

# 繪製相關係數矩陣圖

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.

公眾號後臺回復關鍵字即可學習

回復 爬蟲            爬蟲三大案例實戰  
回復 Python       1小時破冰入門

回復 數據挖掘     R語言入門及數據挖掘
回復 人工智慧     三個月入門人工智慧
回復 數據分析師  數據分析師成長之路 
回復 機器學習      機器學習的商業應用
回復 數據科學      數據科學實戰
回復 常用算法      常用數據挖掘算法

相關焦點

  • R語言中獲取矩陣中元素的幾種形式
    在上一篇文章中,小編介紹了R語言中創建矩陣的幾種形式。今天,我們再來探討一下如何訪問矩陣中的元素。在R語言中獲取矩陣中的元素主要有以下幾種形式:獲取矩陣中所有的元素值只要使用矩陣名就可以獲取整個矩陣中的所有元素。
  • 技術貼 | R語言:組學關聯分析和pheatmap可視化
    舉例展示R語言組學關聯分析的方法。宏基因組數據以KO-樣品豐度表為例。代謝組數據以metabolite-樣品豐度表為例。基本方法是用R語言psych包corr.test函數進行兩組數據的相關分析,結果經格式化後用pheatmap可視化得熱圖。一、模擬輸入 1.
  • 技術貼 | R語言:繪製基因組基因箭頭圖
    舉例介紹如何用R語言gggenes函數包把基因預測得到的gff或gtf文件(含基因位置信息)中的基因類型、位置可視化到圖中。注意:R version >= 3.6gggenes依賴的ggfittext需要R 3.6以上,導致我用R 3.4.1安裝gggenes失敗。後來改用R 3.6.1成功安裝。
  • R語言學習筆記之相關性矩陣分析及其可視化
    計算相關矩陣R內置函數 cor() 可以用來計算相關係數:cor(x, method = c("pearson", "kendall", "spearman")),如果數據有缺失值計算相關係數矩陣res <- cor(mydata)round(res, 2)#保留兩位小數
  • R 語言中的矩陣計算
    作者:張丹(Conan)來源:http://blog.fens.me/r-matrix/前言R 是作為統計語言,生來就對數學有良好的支持。矩陣計算作為底層的數學工具,有非常廣泛的使用場景。用R語言很好地封裝了,矩陣的各種計算方法,一個函數一行代碼,就能完成複雜的矩陣分解等操作。
  • R語言中編輯矩陣中元素的方法
    在實際數據處理過程中,我們有時需要對數據中的元素進行修改,或刪除矩陣中的某一行或某一列,甚至需要將兩個矩陣進行合併。本文將介紹在R語言中如何實現對矩陣元素的修改操作。))在R語言中,主要通過以下幾種形式來修改矩陣中的元素值。
  • R語言中幾種常見的創建矩陣的形式
    矩陣概述在R語言中,矩陣(matrix)是將數據按行和列組織數據的一種數據對象,相當於二維數組,可以用於描述二維的數據。與向量相似,矩陣的每個元素都擁有相同的數據類型。通常用列來表示來自不同變量的數據,用行來表示相同的數據。
  • R語言學習之矩陣
    對於矩陣而言,我們當然想實現以下操作與功能:矩陣的加減、乘除運算矩陣的行列切片最值的快速獲取線性代數運算好在R語言中的矩陣可以很輕易幫我們實現這些功能,有了這一神兵利器,我們就可以遊刃有餘地操作應該算是數據分析的基本單位——矩陣了。
  • 基於R語言的主成分和因子分析
    主成分分析過程1)數據預處理,可以直接使用原始數據也可以使用相關係數矩陣;2)選擇主成分的個數(可有三種方法參考,1:保留特徵值大於1的主成分;2:碎石圖,在圖形變化最大處之上的主成分均可保留;3:平行分析,將真實數據的特徵值與模擬數據的特徵值進行比較,保留真實數據的特徵值大於模擬數據的特徵值的主成分
  • R語言 | Pearson、Spearman、Kendall、Polychoric、Polyserial相關係數簡介及R計算
    library(psych) #所有變量間相關係數的對稱矩陣corr_matrix <- corr.test(mtcars, method = 'pearson')corr_matrix$r #相關矩陣corr_matrix$p #p 值矩陣 #相關圖,只展示 p < 0.05 的相關係數library
  • 技術貼 | R語言:手把手教你畫upset集合圖
    導讀:venn可以分析不同數據集的交集,另外使用R語言UpSet函數包upset函數繪製集合圖可以更清晰的展示不同數據集的交集情況。圖1二、集合圖-基礎upset(fromList(input))技術貼 | R語言:ROC分析多樣性指數技術貼 | R語言:ggplot畫柱形圖、排序、著色技術貼 | R語言:手把手教你搞定ggplot柱形圖(一)技術貼 | R語言:手把手教你搞定
  • R語言實戰(14)——主成分分析和因子分析
    基本圖形R語言實戰(7)——基本統計分析R語言實戰(8)——回歸R語言實戰(9)——方差分析R語言實戰(10)——功效分析R語言實戰(11)——中級繪圖R語言實戰(12)——重抽樣與自助法R語言實戰(13)——廣義線性模型本期是我們推出
  • R與數學專題矩陣運算
    溫馨提示:每期乾貨不容錯過,點擊文章末尾「閱讀原文」查看上期內容~~這一周將接著給大家介紹 R在矩陣運算的相關計算。通過對本文的學習,你將會掌握矩陣的創建,矩陣的基本運算,矩陣的分解;行列式的相關運算。1.
  • R與數學專題 矩陣運算
    溫馨提示:每期乾貨不容錯過,點擊文章末尾「閱讀原文」查看上期內容~~這一周將接著給大家介紹 R在矩陣運算的相關計算。通過對本文的學習,你將會掌握矩陣的創建,矩陣的基本運算,矩陣的分解;行列式的相關運算。1.
  • 初見|-聚類分析原理及R語言的實現
    相似性係數有很多種類型,就包括距離係數、相關係數、聯合係數、信息係數和模糊係數等。關於距離的定義有很多種方式,可以根據自己所需要刻畫的分類標準來對距離進行定義。其實閔可夫斯基距離係數中r等於1時則為平均絕對距離,而當r等於2時則為平均歐式距離。這裡,當r趨向於無窮的時候,又可以引出切比雪夫(Chebyshev)距離:
  • 相關係數簡介及R計算
    library(psych) #所有變量間相關係數的對稱矩陣corr_matrix <- corr.test(mtcars, method = 'pearson')corr_matrix$r #相關矩陣corr_matrix$p #p 值矩陣 #相關圖,只展示 p < 0.05 的相關係數library
  • R_相關分析_Correlation
    利用兩個變量之間的均值和標準差計算的相關係數或線性相關係數,一般用字母r表示,可以用來描述變量相關聯的方向(±:正相關或負相關)和強度(完全不相關時為0,完全相關時為1)Pearson相關係數被廣泛使用,除此之外還有Spearman秩相關係數和Kendall秩相關係數。Pearson相關係數計算公式如下:其中為均值。在這裡主要介紹Pearson相關係數在R語言中的實現。
  • R 語言10分鐘入門
    R語言的特點 大概有一些這麼幾點:(1) 有效的數據處理和保存機制。 (2) 擁有一整套數組和矩陣的操作運算符。 (3) 一系列連貫而又完整的數據分析中間工具。 (4) 圖形統計可以對數據直接進行分析和顯示,可用於多種圖形設備,R語言強大的繪圖功能,製圖具有印刷的素質,也可加入數學符號。 (5) 一種相當完善、簡潔和高效的程序設計語言。
  • R 矩陣
    R 語言為線性代數的研究提供了矩陣類型,這種數據結構很類似於其它語言中的二維數組,但 R 提供了語言級的矩陣運算支持。
  • R語言筆記4:向量、矩陣的數學運算
    R語言基礎系列前情提要:Vectorized OperationsR中許多操作可以通過向量化變得更加簡潔