Изменение прогнозируемых значений в масштаб ответа после функции предиката (), а не через type = "response" - PullRequest
2 голосов
/ 22 января 2020

Работая в R. У меня проблемы с вычислением моих предсказанных значений по шкале ответов, когда я должен исключить случайный эффект из прогноза. Исключая случайный эффект из прогноза, мне нужно указать type = "terms", тем самым делая невозможным включение аргумента type = "response". Есть ли способ пересчета прогнозируемых значений в шкалу ответов (бета-регрессия)? Или можно одновременно указать исключение Area и type = "response" в функции predict? Пожалуйста, смотрите мой код ниже.

1 Ответ

1 голос
/ 23 января 2020

Вы неправильно читаете документацию по аргументу exclude:

исключить: если type=="terms" или type="iterms", то термины (сглаживание или параметры c), названные в этом массиве, будут не подлежит возврату. В противном случае любые гладкие термины, названные в этом массиве, будут установлены в ноль. Если NULL, то никакие условия не исключаются. Обратите внимание, что это термин имен, как он появляется в сводке модели, см. Пример. Вы можете избежать предоставления ковариат для исключенных терминов, установив newdata.guaranteed=TRUE, что позволит избежать всех проверок на newdata.

(выделено мной).

Вы можете использовать type = "response", exclude = "s(Area)") и случайный эффект следует игнорировать. Вы должны передать newdata некоторые значения для Area, иначе это не сработает; просто установите для столбца Area в newdata все первые уровни Area.

Если вы очень осторожны , вы также можете избежать передачи переменной ranef. Если вы уверены, что то, что вы передаете newdata, является правильно заданным набором переменных для модели, то вы можете опустить Area и передать newdata.guaranteed = TRUE в predict(), чтобы predict() не смог проверить, что у вас есть правильно передал все переменные, необходимые для модели.

См. пример в ?mgcv::random.effects для обоих типов поведения.

...