我正在尝试在符合 GEE 的边缘模型之间进行正向模型选择,使用准 Akaike 标准 (QIC) 作为选择标准。但是,当我使用 MuMIn 包中的疏浚函数时,我的全局模型是秩不足的。
在这个问题上,通过“欺骗”MuMIn 解决了类似的问题。这是通过拟合一个较小的有效全局模型、更新该模型的公式参数并使用它来完成的。但是,在使用 wgeesel 包中的 wgee() 函数时,我无法让它工作。
这是 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 无法继续”。我猜疏浚正试图在全球模型上评估 QIC,这是它无法做到的
任何帮助,将不胜感激!我正在对许多不同的模型执行类似的程序,并且希望我的方法具有可重复性,因此我正在寻找某种自动化方法来使用 QIC 进行正向模型选择。