A: как рассчитать отношение шансов в модели логистической регрессии
Логистическая регрессия — это метод, который мы можем использовать для подбора модели регрессии, когда переменная ответа является двоичной.
Когда вы подгоняете модель логистической регрессии в R, коэффициенты в сводке модели представляют собой среднее изменение логарифмических шансов переменной ответа, связанное с увеличением на одну единицу каждой переменной-предиктора.
Однако вместо этого мы часто хотим рассчитать отношение шансов для переменных-предикторов в модели.
Чтобы быстро вычислить отношения шансов для каждой переменной-предиктора в модели, вы можете использовать следующий синтаксис:
exp(coef(model))
Вы также можете рассчитать 95% доверительный интервал для каждого отношения шансов, используя следующий синтаксис:
exp(cbind(Odds_Ratio = coef(model), confint(model)))
В следующем примере показано, как использовать этот синтаксис для расчета и интерпретации отношений шансов для модели логистической регрессии в R.
Пример. Расчет отношений шансов в модели логистической регрессии в R
В этом примере мы будем использовать набор данных по умолчанию из пакета ISLR в R.
Мы можем использовать следующий код для загрузки и отображения сводки набора данных:
library (ISLR) #view first five rows of Default dataset head(Default) default student balance income 1 No No 729.5265 44361.625 2 No Yes 817.1804 12106.135 3 No No 1073.5492 31767.139 4 No No 529.2506 35704.494 5 No No 785.6559 38463.496 6 No Yes 919.5885 7491.559
Этот набор данных содержит следующую информацию о 10 000 человек:
- по умолчанию: указывает, совершил ли человек дефолт или нет.
- студент: указывает, является ли человек студентом или нет.
- баланс: средний баланс, который несет физическое лицо.
- доход: Доход физического лица.
Мы будем использовать статус студента, банковский баланс и доход, чтобы построить модель логистической регрессии, которая прогнозирует вероятность того, что данный человек объявит дефолт.
Мы можем использовать функцию glm и указать Family=’binomial’, чтобы R соответствовал модели логистической регрессии набору данных:
#fit logistic regression model model <- glm(default~student+balance+income, family=' binomial ', data=Default) #disable scientific notation for model summary options(scipen=999) #view model summary summary(model) Call: glm(formula = default ~ student + balance + income, family = "binomial", data = train) Deviance Residuals: Min 1Q Median 3Q Max -2.5586 -0.1353 -0.0519 -0.0177 3.7973 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -11.478101194 0.623409555 -18.412 <0.0000000000000002 *** studentYes -0.493292438 0.285735949 -1.726 0.0843 . balance 0.005988059 0.000293765 20.384 <0.0000000000000002 *** income 0.000007857 0.000009965 0.788 0.4304 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 2021.1 on 6963 degrees of freedom Residual deviance: 1065.4 on 6960 degrees of freedom AIC: 1073.4 Number of Fisher Scoring iterations: 8
Коэффициенты в результате указывают среднее изменение логарифмических шансов дефолта.
Например, увеличение баланса на одну единицу связано со средним увеличением логарифма вероятности дефолта на 0,005988 .
Чтобы вместо этого вычислить отношение шансов для каждой переменной-предиктора, мы можем использовать следующий синтаксис:
#calculate odds ratio for each predictor variable
exp(coef(model))
(Intercept) studentYes balance income
0.00001903854 0.52373166965 1.00575299051 1.00000303345
Мы также можем рассчитать каждое отношение шансов, а также 95% доверительный интервал для каждого отношения шансов:
#calculate odds ratio and 95% confidence interval for each predictor variable
exp(cbind(Odds_Ratio = coef(model), confint(model)))
Odds_Ratio 2.5% 97.5%
(Intercept) 0.00001903854 0.000007074481 0.0000487808
studentYes 0.52373166965 0.329882707270 0.8334223982
balance 1.00575299051 1.005308940686 1.0062238757
income 1.00000303345 0.999986952969 1.0000191246
Отношение шансов для каждого коэффициента представляет собой среднее увеличение вероятности дефолта отдельного человека при условии, что все остальные переменные-предикторы остаются постоянными.
Например, баланс переменной-предиктора имеет отношение шансов 1,0057 .
Это означает, что на каждый дополнительный доллар на балансе человека вероятность того, что он не сможет выплатить кредит, увеличивается в 1,0057 раза, при условии, что статус студента и доход остаются постоянными .
Мы можем интерпретировать отношения шансов для других переменных-предсказателей таким же образом.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в R:
Как использовать Predict() с моделью логистической регрессии в R
Как интерпретировать Pr(>|z|) в выходных данных логистической регрессии в R
Как построить кривую логистической регрессии в R