Как исправить ошибку в gam () в mgcv 'Ошибка в term.formula (формула, данные = данные): неверная формула модели в ExtractVars' - PullRequest
0 голосов
/ 28 октября 2019

Я не могу решить это, на первый взгляд, простое сообщение об ошибке при установке gam () в пакет mgcv. Любая помощь очень ценится.

'Ошибка в term.formula (формула, данные = данные): неверная формула модели в 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)

Данные доступны здесь

1 Ответ

0 голосов
/ 29 октября 2019

Я думаю, у вас есть недоразумение и опечатка. Обратите внимание на 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.

...