R 中带有扫帚的 glm 的 Fast Wald 置信区间
Fast Wald confidence intervals for a glm with broom in R
我想计算一个较大数据集上 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")
使用 broom::tidy
处理大数据会花费大量时间,因为它使用 confint.glm
,它根据描述的对数似然函数计算置信区间。
tidy(glm.1, conf.int = TRUE) # can take literally hours
confint
和 confint.glm
分别不对用于计算置信区间的方法进行论证。如果你想使用另一种方法,你需要使用不同的功能,例如confint.default
沃尔德。
broom::tidy
反过来没有所用函数的参数(或者我错过了什么?),它总是为 glm 调用 confint.glm
。
要使用不同的函数计算置信区间,broom
有 confint_tidy
,您可以在其中指定要使用的函数:
confint_tidy(glm.1, func = stats::confint.default)
将此与估计值放在一起:
cbind(tidy(glm.1), confint_tidy(glm.1, func = stats::confint.default))
我想计算一个较大数据集上 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")
使用 broom::tidy
处理大数据会花费大量时间,因为它使用 confint.glm
,它根据描述的对数似然函数计算置信区间。
tidy(glm.1, conf.int = TRUE) # can take literally hours
confint
和 confint.glm
分别不对用于计算置信区间的方法进行论证。如果你想使用另一种方法,你需要使用不同的功能,例如confint.default
沃尔德。
broom::tidy
反过来没有所用函数的参数(或者我错过了什么?),它总是为 glm 调用 confint.glm
。
要使用不同的函数计算置信区间,broom
有 confint_tidy
,您可以在其中指定要使用的函数:
confint_tidy(glm.1, func = stats::confint.default)
将此与估计值放在一起:
cbind(tidy(glm.1), confint_tidy(glm.1, func = stats::confint.default))