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

如何用ggplot2绘制brms模型的默认条件效应图?

用ggplot2绘制brms模型的条件效应图

要实现用ggplot2自定义绘制brms模型的条件效应图,只需两步:提取效应数据、用ggplot2重构图形,具体操作如下:

1. 提取条件效应的原始数据

首先用conditional_effects()函数生成目标变量(这里是dist)的效应数据,再将其转换为ggplot2可直接使用的数据框格式:

# 生成dist的条件效应数据,指定effects参数明确目标变量
ce_dist <- brms::conditional_effects(height_nb, effects = "dist")

# 转换为数据框
ce_dist_df <- as.data.frame(ce_dist$dist)

数据框里包含核心列:dist(自变量取值)、estimate__(拟合值)、lower__(置信区间下限)、upper__(置信区间上限)。

2. 用ggplot2绘制并自定义图形

基于提取的数据框,你可以完全按照ggplot2的语法调整所有元素,比如背景、坐标轴文本、颜色等:

library(ggplot2)

ggplot(ce_dist_df, aes(x = dist, y = estimate__)) +
  # 绘制置信区间带
  geom_ribbon(aes(ymin = lower__, ymax = upper__), fill = "#69b3a2", alpha = 0.2) +
  # 绘制拟合线
  geom_line(color = "#69b3a2", linewidth = 1) +
  # 自定义坐标轴标签
  labs(
    x = "距离(自定义单位)",
    y = "高度(mm)",
    title = "dist对height_mm的条件效应"
  ) +
  # 更换主题(比如简洁的黑白主题)
  theme_bw() +
  # 进一步调整主题元素,比如坐标轴文本大小
  theme(
    axis.title.x = element_text(size = 12, face = "bold"),
    axis.title.y = element_text(size = 12, face = "bold"),
    plot.title = element_text(hjust = 0.5, size = 14)
  )

额外说明

  • 如果需要控制altitude在特定值(而非默认均值)计算效应,可以在conditional_effects()里加conditions参数,比如conditions = data.frame(altitude = 1000)
  • 若要同时绘制分组(比如trans.pair)的效应,只需在effects里指定"dist:trans.pair",然后在ggplot的aes里加上color = trans.pair即可分线展示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 13:32:45