有人說ggstatsplot是統(tǒng)計學(xué)畫圖的天花板,確實他的統(tǒng)計異常簡單,而且出的圖也非?;ɡ锖冢@里介紹一下利用ggstatsplot做相關(guān)性分析
使用mtcars數(shù)據(jù)進行演示
data(mtcars)
mtcars[1:10,1:10] ##顯示前十行前十列的數(shù)據(jù)
| mpg | cyl | disp | hp | drat | wt | qsec | vs | am | gear | |
|---|---|---|---|---|---|---|---|---|---|---|
| Mazda RX4 | 21.0 | 6 | 160.0 | 110 | 3.90 | 2.620 | 16.46 | 0 | 1 | 4 |
| Mazda RX4 Wag | 21.0 | 6 | 160.0 | 110 | 3.90 | 2.875 | 17.02 | 0 | 1 | 4 |
| Datsun 710 | 22.8 | 4 | 108.0 | 93 | 3.85 | 2.320 | 18.61 | 1 | 1 | 4 |
| Hornet 4 Drive | 21.4 | 6 | 258.0 | 110 | 3.08 | 3.215 | 19.44 | 1 | 0 | 3 |
| Hornet Sportabout | 18.7 | 8 | 360.0 | 175 | 3.15 | 3.440 | 17.02 | 0 | 0 | 3 |
| Valiant | 18.1 | 6 | 225.0 | 105 | 2.76 | 3.460 | 20.22 | 1 | 0 | 3 |
| Duster 360 | 14.3 | 8 | 360.0 | 245 | 3.21 | 3.570 | 15.84 | 0 | 0 | 3 |
| Merc 240D | 24.4 | 4 | 146.7 | 62 | 3.69 | 3.190 | 20.00 | 1 | 0 | 4 |
| Merc 230 | 22.8 | 4 | 140.8 | 95 | 3.92 | 3.150 | 22.90 | 1 | 0 | 4 |
| Merc 280 | 19.2 | 6 | 167.6 | 123 | 3.92 | 3.440 | 18.30 | 1 | 0 | 4 |
進行相關(guān)性分析,需要用到的函數(shù)是ggcorrmat(),我們先看看官方介紹
ggcorrmat(
data,
cor.vars = NULL,
cor.vars.names = NULL,
output = "plot",
matrix.type = "upper",
type = "parametric",
tr = 0.2,
partial = FALSE,
k = 2L,
sig.level = 0.05,
conf.level = 0.95,
bf.prior = 0.707,
p.adjust.method = "holm",
pch = "cross",
ggcorrplot.args = list(method = "square", outline.color = "black", pch.cex = 14),
package = "RColorBrewer",
palette = "Dark2",
colors = c("#E69F00", "white", "#009E73"),
ggtheme = ggstatsplot::theme_ggstatsplot(),
ggplot.component = NULL,
title = NULL,
subtitle = NULL,
caption = NULL,
...
)
可以看到可以定制的參數(shù)很多,這樣我們就可以一一去嘗試了
我們首先運行最簡單的默認(rèn)函數(shù),見Figure 1所示,可以看到默認(rèn)的是上半部分顯示,并且自動計算好了相關(guān)性系數(shù)和顯著性標(biāo)識,非常的方便
library(ggstatsplot)
ggcorrmat(mtcars)

默認(rèn)函數(shù)的圖
這時候我們可以跟之前的結(jié)果比較,會發(fā)現(xiàn)P值顯示不一樣,那是因為默認(rèn)的是校正的p值,如果我們只想顯示默認(rèn)p值,只要設(shè)置
p.adjust.method = 'none'即可,同時我們再設(shè)置成顯示下半部分,只需要加一句matrix.type = 'lower',結(jié)果見Figure 2
ggcorrmat(mtcars,p.adjust.method = 'none',matrix.type = 'lower')

將p值設(shè)置為none,即不校正
由于所有計算都是后臺運行,如果我們想看結(jié)果的話,只需要設(shè)置output = "dataframe"即可,這里我們依然可以用校正p值,或者不校正p值,我們試試不校正p值,結(jié)果見表所示
data<-ggcorrmat(mtcars,p.adjust.method = 'none',output = 'datafream')
data[1:10,1:11]
| parameter1 | parameter2 | estimate | conf.level | conf.low | conf.high | statistic | df.error | p.value | method | n.obs |
|---|---|---|---|---|---|---|---|---|---|---|
| mpg | cyl | -0.8521620 | 0.95 | -0.9257694 | -0.7163171 | -8.919699 | 30 | 0.0000000 | Pearson correlation | 32 |
| mpg | disp | -0.8475514 | 0.95 | -0.9233594 | -0.7081376 | -8.747151 | 30 | 0.0000000 | Pearson correlation | 32 |
| mpg | hp | -0.7761684 | 0.95 | -0.8852686 | -0.5860994 | -6.742388 | 30 | 0.0000002 | Pearson correlation | 32 |
| mpg | drat | 0.6811719 | 0.95 | 0.4360484 | 0.8322010 | 5.096042 | 30 | 0.0000178 | Pearson correlation | 32 |
| mpg | wt | -0.8676594 | 0.95 | -0.9338264 | -0.7440872 | -9.559044 | 30 | 0.0000000 | Pearson correlation | 32 |
| mpg | qsec | 0.4186840 | 0.95 | 0.0819549 | 0.6696186 | 2.525213 | 30 | 0.0170820 | Pearson correlation | 32 |
| mpg | vs | 0.6640389 | 0.95 | 0.4103630 | 0.8223262 | 4.864385 | 30 | 0.0000342 | Pearson correlation | 32 |
| mpg | am | 0.5998324 | 0.95 | 0.3175583 | 0.7844520 | 4.106127 | 30 | 0.0002850 | Pearson correlation | 32 |
| mpg | gear | 0.4802848 | 0.95 | 0.1580618 | 0.7100628 | 2.999191 | 30 | 0.0054009 | Pearson correlation | 32 |
| mpg | carb | -0.5509251 | 0.95 | -0.7546480 | -0.2503183 | -3.615750 | 30 | 0.0010844 | Pearson correlation | 32 |
接下來,我們可以深入定制
全部顯示結(jié)果,見Figure 3所示
ggcorrmat(mtcars, ##表達矩陣
p.adjust.method = 'none', ## 不校正p值
matrix.type = 'full'##全部顯示
)

顯示全部
如果覺得配色不好,我們還可以設(shè)置不同的顏色差,這里要有三組顏色,比如我們設(shè)置藍(lán)色白色和紅色,結(jié)果見Figure 5所示
ggcorrmat(mtcars,p.adjust.method = 'none',
colors=c("blue" ,"white" ,"red"))

更改顏色
當(dāng)然我們還可以自定義別的顏色,比如下面這個素顏的配色
ggcorrmat(mtcars,p.adjust.method = 'none',colors=c("#2874C5" ,"white" ,"#f87669"))

素雅的圖