【问题标题】:How to create interplot of negative binomial regression model with interaction effects?如何创建具有交互作用的负二项式回归模型的插值图?
【发布时间】:2021-09-20 12:23:50
【问题描述】:

我正在尝试在 R 中为负二项式回归模型 (glm.nb) 绘制交互效应。因变量会议是数字。变量 EU 是二分法,变量“类型”是分类 1/2/3。

glmnbmodel <- glm.nb(meetings ~ EU + type + EU*type, data = data)

我尝试使用以下命令进行绘图:interplot(m = glm.nb, var1 = "meetings", var2 = "type")

这给出了这个错误:

> interplot(m = glmnbmodel, var1 = "EU", var2 = "type")
Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘sim’ for signature ‘"negbin"’

我用 glm 模型尝试了同样的方法,其中 R 无法识别模型中的交互:

> glmmodel <- glm(meetings ~ EU + type + EU*type, data = data)
> interplot(m = glmmodel, var1 = "EU", var2 = "type")
Error in interplot.default(m = glmmodel, var1 = "EU", var2 = "type") : 
  Model does not include the interaction of EU and type .

我做错了什么?

  1. 否则,如何在负二项式回归模型中绘制交互效应?
  2. 为什么 R 在模型中找不到交互?

我已经坚持了很长一段时间,所以非常感谢任何帮助!

【问题讨论】:

    标签: r plot regression glm interaction


    【解决方案1】:

    您没有正确指定公式。 ~EU*type 意味着 ~ EU + type + EU:type 并且 R 会纠正这个问题,但是对于包 interplot 很可能它正在寻找交互项,所以你可以这样做:

    set.seed(111)
    data = data.frame(meetings = rnbinom(100,mu=10,size=1),
    EU=rbinom(100,1,0.5),
    type = factor(sample(1:3,100,replace=TRUE)))
    
    glmmodel <- glm(meetings ~ EU + type + EU:type, data = data,family="poisson")
    interplot(m = glmmodel, var1 = "EU", var2 = "type")
    

    对于负二项式,您可以先拟合模型以获得 theta 估计值,然后在 glm 内调用它,如下所示:

    fit <- glm.nb(meetings ~ EU + type + EU:type, data = data)
    glmnbmodel <- glm(meetings ~ EU + type + EU:type, data = data,
    family = negative.binomial(fit$theta))
    
    interplot(m = glmnbmodel, var1 = "EU", var2 = "type")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-27
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 1970-01-01
      • 1970-01-01
      • 2020-12-10
      • 2014-04-08
      相关资源
      最近更新 更多