如何修改brms R中条件效应交互图的选定取值
自定义brms交互效应图的分组取值
要替换disp的默认取值并控制数量,核心是在conditional_effects()函数中使用conditions参数手动指定目标值,具体实现如下:
核心修改逻辑
通过conditions参数定义disp的自定义取值集合,替代默认的分位数(106.78、230.72、354.66),取值数量可自由设置(2个、3个、4个均可)。
修改后的完整代码
data(mtcars) # 拟合交互模型 interactionmodel <- brm(vs ~ 1 + mpg + disp + mpg:disp, data = mtcars, family = bernoulli()) # 自定义disp的取值:示例为最小值、中间值、最大值 custom_disp_values <- c(71.1, 258.0, 472.0) # 若需2个值(比如仅最小/最大值):custom_disp_values <- c(71.1, 472.0) # 若需4个值(比如新增中间刻度):custom_disp_values <- c(71.1, 150, 350, 472.0) # 生成带自定义条件的交互效应结果 custom_effects <- conditional_effects( interactionmodel, conditions = list(disp = custom_disp_values) ) # 绘制并调整图形样式 the_plotstest <- plot(custom_effects, ask = FALSE) the_plotstest[['mpg:disp']] + theme_bw(base_size = 14) + ylim(0, 1) + labs(x = 'MPG', y = 'VS') + scale_color_discrete(name = "Disp") + scale_fill_discrete(name = "Disp")
关键说明
conditions参数接受列表格式输入,列表元素对应要自定义取值的变量,直接给disp赋值目标数值向量即可。- 取值数量由你定义的向量长度决定,任意数量的取值都能生效。
- 生成的效应图会自动使用指定的
disp值绘制分组曲线,图例也会同步更新为自定义数值。
内容的提问来源于stack exchange,提问作者blake.struthers
相关产品推荐
相关产品推荐

