(MuMIn)加权GEE模型等级不足时的挖泥机

时间:2019-10-28 03:24:54

标签: r mumin

我正在尝试使用准赤道准则(QIC)作为选择标准,在符合GEE的边际模型之间进行正向模型选择。但是,当我使用MuMIn包中的dredge函数时,我的全局模型是秩不足的。

this question上,通过“诱骗” MuMIn解决了类似的问题。这是通过安装一个较小的全局模型来完成的,并更新该模型的公式参数并加以使用。但是,在使用wgeesel软件包中的wgee()函数时,我无法执行此操作。

这是使用IMPS纵向数据集从R复制的示例。

####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 :(得分:0)

我无法使用MuMIn软件包解决此问题。

但是,我发现了使用Peter DeWitt在GitHub上发布的pstools包的解决方法。他具有一个方便的功能,称为gee_stepper,该功能使用QIC执行正向模型选择并输出结果。对函数进行一些小的编辑后,我便可以将其用于我的目的:

(1)将使用MuCIn软件包计算出的QIC更改为实际的QIC; gee_stepper似乎正在使用MESS软件包中的准似然值

(2)具有该功能的用户指定了最小模型,例如总是包含某些协变量,而不是使用仅拦截模型作为最小模型。