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)
confint和confint.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)