如何修复mgcv中gam()中的错误'terms.formula(formula,data = data)中的错误:ExtractVars中的模型公式无效'

问题描述 投票:0回答:1

在mgcv软件包中安装gam()时,我无法解决此看似简单的错误消息。任何帮助,不胜感激。

'terms.formula(formula,data = data)中的错误:ExtractVars中的模型公式无效'

我已经阅读了所有可以在stackoverflow上找到的类似文章,但仍然无法解决此问题。其他一些帖子似乎建议,如果变量名称包含空格,则可能会发生这种情况,但我的错误不是这种情况。

装入包裹

library(mgcv)

读入数据

join <- read.csv("join.csv", header = TRUE)

定义因素

join$site <- factor(join$site)
join$season <- factor(join$season)
join$RHDV_transmis_cat <- factor(join$RHDV_transmis_cat)
join$RHDV2_arrive_cat <- factor(join$RHDV2_arrive_cat)

运行模型

gam_1 <- gam(RHDV_transmis_cat ~  s(age) + s(weight) + s(site) + s(RCV) + s(season, bs = "cc") + s(preceeding_mth_temp) + s(preceeding_mth_rain) + s(RHDV2_arrive_cat) + s(abun_adjust_dist) + te(abun_adjust_dist, RHDV2_arrive_cat, by ="fs") + s(RHDV2_arrive_cat, season, bs = "re"), data = join, family = binomial, method = "REML", select = TRUE)

Data available at here

r gam mgcv
1个回答
0
投票

我认为您有误会和错别字。请注意,在te()平滑中,您有by = "fs",我认为您打算使用bs = "fs"

[其次,如果想要”fs”平滑,则不使用te(),而使用s()进行设置。您在哪里

te(abun_adjust_dist, RHDV2_arrive_cat, by = "fs")

您想要

s(abun_adjust_dist, RHDV2_arrive_cat, bs = "fs")

假设您想要abun_adjust_dist级别的随机平滑RHDV2_arrive_cat

© www.soinside.com 2019 - 2024. All rights reserved.