You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R的performance包check_model每行展示6个LM模型诊断图?

实现performance包check_model多模型诊断图的指定布局

先修正原模型拟合代码的错误

你提供的代码存在两处语法问题:head("mtcars")应传入数据框对象而非字符串;map调用时缺少波浪线和闭合括号,修正后的代码如下:

library(tidyverse)
library(performance)
library(see)
library(patchwork)

data("mtcars")
head(mtcars)

table(mtcars$cyl, useNA = "ifany")

# 修正后的模型拟合代码
foo <- mtcars %>%
  group_by(cyl) %>%
  nest() %>%
  mutate(model = map(data, ~lm(mpg ~ hp + wt, data = .x))) %>%
  ungroup() # 取消分组避免后续操作警告

# 保存模型汇总列表
model_summaries <- map(foo$model, summary)

实现每个模型6个诊断图一行的布局

利用patchwork包可轻松将多个check_model生成的图按指定行/列拼接,具体步骤:

  1. 为每个模型生成诊断图,设置ncol=6让单模型的6个诊断图排成一行,并添加对应cyl的标题
  2. 将三个模型的诊断图拼接成3行布局

完整代码:

# 生成每个模型的诊断图(带标题)
model_plots <- map2(foo$cyl, foo$model, function(cyl_val, mod) {
  plot(check_model(mod), ncol = 6) +
    plot_annotation(title = paste("Cylinder", cyl_val))
})

# 拼接成3行布局
combined_plot <- wrap_plots(model_plots, nrow = 3)

# 查看最终布局
combined_plot

关键说明

  • check_model生成的图依赖see包,必须提前加载
  • plot(check_model(mod), ncol=6)强制单模型的6个诊断图横向排列
  • patchwork的wrap_plots可灵活控制整体布局的行数/列数
  • model_summaries就是你需要存储模型汇总结果的列表对象,可通过model_summaries[[1]]查看第一个模型的汇总

内容的提问来源于stack exchange,提问作者bison2178

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 06:53:31