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 回归函数可以很好地处理字符变量)。
我的数据框如下所示:
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 回归函数可以很好地处理字符变量)。