r - GAM 模型错误

标签 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"

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

最佳答案

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

关于r - GAM 模型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45832928/

相关文章:

r - 使用 R 在现有 tcltk 窗口中显示进度条

r - 如何在环境中使用名称?

r - R中混淆矩阵的平均值

R 概率回归边际效应

r - 为什么使用 glmnet 模型时 R 中的 `predict` 返回高维预测?

julia - Julia 中的二项式 GLM - 如何指定命中和未命中

r - mgcv:如何使用 Tweedie 响应模型进行逐步回归?

html - 使用 HTML 的 R Shiny 输出的属性

r - mgcv bam() 错误 : cannot allocate vector of size 99. 6 Gb

r - mgcv:如何指定平滑和因子之间的交互?