如何在sjPlot的plot_models函数中重新排序系数标签?
解决sjPlot plot_models的系数排序问题
我明白你想要调整泊松回归模型系数图的显示顺序,让每组主效应和交互项放在一起,提升可读性。你提到的order.terms和auto.label=FALSE没起作用,是因为order.terms默认是按模型内的顺序或显著性排序,而我们需要手动指定精确的系数顺序,这时候应该用terms_order参数。
具体解决步骤:
- 先明确你想要保留并排序的系数名称:
x1、var1:x1、x2、var1:x2、x3、var1:x3(注意名称要和模型输出的系数名完全一致,包括交互项的冒号格式) - 在
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
相关产品推荐
相关产品推荐

