O: jak obliczyć iloraz szans w modelu regresji logistycznej
Regresja logistyczna to metoda, której możemy użyć do dopasowania modelu regresji, gdy zmienna odpowiedzi jest binarna.
Po dopasowaniu modelu regresji logistycznej w R współczynniki w podsumowaniu modelu reprezentują średnią zmianę logarytmu szans zmiennej odpowiedzi związaną ze wzrostem o jedną jednostkę każdej zmiennej predykcyjnej.
Jednak często zamiast tego chcemy obliczyć iloraz szans dla zmiennych predykcyjnych w modelu.
Aby szybko obliczyć iloraz szans dla każdej zmiennej predykcyjnej w modelu, możesz użyć następującej składni:
exp(coef(model))
Można także obliczyć 95% przedział ufności dla każdego ilorazu szans, korzystając z następującej składni:
exp(cbind(Odds_Ratio = coef(model), confint(model)))
Poniższy przykład pokazuje, jak używać tej składni do obliczania i interpretowania ilorazów szans dla modelu regresji logistycznej w R.
Przykład: Obliczanie ilorazów szans w modelu regresji logistycznej w R
W tym przykładzie użyjemy domyślnego zestawu danych z pakietu ISLR w R.
Możemy użyć następującego kodu, aby załadować i wyświetlić podsumowanie zbioru danych:
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
Ten zbiór danych zawiera następujące informacje na temat 10 000 osób:
- default: wskazuje, czy dana osoba nie wywiązała się ze zobowiązania, czy nie.
- student: wskazuje, czy dana osoba jest studentem, czy nie.
- saldo: Średnie saldo utrzymywane przez osobę.
- dochód: Dochód osoby fizycznej.
Wykorzystamy status studenta, stan konta bankowego i dochody, aby skonstruować model regresji logistycznej, który przewiduje prawdopodobieństwo niewypłacalności danej osoby.
Możemy użyć funkcji glm i określić Family=’binomial’ tak, aby R dopasował model regresji logistycznej do zbioru danych:
#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
Współczynniki w wyniku wskazują średnią zmianę logarytmu szans na niewykonanie zobowiązania.
Na przykład wzrost salda o jedną jednostkę jest powiązany ze średnim wzrostem logarytmicznego prawdopodobieństwa niewykonania zobowiązania o 0,005988 .
Aby zamiast tego obliczyć iloraz szans dla każdej zmiennej predykcyjnej, możemy zastosować następującą składnię:
#calculate odds ratio for each predictor variable
exp(coef(model))
(Intercept) studentYes balance income
0.00001903854 0.52373166965 1.00575299051 1.00000303345
Możemy również obliczyć każdy iloraz szans, a także 95% przedział ufności dla każdego ilorazu szans:
#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
Iloraz szans dla każdego współczynnika reprezentuje średni wzrost prawdopodobieństwa niewypłacalności danej osoby, przy założeniu, że wszystkie inne zmienne predykcyjne pozostają stałe.
Na przykład saldo zmiennej predykcyjnej ma iloraz szans równy 1,0057 .
Oznacza to, że za każdego dodatkowego dolara na koncie ryzyko, że dana osoba nie spłaci kredytu, wzrasta 1,0057 , przy założeniu, że status studenta i dochody pozostają niezmienne .
W ten sam sposób możemy zinterpretować iloraz szans dla innych zmiennych predykcyjnych.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:
Jak używać Predict() z modelem regresji logistycznej w R
Jak interpretować Pr(>|z|) w wynikach regresji logistycznej w R
Jak wykreślić krzywą regresji logistycznej w R