我的数据框架看起来是:
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"这是相当超出我的能力,所以如果有人可以提供任何建议,将是非常感谢!
发布于 2017-08-23 07:52:48
从您的评论中可以清楚地看到,您将一个character变量传递给了平滑的by。您必须在那里传递一个factor变量。这对我来说也是一个常见的问题,我认为这是一个设计缺陷(因为基R回归函数处理字符变量很好)。
https://stackoverflow.com/questions/45832928
复制相似问题