Разработка сценария с использованием моделей GAM - PullRequest
0 голосов
/ 02 апреля 2019

Я работаю с моделью mgcv::gam в R для создания прогнозов, в которых соотношение между временем (year) и переменной результата (out) варьируется.Например, в одном сценарии я бы хотел, чтобы время влияло на конечную переменную линейным образом, в другом - на незначительное уменьшение, а в другом - на конкретные наклоны взаимодействия время-результат.Я не уверен, как заставить прогноз прогнозировать взаимодействие между временем и конечной переменной определенным образом:

res <- gam(out ~ s(time) + s(GEOID, bs='re'), data = df, method = "REML")
pred <- predict(gam, newdata = ndf, type="response", se=T)

1 Ответ

1 голос
/ 03 апреля 2019

Нет взаимодействия между time и out;здесь time имеет потенциально нелинейный эффект на out.

Мы говорим о попытке навязать определенные формы для функции time?Если это так, вам нужно будет оценить различные модели;используйте time, если вам нужен линейный эффект:

res_lin <- gam(out ~ time + s(GEOID, bs='re'), data = df, method = "REML")

и посмотрите на p-сплайны с ограничением по форме, чтобы обеспечить монотонность или вогнутые / выпуклые отношения.

scam Пакет имеет такие виды ограничений и использует mgcv с выбором плавности GCV для соответствия моделям с ограниченными формами.

Что касается указания конкретного наклона для линейного влияния времени, я думаю, вынеобходимо включить time в качестве смещения в модели.Скажем, уклон, который вы хотите, равен 0,5. Я думаю, вам нужно сделать + offset(I(0.5*time)), потому что смещение по определению имеет коэффициент 1. Я бы дважды проверил это, хотя, возможно, я испортил свое мышление здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...