通过逻辑回归估计ED50的95%CI

时间:2019-02-24 14:56:25

标签: r regression glm

我对使用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?

0 个答案:

没有答案