首页 > 解决方案 > GAM 模型错误 - 需要 TRUE/FALSE 的缺失值

问题描述

我正在尝试使用环境变量和平均丰度数据创建 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 很陌生,发现很难理解。解决这个问题的任何帮助都会很棒

标签: rmodelgam

解决方案


您要求gam()拟合一个假设整数响应的模型并将其传递给实值(十进制)变量。

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

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


推荐阅读