GAM模型错误

GAM model error

我的数据框如下所示:

head(bush_status)
distance  status count
       0 endemic   844
       1 exotic     8
       5 native     3
      10 endemic    5
      15 endemic    4
      20 endemic    3

计数数据是非正态分布的。我正在尝试以两种方式将广义加性模型拟合到我的数据中,这样我就可以使用方差分析来查看 p 值是否支持 m2。

m1 <- gam(count ~ s(distance) + status, data=bush_status, family="nb")
m2 <- gam(count ~ s(distance, by=status) + status, data=bush_status, family="nb")

m1 工作正常,但 m2 发送错误信息:

"Error in smoothCon(split$smooth.spec[[i]], data, knots, absorb.cons, 
scale.penalty = scale.penalty,  : 
  Can't find by variable"

这超出了我的范围,所以如果有人能提供任何建议,我们将不胜感激!

从您的评论中可以清楚地看出,您在平滑器中将 character 变量传递给了 by。您必须在那里传递一个 factor 变量。这对我来说也是一个常见的陷阱,我认为这是一个设计缺陷(因为 base R 回归函数可以很好地处理字符变量)。