#r #interaction #gam
Вопрос:
Это действительно странно, и я не могу найти решение. Примерно несколько месяцев назад я запускал подобный код взаимодействия с GAM. Я установил пакеты mgcv и gamair для GAM. Он просто работал нормально, без ошибок.
Model1 <- gam(response ~ Location s(predictor1) s(predctor2, by = Location, m=1) s(predictor3), data=Data, method = "REML", bs='cr', family=Gamma(link=identity))
Затем, внезапно, тот же код перестал работать. Я провел несколько тестов и обнаружил, что by=
проблема заключалась в термине. Вывод возвращает это сообщение об ошибке:
'Error in smoothCon(split$smooth.spec[[i]], data, knots, absorb.cons, scale.penalty = scale.penalty, : Can't find by variable".
Если я удалю by=
его , код будет работать нормально. Даже с одним предиктором, если я добавлю by=
, модель не работает.
Я сделал обновление RStudio, обновления пакетов, проверку на вирусы и все остальное. Я понятия не имею, почему один и тот же код с одними и теми же данными внезапно перестал работать. Есть какие-нибудь советы? Спасибо.
Комментарии:
1. Вполне может иметь значение, из какого пакета взята ваша функция
gam()
, есть один вmgcv
пакете и другой в пакетеgam
.gam::s()
у него нет аргумента под названием «by», ноmgcv::s()
он может.2. Я предполагаю
Location
, что это вData
кадре данных?3. Извините, я использую mgcv и gamair. Только что я запустил пример кода с помощью by= в руководстве mgcv. Но и это не сработало ..
4. И да, «Местоположение» — это имя столбца данных в наборе данных (фрейме данных).