我对使用R感到很陌生,希望获得以下问题的帮助。我已经估算了从逻辑GLMM得出的ED50估计值的CI和SD。为此,我执行了以下操作:
指定了GLMM:
gmod9 = glmer(
BetterNot ~ relPHQADS * baseline_cat + (1 | ID),
family = binomial,
data = Panda.Clean,
control = glmerControl(optimizer = "bobyqa", optCtrl = list(maxfun = 2e5))
)
修正系数:
fc <- fixef(gmod9)
在分类变量(baseline_cat)的每个级别上估算ED50:
mild <- -(fc[1]) / fc[2]
mod <- -(fc[1] + fc[3]) / (fc[2] + fc[5])
sev <- -(fc[1] + fc[4]) / (fc[2] + fc[6])
使用自举来确定每个ED50估计值的SD和CI(如下面的baseline_cat的轻度水平所示):
nboot <- 1000
booted50 <- numeric(nboot)
for(i in 1:nboot){
y <- unlist(simulate(gmod9))
bmod <- refit(gmod9, y)
fc <- fixef(bmod)
booted50[i] <- -(fc[1])/fc[2]
}
sd.mild <- sd(booted50)
ci.mild <- quantile(booted50, c(0.025, 0.975))
我想使用Logistic GLM对不同的数据集执行相同的操作。
GLM为:
gmod9 <- glm(BetterNot ~ absPHQADS + baseline_cat, family = binomial, data = Cobalt.Clean)
cc <- coef(gmod9)
ED50估算值计算如下:
mild <- -(cc[1]) / cc[2]
mod <- -(cc[1] + cc[3]) / cc[2]
sev <- -(cc[1] + cc[4]) / cc[2]
但是,当我尝试运行与上述相同的引导程序时,会出现以下错误消息:
Error in UseMethod("refit") :
no applicable method for 'refit' applied to an object of class "c('glm', 'lm')"
我将如何修改引导程序以获得glm模型的95%CI和SD?