R Language
Modelli lineari generalizzati
Ricerca…
Regressione logistica sul set di dati Titanic
La regressione logistica è un caso particolare del modello lineare generalizzato , utilizzato per modellare esiti dicotomici (i modelli probit e log-log complementari sono strettamente correlati).
Il nome deriva dalla funzione di collegamento utilizzata, dalla funzione logit o log-odds . La funzione inversa del logit è chiamata funzione logistica ed è data da:
Questa funzione prende un valore tra ] -Inf; + Inf [ e restituisce un valore compreso tra 0 e 1 ; cioè la funzione logistica prende un predittore lineare e restituisce una probabilità.
La regressione logistica può essere eseguita utilizzando la funzione glm
con la family = binomial
opzione family = binomial
(collegamento per family = binomial(link="logit")
, la logit è la funzione di collegamento predefinita per la famiglia binomiale).
In questo esempio, cerchiamo di prevedere il destino dei passeggeri a bordo del RMS Titanic.
Leggi i dati:
url <- "http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt"
titanic <- read.csv(file = url, stringsAsFactors = FALSE)
Pulisci i valori mancanti:
In tal caso, sostituiamo i valori mancanti per approssimazione, la media.
titanic$age[is.na(titanic$age)] <- mean(titanic$age, na.rm = TRUE)
Allena il modello:
titanic.train <- glm(survived ~ pclass + sex + age,
family = binomial, data = titanic)
Riassunto del modello:
summary(titanic.train)
L'output:
Call:
glm(formula = survived ~ pclass + sex + age, family = binomial, data = titanic)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.6452 -0.6641 -0.3679 0.6123 2.5615
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 3.552261 0.342188 10.381 < 2e-16 ***
pclass2nd -1.170777 0.211559 -5.534 3.13e-08 ***
pclass3rd -2.430672 0.195157 -12.455 < 2e-16 ***
sexmale -2.463377 0.154587 -15.935 < 2e-16 ***
age -0.042235 0.007415 -5.696 1.23e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 1686.8 on 1312 degrees of freedom
Residual deviance: 1165.7 on 1308 degrees of freedom
AIC: 1175.7
Number of Fisher Scoring iterations: 5
La prima cosa visualizzata è la chiamata. È un promemoria del modello e delle opzioni specificate.
Successivamente vediamo i residui di devianza, che sono una misura di adattamento del modello. Questa parte dell'output mostra la distribuzione dei residui di devianza per i singoli casi utilizzati nel modello.
La parte successiva dell'output mostra i coefficienti, i loro errori standard, la statistica z (talvolta chiamata statistica Wald z) e i valori p associati.
- Le variabili qualitative sono "dummified". Una modalità è considerata come riferimento. La modalità di riferimento può essere modificata con
I
nella formula. - Tutti e quattro i predittori sono statisticamente significativi a un livello dello 0,1%.
- I coefficienti di regressione logistica danno la variazione delle probabilità log del risultato per un aumento di una unità nella variabile predittore.
- Per visualizzare il rapporto di probabilità (variazione moltiplicativa delle probabilità di sopravvivenza per unità di incremento di una variabile predittore), esponenziare il parametro.
- Per vedere l'intervallo di confidenza (CI) del parametro, usare
confint
.
- Le variabili qualitative sono "dummified". Una modalità è considerata come riferimento. La modalità di riferimento può essere modificata con
Sotto la tabella dei coefficienti ci sono gli indici di adattamento, compresi i residui nulli e di devianza e il Criterio di informazione di Akaike (AIC), che può essere utilizzato per confrontare le prestazioni del modello.
- Quando si confrontano i modelli montati con la massima verosimiglianza con gli stessi dati, minore è l'AIC, migliore è l'adattamento.
- Una misura di adattamento del modello è il significato del modello generale. Questo test chiede se il modello con predittori si adatta significativamente meglio di un modello con solo un'intercetta (cioè un modello null).
Esempio di odds ratio:
exp(coef(titanic.train)[3])
pclass3rd
0.08797765
Con questo modello, rispetto alla prima classe, i passeggeri di 3a classe hanno circa un decimo delle probabilità di sopravvivenza.
Esempio di intervallo di confidenza per i parametri:
confint(titanic.train)
Waiting for profiling to be done...
2.5 % 97.5 %
(Intercept) 2.89486872 4.23734280
pclass2nd -1.58986065 -0.75987230
pclass3rd -2.81987935 -2.05419500
sexmale -2.77180962 -2.16528316
age -0.05695894 -0.02786211
Esempio di calcolo del significato del modello generale:
La statistica test è distribuita chi-quadro con gradi di libertà uguali alle differenze in gradi di libertà tra il modello corrente e quello nullo (cioè il numero di variabili predittore nel modello).
with(titanic.train, pchisq(null.deviance - deviance, df.null - df.residual
, lower.tail = FALSE))
[1] 1.892539e-111
Il valore p è vicino a 0, mostrando un modello fortemente significativo.