Как вы выполняете проверку качества ссылок для обобщенной линейной модели в R?

Я работаю над подгонкой обобщенной линейной модели в R (используя glm ()) для некоторых данных, которые имеют два предиктора в полном факториале. Я уверен, что гамма-семейство является правильным распределением ошибок для использования, но не уверен, какую функцию связи использовать, поэтому я хотел бы протестировать все возможные функции связи друг с другом. Конечно, я могу сделать это вручную, создав отдельную модель для каждой функции связи, а затем сравнив отклонения, но я полагаю, что есть функция R, которая сделает это и скомпилирует результаты. Я искал в CRAN, SO, Cross-validated и в Интернете - ближайшая функция, которую я нашел, была clm2, но я не думаю, что мне нужна кумулятивная модель ссылок - на основе моего понимания того, что такое clm.

Моя текущая модель выглядит так:

CO2_med_glm_alf_gamma <- glm(flux_median_mod_CO2~PercentH2OGrav+
                           I(PercentH2OGrav^2)+Min_Dist+
                           I(Min_Dist^2)+PercentH2OGrav*Min_Dist, 
                  data = NC_alf_DF,
                  family=Gamma(link="inverse"))

Как мне закодировать эту модель в функцию R, которая будет выполнять такой тест на «добротность связи»?

(Что касается статистической достоверности такого теста, это обсуждение, а также обсуждение с пост-документом по статистике заставили меня поверить в то, что это допустимо для сравнения AIC или отклонений между обобщенными линейными моделями, которые идентичны, за исключением наличия различных функций связи)


person DirtStats    schedule 20.04.2015    source источник
comment
На самом деле нецелесообразно сравнивать отклонение между невложенными моделями. Я думаю, что ваша проблема носит статистический характер и относится к перекрестной проверке. Если вы точно знаете, что такое правильный способ сравнения моделей, но не знаете, как это сделать в R, тогда это скорее вопрос о переполнении стека. Если это просто вопрос программирования, добавьте воспроизводимый пример с образцом входных данных и желаемым выходом.   -  person MrFlick    schedule 21.04.2015
comment
Сначала я не был уверен, было ли сравнение (две идентичные модели с идентичными данными, меняется только функция ссылки) статистически достоверным, но это обсуждение поддерживает идею о том, что это действительно так.   -  person DirtStats    schedule 21.04.2015
comment
Я отредактировал вопрос, чтобы попытаться исключить возможность того, чтобы мой вопрос был не по теме, я надеюсь, что мои правки помогли. Я считаю этот вопрос похожим на этот широко обсуждаемый «рекомендательный» вопрос который, как мне кажется, отредактировали, а затем решили сделать дубликатом. В своих правках я попытался прояснить, что это, в конечном счете, вопрос кодирования, в котором могут быть полезны дополнительные сведения о доступных функциях.   -  person DirtStats    schedule 22.04.2015
comment
Если правки неадекватны, чтобы привести его в соответствие, я буду рад продолжить редактирование.   -  person DirtStats    schedule 22.04.2015
comment
Я думаю, все, что вам нужно, это воспроизводимый пример, на котором возможно решения можно проверить. В идеале с желаемой отдачей. Это еще более явно делает его проблемой программирования. Как отмечает Бен, более четкое представление о том, какие ссылки вы хотите попробовать (все возможные просто не определены, поскольку у вас может быть бесконечно много), также может помочь.   -  person MrFlick    schedule 22.04.2015


Ответы (2)


Это не «все возможные ссылки», это проверка на соответствие указанному классу ссылок, но Pregibon проводит проверку качества ссылки, которая реализована в пакет LDdiag. Его нет в CRAN, но вы можете установить его из архивов с помощью

devtools::install_version("LDdiag","0.1")

Приведенный пример (не такой уж захватывающий):

quine$Days <- ifelse(quine$Days==0, 1, quine$Days)
ex <- glm(Days ~ ., family = Gamma(link="log"), data = quine)
pregibon(ex)

Семейство функций ссылок pregibon реализовано в пакете glmx . Как указал Ахим Зелейс в комментариях, пакет предоставляет различные функции параметрической связи и поддерживает общую оценку и вывод на основе таких параметрических связей (или, в более общем смысле, параметрических семейств). Чтобы увидеть рабочий пример, как это можно использовать для различных оценок качества ссылок, см. example("WECO", package = "glmx"). Это повторяет анализ из двух статей Кенкера и Юна (см. Ниже).

Этот пример тоже может оказаться полезным.

person Ben Bolker    schedule 21.04.2015
comment
Чтобы добавить дополнительную информацию к комментарию Бена о glmx. Пакет предоставляет различные функции параметрической связи и поддерживает общую оценку и вывод на основе таких параметрических связей (или, в более общем смысле, параметрических семейств). Чтобы увидеть рабочий пример, как это можно использовать для различных оценок качества ссылки, см. example("WECO", package = "glmx"). Это повторяет анализ двух статей Роджера Кенкера (и соавтора) в R News и Journal of Econometrics соответственно. - person Achim Zeileis; 21.04.2015
comment
Спасибо вам обоим за эти предложения и ресурсы. Я проверю glmx и примеры. - person DirtStats; 22.04.2015

Я узнал, что функция земснаряда (пакет MuMIn) можно использовать для выполнения тестов качества ссылки на glms, lms и т. д. В более общем плане это функция выбора модели, но допускающая значительную настройку. В этом случае вы можете использовать параметр варьирование, чтобы сравнить модели, подходящие для различных функций связи. Подробнее см. Пример работы Beetle. .

person DirtStats    schedule 26.09.2015