Come interpretare la devianza nulla e residua (con esempi)
Ogni volta che si adatta un modello lineare generale (come la regressione logistica, la regressione di Poisson, ecc.), la maggior parte dei software statistici produce valori per la devianza zero e la devianza residua del modello.
La devianza zero ci dice quanto bene la variabile di risposta può essere prevista da un modello con solo un termine originale.
La devianza residua ci dice quanto bene la variabile di risposta può essere prevista da un modello con p variabili predittrici. Più basso è il valore, migliore è la capacità del modello di prevedere il valore della variabile di risposta.
Per determinare se un modello è “utile”, possiamo calcolare la statistica Chi-quadrato come segue:
X 2 = Devianza zero – Devianza residua
con p gradi di libertà.
Possiamo quindi trovare il valore p associato a questa statistica Chi-quadrato. Più basso è il valore p, migliore è la capacità del modello di adattarsi al set di dati rispetto a un modello contenente solo un termine originale.
L’esempio seguente mostra come interpretare la devianza zero e residua per un modello di regressione logistica in R.
Esempio: interpretazione della devianza zero e residua
Per questo esempio utilizzeremo il set di dati predefinito del pacchetto ISLR. Possiamo utilizzare il seguente codice per caricare e visualizzare un riepilogo del set di dati:
#load dataset data <- ISLR::Default #view summary of dataset summary(data) default student balance income No:9667 No:7056 Min. : 0.0 Min. : 772 Yes: 333 Yes:2944 1st Qu.: 481.7 1st Qu.:21340 Median: 823.6 Median: 34553 Mean: 835.4 Mean: 33517 3rd Qu.:1166.3 3rd Qu.:43808 Max. :2654.3 Max. :73554
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 prevede la probabilità che un dato individuo vada in default:
#fit logistic regression model model <- glm(default~balance+student+income, family=" binomial ", data=data) #view model summary summary(model) Call: glm(formula = default ~ balance + student + income, family = "binomial", data = data) Deviance Residuals: Min 1Q Median 3Q Max -2.4691 -0.1418 -0.0557 -0.0203 3.7383 Coefficients: Estimate Std. Error z value Pr(>|z|) (Intercept) -1.087e+01 4.923e-01 -22.080 < 2e-16 *** balance 5.737e-03 2.319e-04 24.738 < 2e-16 *** studentYes -6.468e-01 2.363e-01 -2.738 0.00619 ** income 3.033e-06 8.203e-06 0.370 0.71152 --- Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 (Dispersion parameter for binomial family taken to be 1) Null deviance: 2920.6 on 9999 degrees of freedom Residual deviance: 1571.5 on 9996 degrees of freedom AIC: 1579.5 Number of Fisher Scoring iterations: 8
Possiamo osservare i seguenti valori nell’output per zero e deviazione residua:
- Devianza zero : 2920,6 con df = 9999
- Deviazione residua : 1571,5 con df = 9996
Possiamo utilizzare questi valori per calcolare la statistica X 2 del modello:
- X 2 = Devianza zero – Devianza residua
- X2 = 2910,6 – 1579,0
- X2 = 1331,6
Ci sono p = 3 gradi di libertà delle variabili predittive.
Possiamo utilizzare il calcolatore Chi quadrato/valore P per scoprire che un valore X 2 di 1331,6 con 3 gradi di libertà ha un valore p di 0,000000.
Poiché questo valore p è molto inferiore a 0,05, possiamo concludere che il modello è molto utile nel prevedere la probabilità che un dato individuo vada in default.
Risorse addizionali
I seguenti tutorial spiegano come eseguire in pratica la regressione logistica in R e Python:
Come eseguire la regressione logistica in R
Come eseguire la regressione logistica in Python