{see}:研究好物分享!能将统计模型画成图,还能拼接多个图片~

学术   2024-05-24 18:46   浙江  
今天介绍一个研究中的好帮手给各位,R包{see} [1]

以后如果需要将统计模型作图,再也不用担心啦。除此之外,不载入其它R包也能拼接多个图片!

马上开始吧~

首先安装并载入R包{see}

install.packages("see")
library(see)

# 先安装,后续会用到
install.packages("parameters")
install.packages("performance")
install.packages("effectsize")
install.packages("correlation")
install.packages("qqplotr") # 作图
install.packages("ggplot2") # 作图
准备需要的两个数据。

第一个为R自带数据ToothGrowth:

# 数据1
data("ToothGrowth")
summary(ToothGrowth)

第二个数据集为R自带的mtcars:

# 数据2
data("mtcars")

mtcars$am_factor <- factor(mtcars$am)
mtcars$cyl_factor <- factor(mtcars$cyl)

summary(mtcars)

首先介绍plot()函数,它是R包{see}中非常好用的一个函数。

拟合一个线性回归模型,并将其中参数进行作图:

library(parameters)

# 拟合模型
model <- lm(len ~ supp * dose, data = ToothGrowth)

# 作图
plot(parameters(model))

上述代码中,parameters(model)从一个已拟合的统计模型(如线性回归模型)中提取模型参数,再使用plot()函数就能将这些模型的参数画成图了。

还能通过作图观察模型残差是否符合正态分布

library(performance)

# 拟合模型
model1 <- lm(len ~ supp, data = ToothGrowth)

# 作图
plot(check_normality(model1), type = "qq")

上述代码中,check_normality(model1) 是用来检验模型残差是否符合正态分布

假如想观察多个变量之间的相关:

library(correlation)

model3 <- correlation(mtcars[, c(1, 3:7)])

plot(summary(model3), show_data = "points")

上述代码中,correlation()函数计算选定的几个变量之间的相关系数。summary(model3)获取model3的信息,再通过plot()作图。

除了上面提到的内容之外,plot()还兼容{ggplot2}中的函数,强强联手让作图过程更便捷:

library(ggplot2)

# 兼容ggplot2,修改x轴上标签
plot(parameters(model)) +
  xlab("Coefficients")

{see}还能画半小提琴图,使用geom_violinhalf()

ggplot(mtcars, aes(x = am_factor, y = mpg, fill = am_factor)) +
  geom_violinhalf() +
  theme_lucid() +
  scale_fill_material_d()

再画一个半小提琴图+半点图,使用geom_violindot()函数:

ggplot(mtcars, aes(x = am_factor, y = mpg, fill = am_factor)) +
  geom_violindot(size_dots = 6,
                 fill_dots = "grey") +
  theme_lucid()

假如想将几个图片拼在一起:

p1 <- ggplot(mtcars, aes(x = cyl_factor, y = mpg, fill = cyl_factor)) +
  geom_boxplot() +
  scale_fill_material(palette = "full")

p2 <- ggplot(mtcars, aes(x = cyl_factor, y = mpg, fill = cyl_factor)) +
  geom_col(width = 0.5) +
  scale_fill_material_d(palette = "ice")

p3 <- ggplot(mtcars, aes(x = mpg, y = disp, color = wt)) +
  geom_point() +
  scale_color_material_c(palette = "contrast")

# 拼接并排列多个图
plots(p1, p2, p3,
      n_columns = 1)

上述代码中,plots()实现多图拼接,n_columns = 1即只有一列。

还可以加上图片题目,以及给三张亚图添加序列标签

plots(p1, p2, p3,
      n_rows = 2,
      title = "MTCARS",
      tags = paste("Fig. ", LETTERS[1:3])
)

上述代码中,n_rows = 2即有两行,titletags修改图片题目和亚图序列标签。

最后,介绍{see}中的一些图片主题让大家选择,先画个散点图备用:

p <- ggplot(mtcars, aes(x = mpg, y = wt, color = am_factor)) +
  geom_point() +
  labs(color = "Transmission\n 0 = automatic\n 1 = manual")
p

给图片换个主题风格:

p + theme_lucid()

假如喜欢暗色系主题:

p + theme_abyss()


好啦,今天的内容就到这里。如果有帮助,记得分享给需要的人


参考文献

[1]. https://easystats.github.io/see/

公众号的线上课程
1. 《R语言和统计新手课程》
2. 《回归:从入门到进阶》
3. 《线性混合模型和纵向数据分析》
【通过公众号菜单栏--线上课程】

统计咨询
《服务介绍和经典合作案例》

公众号核心成员的成果发表
《SCI医学1区影响因子9分论文》

公众号核心成员担任SCI杂志Associate Editor!
《JAD杂志Associate editor》
《Frontiers in Neuroscience, Frontiers in Neurology and Frontiers in Psychiatry杂志的神经退行性病变板块》

加入我们
成为我们的课程推广大使,赢取高额回报!
【通过公众号菜单栏--联系我们--招推广员】

▌本文由R语言和统计首发
▌课程相关咨询可添加R师妹微信: kefu_rstats
▌编辑:June
▌邮箱:contact@rstats.cn
▌网站:www.rstats.cn
我们致力于让R语言和统计变得简单!





R语言和统计
我们定期更新与R有关的内容,比如R编程基础,作图,实用R包的解读,统计学基础知识,前沿的统计方法,机器学习等等。
 最新文章