Zoeken…


Logistieke regressie op Titanic-gegevensset

Logistische regressie is een specifiek geval van het gegeneraliseerde lineaire model , dat wordt gebruikt om dichotome uitkomsten te modelleren ( probit en complementaire log-log modellen zijn nauw verwant).

De naam komt van de gebruikte link-functie , de logit of log-odds- functie. De inverse functie van de logit wordt de logistieke functie genoemd en wordt gegeven door:

Deze functie heeft een waarde tussen ] -Inf; + Inf [ en retourneert een waarde tussen 0 en 1 ; dat wil zeggen dat de logistieke functie een lineaire voorspeller neemt en een waarschijnlijkheid retourneert.

Logistische regressie kan worden uitgevoerd met behulp van de glm functie met de optie family = binomial (snelkoppeling voor family = binomial(link="logit") ; de logit is de standaard linkfunctie voor de binomial familie).

In dit voorbeeld proberen we het lot van de passagiers aan boord van de RMS Titanic te voorspellen.

Lees de gegevens:

url <- "http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt"
titanic <- read.csv(file = url, stringsAsFactors = FALSE)

Reinig de ontbrekende waarden:

In dat geval vervangen we de ontbrekende waarden door een benadering, het gemiddelde.

titanic$age[is.na(titanic$age)] <- mean(titanic$age, na.rm = TRUE) 

Train het model:

titanic.train <- glm(survived ~ pclass + sex + age,
                         family = binomial, data = titanic)

Samenvatting van het model:

summary(titanic.train)

Het resultaat:

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
  • Het eerste dat wordt weergegeven, is de oproep. Het is een herinnering aan het model en de opgegeven opties.

  • Vervolgens zien we de afwijkingsresiduen, die een maat zijn voor de pasvorm van het model. Dit deel van de output toont de verdeling van de afwijkingsresiduen voor individuele gevallen die in het model worden gebruikt.

  • Het volgende deel van de uitvoer toont de coëfficiënten, hun standaardfouten, de z-statistiek (soms een Wald-z-statistiek genoemd) en de bijbehorende p-waarden.

    • De kwalitatieve variabelen zijn "getummificeerd". Een modaliteit wordt als referentie beschouwd. De referentiemodaliteit kan verandering zijn met I in de formule.
    • Alle vier de voorspellers zijn statistisch significant op een niveau van 0,1%.
    • De logistische regressiecoëfficiënten geven de verandering in de logkansen van de uitkomst voor een toename van de voorspellervariabele met één eenheid.
    • Om de odds ratio te zien (multiplicatieve verandering in de overlevingskansen per eenheidstoename in een voorspellende variabele), exponentieel de parameter.
    • Gebruik confint om het betrouwbaarheidsinterval (CI) van de parameter te confint .
  • Hieronder de tabel met coëfficiënten zijn geschikte indices, inclusief de null- en deviantie-residuen en de Akaike Information Criterion (AIC), die kunnen worden gebruikt voor het vergelijken van modelprestaties.

    • Wanneer modellen met maximale waarschijnlijkheid worden vergeleken met dezelfde gegevens, hoe kleiner de AIC, hoe beter de pasvorm.
    • Een maat voor de pasvorm van het model is de betekenis van het totale model. Deze test vraagt of het model met voorspellers aanzienlijk beter past dan een model met alleen een onderschepping (dwz een nulmodel).

Voorbeeld van odds ratio's:

exp(coef(titanic.train)[3])

 pclass3rd 
0.08797765 

Met dit model hebben de passagiers van de 3e klasse in vergelijking met de eerste klasse ongeveer een tiende van de overlevingskansen.

Voorbeeld van betrouwbaarheidsinterval voor de parameters:

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

Voorbeeld van het berekenen van de betekenis van het totale model:

De teststatistiek is verdeeld in chi-kwadraat met vrijheidsgraden gelijk aan de verschillen in vrijheidsgraden tussen het huidige en het nulmodel (dwz het aantal voorspellende variabelen in het model).

with(titanic.train, pchisq(null.deviance - deviance, df.null - df.residual
, lower.tail = FALSE))
[1] 1.892539e-111

De p-waarde is bijna 0, wat een sterk significant model toont.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow