Доверительные интервалы Fast Wald для GLM с метлой в R - PullRequest
0 голосов
/ 31 октября 2018

Я хотел бы рассчитать доверительные интервалы Вальда для коэффициентов glm в довольно большом наборе данных и использовать 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

1 Ответ

0 голосов
/ 31 октября 2018

confint и confint.glm соответственно не принимают аргумента для метода, используемого для вычисления доверительных интервалов. Если вы хотите использовать другой метод, вам нужно использовать другую функцию, например, confint.default для Вальда.

broom::tidy, в свою очередь, не имеет аргумента для используемой функции (или я что-то упустил?), Он всегда вызывает confint.glm для glm.

Чтобы вычислить доверительные интервалы с другой функцией, broom имеет confint_tidy, где вы можете указать функцию, которую хотите использовать:

confint_tidy(glm.1, func = stats::confint.default)

Соедините это с оценками:

cbind(tidy(glm.1), confint_tidy(glm.1, func = stats::confint.default))
...