GAM 模型错误 - 需要 TRUE/FALSE 的地方缺少值

GAM model error - missing value where TRUE/FALSE needed

我正在尝试使用环境变量和平均丰度数据创建 GAM 模型。

我使用的数据是:

我用来创建模型的代码是这样的:

imod2 <- gam(mean ~  s(BO_chlomean, bs="cr"), data = envgroup2, family = poisson, method="REML", na.action = na.fail, select=T)

(理想情况下,我想添加其他 2 个变量,但一次添加一件事。)

但是当我 运行 我得到代码时:

Error in if (abs(old.score - score) > score.scale * conv.tol) { : 
  missing value where TRUE/FALSE needed

我还收到 50 条或更多警告,包括:

1: In dpois(y, y, log = TRUE) : non-integer x = 0.200000

我是 R 的新手,很难理解。解决这个问题的任何帮助都会很棒

您要求 gam() 假设一个 整数 响应并传递一个 real-valued(十进制)变量来拟合模型。

如果您有重复计数并对它们进行平均以获得 mean 变量,则不要进行平均。包括所有数据行并使用随机效应项按主题处理聚类。

如果您通过努力变量缩放得到 mean,您应该使用原始 count/integer 值拟合模型并将 offset(log(effort_var)) 添加到 effort_var 的公式中是您将原始响应除以得到 mean.

的变量