R 中带扫帚的 glm 的快速 Wald 置信区间

beb*_*bru 5 r confidence-interval glm broom

我想在一个有点大的数据集上计算 glm 系数的 Wald 置信区间,并broom用于整洁的输出。

mydata <- data.frame(y = rbinom(1e5,1,0.8), 
                 x1 = rnorm(1e5), 
                 x2 = rnorm(1e5))
glm.1 <- glm(y ~ x1 + x2, data = mydata, family = "binomial")
Run Code Online (Sandbox Code Playgroud)

Usingbroom::tidy在大数据上花费大量时间,因为它使用confint.glm,它根据分析的对数似然函数计算置信区间。

tidy(glm.1, conf.int = TRUE) # can take literally hours
Run Code Online (Sandbox Code Playgroud)

beb*_*bru 6

confintconfint.glm分别不为用于计算置信区间的方法提供参数。如果您想使用另一种方法,则需要使用不同的函数,例如confint.defaultWald。

broom::tidy反过来,使用的函数没有参数(或者我错过了什么?),它总是调用confint.glmglm。

要使用不同的函数计算置信区间,broomhas confint_tidy,您可以在其中指定要使用的函数:

confint_tidy(glm.1, func = stats::confint.default)
Run Code Online (Sandbox Code Playgroud)

将其与估计值放在一起:

cbind(tidy(glm.1), confint_tidy(glm.1, func = stats::confint.default))
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,这个功能现在已被弃用,并将从扫帚中删除。有一些关于在置信区间方法的整洁函数中包含参数的讨论,但到目前为止我还没有看到任何内容。 (3认同)