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

glm.nb拟合负二项回归用interplot绘交互图报错如何解决

问题核心解答
  • interplot包默认不原生支持MASS::glm.nb()拟合返回的negbin类模型对象,你看到的报错是因为包依赖的参数模拟泛型函数sim()没有适配negbin类,找不到对应的执行方法。
  • 负二项回归的交互效应图可以通过以下几种方案实现:
方案1:使用marginaleffects包绘制(推荐,适配性最好)

marginaleffects包是当前对各类回归模型适配范围最广的边际效应/交互效应绘图工具,无需修改模型属性,直接支持negbin类对象。

# 首次使用先安装
install.packages("marginaleffects")
library(marginaleffects)

# 1. 绘制预测值类交互图:展示两个交互变量不同取值组合下的因变量预测值
# aid1和aid的交互
plot_predictions(model, condition = list("aid1", "aid"))
# Adjusted.aid1和Adjusted.aid2的交互
plot_predictions(model, condition = list("Adjusted.aid1", "Adjusted.aid2"))

# 2. 如果需要绘制边际效应类交互图:展示一个变量的边际效应随另一个调节变量的变化趋势
# 例:aid的边际效应随aid1的变化
plot_slopes(model, variables = "aid", condition = "aid1")
方案2:临时修改模型类适配interplot

如果需要沿用interplot的绘图风格,可以临时修改模型的类属性,让interplot可以调用适配glm类的sim方法完成计算。

注意:修改类属性前建议备份原模型对象,避免后续其他分析调用模型时出现异常。

# 备份原模型
model_backup <- model
# 临时修改模型类为glm/lm,适配interplot的方法调用
class(model) <- c("glm", "lm")

# 运行原interplot代码即可出图
interplot(m = model, var1 = "aid1", var2 = "aid")
interplot(m = model, var1 = "Adjusted.aid1", var2 = "Adjusted.aid2")

# 用完后恢复原模型类
model <- model_backup
方案3:使用effects包绘制交互效应

effects包同样原生支持negbin类模型,可以直接输出交互项的效应图:

# 首次使用先安装
install.packages("effects")
library(effects)

# 生成指定交互项的效应对象并绘图
plot(effect("aid1*aid", model))
plot(effect("Adjusted.aid1*Adjusted.aid2", model))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 01:12:28