Доверительные интервалы Fast Wald для glm с метлой в R

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

person bebru    schedule 31.10.2018    source источник


Ответы (1)


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))
person bebru    schedule 31.10.2018
comment
К сожалению, эта функция устарела и будет удалена из broom. Было некоторое обсуждение включения аргумента в функцию tidy для методов доверительного интервала, но на данный момент я ничего не вижу. - person Koray; 25.03.2021
comment
Спасибо за информацию @Koray. Добавление ссылки на соответствующую проблему Github: проблема с метлой № 989 - person bebru; 26.03.2021