Подходит квази-семейство с использованием glmulti?

Я использовал glmulti функция в glmulti пакет для получения наилучшей модели glm для распределенных данных о пуассоновской ошибке. Там нет проблем. После того, как я получил лучшую модель, я использовал критерий хи-квадрат, чтобы получить значения р и статистику теста для каждой из переменных, введенных в модель. Единственная проблема, с которой я сталкиваюсь, заключается в том, что данные чрезмерно рассеяны, и книга Зуура и Кроули предлагают использовать функцию квазисемейства для исправления избыточной дисперсии. Само по себе это не проблема, за исключением того, что функция glmulti не позволяет подгонять квази-функции.

Вопрос, который у меня возникает, заключается в том, является ли получение моей лучшей модели, использующей glmulti с распределением ошибок Пуассона, и затем подгонка вывода наилучшей модели квазифункцией, неправильным способом выполнения каких-либо действий, и если есть какие-либо другие предложения, которые кто-либо может предложить.

Я также запустил glmulti для нормально распределенных данных (указав семейство как гауссовское, а ссылку - как личность), и это сработало, но если я нарушаю какие-либо основные правила, пожалуйста, дайте мне знать.

2 ответа

Проблема с другим предложенным ответом заключается в том, чтоqaic"Кажется, не работает в glmulti, Для меня это сработало, хотя:

library(bbmle)
qaicmod = function (fit) qAIC(fit, dispersion=with(fit,sum((weights * residuals^2)[weights > 0])/df.residual) ) 

glmulti.out <- glmulti(XXX model formula XXX, 
  data = mydata,crit = "qaicmod", 
   confsetsize = 5, fitfunction = "glm", 
   family = poisson)

При этом используется обычный пуассоновский GLM, но вычисляется QAIC на основе оцененного коэффициента дисперсии. В аргументе дисперсии функции qaicmod вы также можете поместить оценочный коэффициент дисперсии полного квазипуассона GLM со всеми включенными переменными (некоторые статистические данные, которые я видел, рекомендуют это), т.е. использовать вместо этого

disp <<- summary(fullmodel)$dispersion
qaicmod = function (fit) qAIC(fit, dispersion=disp) 

glmulti учитывает квазисемейства в распределении ошибок.

В вашем случае вы должны просто вызвать glmulti с дополнительным аргументом family=quasipoisson (он будет передан в функцию подгонки glm).

Обратите внимание, что для этого типа модели вы используете квази-правдоподобия, поэтому AIC или BIC не рекомендуются. Вы должны использовать квазиэквивалент последнего (QAIC или QBIC). Это достигается путем установки аргумента крит на "qaic" (например). Вам нужно будет предоставить оценку для коэффициента сверхдисперсности, как правило, по насыщенной модели (подробнее см. Документацию или обратитесь за помощью к автору пакета).

В противном случае, нет конкретного противопоказания к использованию многомодельного сравнения с моделями этого типа.

Лучший

Другие вопросы по тегам