Код взаимодействия R GAM внезапно перестал работать

#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. И да, «Местоположение» — это имя столбца данных в наборе данных (фрейме данных).