В разных сообщениях есть фрагменты правильного ответа, но ни один из них, похоже, не объединяет все воедино. Предполагая следующее:
glm_out <- glm(Y ~ X, data=DT, family = "binomial")
Получение отношения шансов
Для логистической регрессии коэффициент регрессии (b1) - это предполагаемое увеличение логарифма шансов Y на единицу увеличения X. Итак, чтобы получить отношение шансов, мы просто используем функцию exp:
OR <- exp(coef(glm_out))
# pass in coef directly
stargazer(glm_out, coef = list(OR), t.auto=F, p.auto=F)
# or, use the apply.coef option
stargazer(glm_out, apply.coef = exp, t.auto=F, p.auto=F)
Получение стандартной ошибки отношения шансов
Вы не можете просто использовать apply.se = exp
для получения Std. Ошибка отношения шансов
Вместо этого вы должны использовать функцию: Std.Error.OR = OR * SE(coef)
# define a helper function to extract SE from glm output
se.coef <- function(glm.output){sqrt(diag(vcov(glm.output)))}
# or, you can use the arm package
se.coef <- arm::se.coef
#Get the odds ratio
OR <- exp(coef(glm_out))
# Then, we can get the `StdErr.OR` by multiplying the two:
Std.Error.OR <- OR * se.coef(glm_out)
Итак, чтобы попасть в Stargazer, мы используем следующее:
# using Std Errors
stargazer(glm_out, coef=list(OR), se = list(Std.Error.OR), t.auto=F, p.auto=F)
Вычисление CI для отношения шансов
Доверительные интервалы в настройке отношения шансов не являются симметричными. Итак, мы не можем просто сделать ± 1,96 * SE (OR), чтобы получить доверительный интервал. Вместо этого мы можем вычислить его из исходных логарифмических коэффициентов exp(coef ± 1.96*SE)
.
# Based on normal distribution to compute Wald CIs:
# we use confint.default to obtain the conventional confidence intervals
# then, use the exp function to get the confidence intervals
CI.OR <- as.matrix(exp(confint.default(glm_out)))
Итак, чтобы попасть в Stargazer, мы используем следующее:
# using ci.custom
stargazer(glm_out, coef=list(OR), ci.custom = list(CI.OR), t.auto=F, p.auto=F, ci = T)
# using apply.ci
stargazer(glm_out, apply.coef = exp, apply.ci = exp, t.auto=F, p.auto=F, ci = T)
ПРИМЕЧАНИЕ ОБ ИСПОЛЬЗОВАНИИ ИНТЕРВАЛА УВЕРЕННОСТИ ДЛЯ ИСПЫТАНИЙ НА ЗНАЧИМОСТЬ:
Не используйте доверительные интервалы отношения шансов для вычисления значимости (см. Примечание и ссылку внизу). Вместо этого вы можете сделать это, используя коэффициенты журнала:
z <- coef(glm_out)/se.coef(glm_out)
И используйте это, чтобы получить значения p для тестов значимости:
pvalue <- 2*pnorm(abs(coef(glm_out)/se.coef(glm_out)), lower.tail = F)
(источник: https://data.princeton.edu/wws509/r/c3s1 )
См. Эту ссылку для более подробного обсуждения статистического тестирования: https://stats.stackexchange.com/questions/144603/why-do-my-p-values-differ-between-logistic-regression-output-критерийхи-квадрат
Однако важно отметить, что, в отличие от значения p, 95% доверительный интервал не сообщает о статистической значимости меры. На практике 95% доверительный интервал часто используется в качестве прокси для наличия статистической значимости, если он не перекрывает нулевое значение (например, OR = 1). Тем не менее было бы неправильно интерпретировать OR с 95% доверительным интервалом, охватывающим нулевое значение, как свидетельство отсутствия связи между воздействием и результатом. источник: объяснение отношения шансов
person
HoneyBuddha
schedule
08.09.2020