A: hoe odds ratio's te berekenen in een logistisch regressiemodel
Logistische regressie is een methode die we kunnen gebruiken om een regressiemodel te fitten wanneer de responsvariabele binair is.
Wanneer u een logistisch regressiemodel in R past, vertegenwoordigen de coëfficiënten in de modelsamenvatting de gemiddelde verandering in de log-odds van de responsvariabele die gepaard gaat met een toename van één eenheid in elke voorspellende variabele.
In plaats daarvan willen we echter vaak de oddsratio voor de voorspellende variabelen in het model berekenen.
Om snel de odds ratio’s voor elke voorspellende variabele in het model te berekenen, kunt u de volgende syntaxis gebruiken:
exp(coef(model))
U kunt voor elke oddsratio ook een betrouwbaarheidsinterval van 95% berekenen met behulp van de volgende syntaxis:
exp(cbind(Odds_Ratio = coef(model), confint(model)))
Het volgende voorbeeld laat zien hoe u deze syntaxis kunt gebruiken om odds ratio’s voor een logistisch regressiemodel in R te berekenen en te interpreteren.
Voorbeeld: Odds Ratio’s berekenen in een logistiek regressiemodel in R
Voor dit voorbeeld gebruiken we de standaarddataset uit het ISLR- pakket in R.
We kunnen de volgende code gebruiken om een samenvatting van de dataset te laden en weer te geven:
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
Deze dataset bevat de volgende informatie over 10.000 personen:
- standaard: geeft aan of een persoon in gebreke is gebleven of niet.
- student: geeft aan of een persoon student is of niet.
- saldo: Gemiddeld saldo dat door een individu wordt bijgehouden.
- inkomen: inkomen van het individu.
We zullen de studentenstatus, banksaldo en inkomen gebruiken om een logistisch regressiemodel te construeren dat de waarschijnlijkheid voorspelt dat een bepaald individu in gebreke blijft.
We kunnen de glm- functie gebruiken en family=’binomial‘ specificeren, zodat R een logistisch regressiemodel bij de dataset past:
#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
De coëfficiënten in het resultaat geven de gemiddelde verandering in de log odds of default aan.
Een stijging van het saldo met één eenheid gaat bijvoorbeeld gepaard met een gemiddelde stijging van 0,005988 in de logkans op wanbetaling.
Om in plaats daarvan de odds ratio voor elke voorspellende variabele te berekenen, kunnen we de volgende syntaxis gebruiken:
#calculate odds ratio for each predictor variable
exp(coef(model))
(Intercept) studentYes balance income
0.00001903854 0.52373166965 1.00575299051 1.00000303345
We kunnen ook elke oddsratio berekenen, evenals een betrouwbaarheidsinterval van 95% voor elke oddsratio:
#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
De odds ratio voor elke coëfficiënt vertegenwoordigt de gemiddelde toename van de standaardkansen van een individu, ervan uitgaande dat alle andere voorspellende variabelen constant blijven.
Het saldo van de voorspellende variabele heeft bijvoorbeeld een oddsratio van 1,0057 .
Dit betekent dat voor elke extra dollar die een individu op zijn rekening heeft, de kans dat het individu zijn lening niet kan nakomen met een factor 1,0057 toeneemt, ervan uitgaande dat de studentenstatus en het inkomen constant blijven .
We kunnen de odds ratio’s voor de andere voorspellende variabelen op dezelfde manier interpreteren.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
Hoe Predict() te gebruiken met een logistisch regressiemodel in R
Hoe Pr(>|z|) te interpreteren in logistieke regressie-uitvoer in R
Hoe een logistische regressiecurve in R uit te zetten