R: come calcolare i rapporti odd in un modello di regressione logistica


La regressione logistica è un metodo che possiamo utilizzare per adattare un modello di regressione quando la variabile di risposta è binaria.

Quando si adatta un modello di regressione logistica in R, i coefficienti nel riepilogo del modello rappresentano la variazione media nelle probabilità logaritmiche della variabile di risposta associata a un aumento di un’unità in ciascuna variabile predittrice.

Tuttavia, spesso vogliamo invece calcolare l’ odds ratio per le variabili predittive nel modello.

Per calcolare rapidamente i rapporti odd per ciascuna variabile predittore nel modello, è possibile utilizzare la seguente sintassi:

 exp(coef(model))

Puoi anche calcolare un intervallo di confidenza al 95% per ciascun rapporto di probabilità utilizzando la seguente sintassi:

 exp(cbind(Odds_Ratio = coef(model), confint(model)))

L’esempio seguente mostra come utilizzare questa sintassi per calcolare e interpretare i rapporti odd per un modello di regressione logistica in R.

Esempio: calcolo dei rapporti odd in un modello di regressione logistica in R

Per questo esempio utilizzeremo il set di dati predefinito del pacchetto ISLR in R.

Possiamo utilizzare il seguente codice per caricare e visualizzare un riepilogo del set di dati:

 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

Questo set di dati contiene le seguenti informazioni su 10.000 individui:

  • default: indica se un individuo è inadempiente o meno.
  • studente: indica se un individuo è studente o meno.
  • saldo: saldo medio portato da un individuo.
  • reddito: reddito dell’individuo.

Utilizzeremo lo status di studente, il saldo bancario e il reddito per costruire un modello di regressione logistica che predice la probabilità che un dato individuo vada in default.

Possiamo utilizzare la funzione glm e specificare family=’binomial’ in modo che R adatti un modello di regressione logistica al set di dati:

 #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

I coefficienti nel risultato indicano la variazione media del log odds di default.

Ad esempio, un aumento di un’unità del saldo è associato a un aumento medio di 0,005988 nella probabilità logaritmica di default.

Per calcolare invece l’odds ratio per ciascuna variabile predittrice, possiamo utilizzare la seguente sintassi:

 #calculate odds ratio for each predictor variable
exp(coef(model))

  (Intercept) studentYes balance income 
0.00001903854 0.52373166965 1.00575299051 1.00000303345 

Possiamo anche calcolare ciascun rapporto di probabilità nonché un intervallo di confidenza al 95% per ciascun rapporto di probabilità:

 #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

L’odds ratio per ciascun coefficiente rappresenta l’aumento medio delle probabilità di default di un individuo, presupponendo che tutte le altre variabili predittive rimangano costanti.

Ad esempio, il saldo della variabile predittore ha un rapporto odd di 1.0057 .

Ciò significa che per ogni dollaro aggiuntivo nel saldo che un individuo porta con sé, le probabilità che l’individuo risulti inadempiente sul prestito aumentano di un fattore pari a 1,0057 , assumendo che lo status di studente e il reddito rimangano costanti .

Possiamo interpretare i rapporti odd per le altre variabili predittive allo stesso modo.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come utilizzare Predict() con il modello di regressione logistica in R
Come interpretare Pr(>|z|) nell’output della regressione logistica in R
Come tracciare una curva di regressione logistica in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *