GAM模型错误

时间:2017-08-23 07:11:09

标签: r glm gam mgcv

我的数据框架如下:

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

计数数据是非正态分布的。我试图通过两种方式将广义加法模型拟合到我的数据中,因此我可以使用anova来查看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"

这超出了我的范围,所以如果有人能提供任何值得赞赏的建议,那么这就是我的意思。

1 个答案:

答案 0 :(得分:5)

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