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

如何在sjPlot的plot_models函数中重新排序系数标签?

解决sjPlot plot_models的系数排序问题

我明白你想要调整泊松回归模型系数图的显示顺序,让每组主效应和交互项放在一起,提升可读性。你提到的order.terms和auto.label=FALSE没起作用,是因为order.terms默认是按模型内的顺序或显著性排序,而我们需要手动指定精确的系数顺序,这时候应该用terms_order参数。

具体解决步骤:

  1. 先明确你想要保留并排序的系数名称:x1、var1:x1、x2、var1:x2、x3、var1:x3(注意名称要和模型输出的系数名完全一致,包括交互项的冒号格式)
  2. 在plot_models函数中添加terms_order参数,传入这个自定义顺序的向量,强制绘图时按指定顺序展示系数。

修改后的完整绘图代码:

plot_models(
  fit1, fit2, fit3,
  m.labels = c("x1", "x2", "x3"),
  show.values = TRUE,
  digits = 3,
  show.p = FALSE,
  p.shape = TRUE,
  rm.terms = c("var1","var2","var3"),
  vline.color = "grey",
  grid.breaks = c(0.95,0.96,0.97,0.98,0.99,1,1.01,1.02,1.03,1.04,1.05),
  colors = "Dark2",
  terms_order = c("x1", "var1:x1", "x2", "var1:x2", "x3", "var1:x3") # 关键:自定义系数顺序
)

补充说明:

  • 如果不确定系数的准确名称,可以用coef(fit1)、coef(fit2)、coef(fit3)查看每个模型的系数名,确保和terms_order传入的字符串完全匹配(包括大小写、交互项的符号格式)。
  • terms_order参数会完全覆盖默认的排序逻辑,优先按照你指定的顺序绘制系数,完美解决你需要的分组展示需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:35:21