You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MuMIn包dredge处理GAM模型时遇na.omit报错求助

问题描述

使用MuMIn包的dredge函数筛选全局GAM模型时,持续触发如下报错:

Error in dredge(myglobalmod, evaluate = TRUE, trace = 2) :
'global.model' uses 'na.action' = "na.omit"

已尝试的操作包括:在gam()调用中显式设置na.action="na.omit"(或使用默认设置)、提前移除数据集中所有含NA的行,但均未解决问题。此前相同代码可正常运行,当前原因不明。

代码示例:

myglobalmod <- gam(response~ s(x1) + s(x2) + s(x3) + offset(x4), data=mydata, family="tw", na.action="na.omit")

options(na.action=na.omit)
mydredge <- dredge(myglobalmod, evaluate=TRUE, trace=2)
解决方法

MuMIn的dredge函数要求全局模型的na.action必须为na.fail,因为它需要确保所有候选模型使用完全一致的数据集,避免因不同模型自动过滤NA导致的样本量不一致问题。具体操作步骤如下:

  • 手动清理数据集,彻底移除所有含缺失值的行:
mydata_clean <- na.omit(mydata)
  • 使用清理后的数据集拟合全局GAM模型,强制设置na.action = na.fail:
myglobalmod <- gam(response~ s(x1) + s(x2) + s(x3) + offset(x4), 
                   data=mydata_clean, family="tw", na.action=na.fail)
  • 直接调用dredge函数,无需额外设置全局na.action:
mydredge <- dredge(myglobalmod, evaluate=TRUE, trace=2)

补充说明:此前代码正常运行可能是因为当时数据集无缺失值,或MuMIn旧版本对na.action的检查规则更宽松,新版本强化了该校验逻辑。

内容的提问来源于stack exchange,提问作者leslie roberson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 21:54:36