Доверительный интервал для модели GAM


14

Чтение mgcv::gamсправочной страницы:

доверительные / достоверные интервалы легко доступны для любого количества, предсказанного с использованием подобранной модели

Однако я не могу придумать, как его получить. Я думал, predict.gamчто есть type=confidenceи levelпараметр, но это не так. Можете ли вы помочь мне, как его создать?

Ответы:


33

Обычным способом:

p <- predict(mod, newdata, type = "link", se.fit = TRUE)

Затем обратите внимание, что pсодержит компонент $se.fitсо стандартными ошибками прогнозов для наблюдений в newdata. Затем вы можете сформировать CI, умножив SE на значение, соответствующее вашему желаемому уровню. Например, приблизительный 95% доверительный интервал формируется как:

upr <- p$fit + (2 * p$se.fit)
lwr <- p$fit - (2 * p$se.fit)

T

Обратите внимание, что я использую, type = "link"как вы не говорите, если у вас есть GAM или просто AM. В GAM вам необходимо сформировать доверительный интервал на шкале линейного предиктора, а затем преобразовать его в шкалу ответа, применив обратную функцию связи:

upr <- mod$family$linkinv(upr)
lwr <- mod$family$linkinv(lwr)

Теперь обратите внимание, что это очень приблизительные интервалы. Кроме того, эти интервалы точечно соответствуют прогнозируемым значениям и не учитывают тот факт, что выбор плавности был выполнен.

Одновременный доверительный интервал может быть вычислен путем моделирования из апостериорного распределения параметров. У меня есть пример этого в моем блоге .

Если вам нужен доверительный интервал, который не зависит от параметров сглаживания (т. Е. Тот, который учитывает то, что мы не знаем, а вместо этого оцениваем значения параметров сглаживания), то добавьте unconditional = TRUEк predict()вызову.

Также, если вы не хотите делать это самостоятельно, обратите внимание, что в более новых версиях mgcv есть plot.gam()функция, которая возвращает объект со всеми данными, используемыми для создания графиков сглаживания и их доверительных интервалов. Вы можете просто сохранить вывод из plot.gam()объекта

obj <- plot(model, ....)

и затем проверьте obj, который является списком с одним компонентом на сглаживание. Добавьте seWithMean = TRUEк plot()вызову, чтобы получить доверительные интервалы, которые не зависят от параметра гладкости.


Выполнение одновременной CI и параметрической начальной загрузки немного больше влияет на код, так что если вы можете справиться с точечными интервалами. Если нет, я могу предоставить дополнительные примеры для каждого из них.
Восстановить Монику - Г. Симпсон

+1 за ответ. Действительно впечатляющее сообщение в блоге, я собираюсь изучить его некоторое время, чтобы улучшить свои графические навыки.
jbowman

Можно ли получить доступ к этому впечатляющему сообщению в блоге ( ucfagls.wordpress.com/2011/06/12/… )? В настоящее время блог требует входа в систему.
Geneorama

@geneorama Я переместил свой блог из Wordpress и в течение года заплатил за переадресацию на новый для всех URL-адресов, но недавно я это допустил. Прости за это. Я редактировал в новой ссылке, и это не требует входа в систему. (Логин состоит в том, чтобы избежать двух копий одного и того же поста, и мне пока лень удалять страницы с сайта Wordpress.)
Восстановить Монику - Дж. Симпсон

Оригинальное сообщение в блоге (см. Историю редактирования этого вопроса и ответов) имело фундаментальный недостаток в способе создания одновременного интервала. Ссылка в текущей (по состоянию на декабрь 2016 г.) версии Ответа правильно рассчитывает интервал одновременности.
Восстановить Монику - Г. Симпсон

5

Если вы просто хотите построить их, у plot.gamфункции есть затенение, которое по умолчанию использует доверительные интервалы с использованием аргумента затенения. Также смотрите gam.vcompдля получения интервалов.


5

Пакет mgcv(новее, чем gam) легко готовит достоверные интервалы. Этот байесовский подход отличается от доверительных интервалов, но результаты почти такие же, как показали численные расчеты (см. Статью Марры и Вуда, связанную в mgcv).


2
+1 Ключевым результатом работы Marra & Wood является то, что они развивают понимание / объяснение Nychka того, почему эмпирические байесовские достоверные интервалы также имеют довольно необычайную частоту интерпретации / поведения, когда их рассматривают как доверительные интервалы между функциями. Вы можете обрабатывать интервалы байесовским или частым образом, а свойство покрытия подразумевается1-αинтервал держится, примерно.
Восстановить Монику - Г. Симпсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.