(MuMIn) Драги, когда взвешенная модель GEE с недостатком ранга - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь сделать прямой выбор модели между маргинальными моделями, соответствующими GEE, используя критерий квази-Акаике (QIC) в качестве критерия выбора. Однако, когда я использую функцию dredge из пакета MuMIn, моя глобальная модель имеет недостаток ранга.

На этот вопрос аналогичная проблема была решена путем "обмана" MuMIn. Это было сделано путем подбора меньшей глобальной модели, которая работала, обновления аргумента формулы этой модели и использования этого. Тем не менее, я не могу заставить это работать при использовании функции wgee () из пакета wgeesel.

Вот воспроизводимый пример из R с использованием продольного набора данных IMPS.

####Example1
data(imps)
library(wgeesel)
imps.complete <- na.omit(imps)
imps.complete$repd<-imps.complete$Drug #repeat a column to make model rank-deficient
fit <- wgee(IMPS79 ~ Drug+Sex+Time+repd, data=imps.complete, 
            id=imps.complete$ID, family="gaussian",
            corstr="exchangeable", scale=NULL)

gee.min <- wgee(IMPS79 ~ Drug+Sex+Time, data=imps.complete, 
                id=imps.complete$ID, family="gaussian",
                corstr="exchangeable", scale=NULL) #this model can be fit
gee.min$model #IMPS79 ~ Drug + Sex + Time
gee.min$model <- IMPS79 ~ Drug + Sex + Time + repd #update model argument

#try the solution from other stackoverflow page. doesn't work
options(na.action=na.fail)
gee.retry <- model.sel(lapply(
  dredge(gee.min,fixed=c("Drug","Sex"),rank="QIC",evaluate=FALSE),
  eval),rank="QIC")  

# note that the call argument cannot be updated
gee.min$call <- wgee(model = IMPS79 ~ Drug + Sex + Time + repd, data = imps.complete, 
                     id = imps.complete$ID, family = "gaussian", corstr = "exchangeable", 
                     scale = NULL)

Я получаю код ошибки «Ошибка в QIC (global.model): матрица модели имеет недостаток ранга;geeglm не может продолжаться ". Я предполагаю, что Dredge пытается оценить QIC по глобальной модели, что он не может сделать

Любая помощь будет принята с благодарностью! Я выполняю аналогичную процедуру для многих разных моделей и хочу, чтобы моя методология была воспроизводимой, поэтому я ищу какой-то автоматический способ сделать выбор модели вперед с помощью QIC.

1 Ответ

0 голосов
/ 29 октября 2019

Мне не удалось решить эту проблему с помощью пакета MuMIn.

Однако я нашел обходной путь с использованием пакета pstools , размещенного на GitHub Питером ДеВиттом. У него есть удобная функция с именем gee_stepper, которая выполняет прямой выбор модели с использованием QIC и выводит результаты по мере необходимости. Я смог использовать его для своих целей после небольшого изменения функции:

(1) изменение используемого QIC на фактический QIC, вычисленный из пакета MuMIn;gee_stepper, по-видимому, использует значение квази-правдоподобия из пакета MESS

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

...