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 .
  • 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.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow