R Language
Generaliserade linjära modeller
Sök…
Logistisk regression på Titanic dataset
Logistisk regression är ett speciellt fall av den generaliserade linjära modellen , som används för att modellera dikotome resultat ( probit och komplementära log-log- modeller är nära besläktade).
Namnet kommer från länkfunktionen används, logit eller logga odds fungera. Det omvända funktion logit kallas logistikfunktionen och ges av:
Denna funktion tar ett värde mellan ] -Inf; + Inf [ och returnerar ett värde mellan 0 och 1 ; dvs. logistikfunktionen tar en linjär prediktor och ger en sannolikhet.
Logistisk regression kan utföras med hjälp av glm
funktionen med alternativet family = binomial
(genväg för family = binomial(link="logit")
; logit är standardlänkfunktion för binomialfamiljen).
I det här exemplet försöker vi förutsäga passagerarnas öde ombord på RMS Titanic.
Läs uppgifterna:
url <- "http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt"
titanic <- read.csv(file = url, stringsAsFactors = FALSE)
Rengör de saknade värdena:
I så fall ersätter vi de saknade värdena med en approximation, genomsnittet.
titanic$age[is.na(titanic$age)] <- mean(titanic$age, na.rm = TRUE)
Träna modellen:
titanic.train <- glm(survived ~ pclass + sex + age,
family = binomial, data = titanic)
Sammanfattning av modellen:
summary(titanic.train)
Utgången:
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
Det första som visas är samtalet. Det är en påminnelse om modellen och de angivna alternativen.
Därefter ser vi avvikelserester, som är ett mått på modellens passform. Denna del av utgången visar fördelningen av avvikelsesresterna för enskilda fall som används i modellen.
Nästa del av utgången visar koefficienterna, deras standardfel, z-statistiken (ibland kallad en Wald z-statistik) och tillhörande p-värden.
- De kvalitativa variablerna är "dummifierade". En modalitet betraktas som referens. Referensmodaliteten kan ändras med
I
i formeln. - Alla fyra prediktorer är statistiskt signifikanta på en 0,1% nivå.
- De logistiska regressionskoefficienterna ger förändringen i logg oddsen för utfallet för en enhetsökning i prediktorns variabel.
- För att se oddsförhållandet (multiplikativ förändring i oddsen för överlevnad per enhetsökning i en prediktorvariabel) exponentierar du parametern.
-
confint
att se konfidensintervallet (CI) för parametern.
- De kvalitativa variablerna är "dummifierade". En modalitet betraktas som referens. Referensmodaliteten kan ändras med
Nedanför tabellen över koefficienter finns passformindex, inklusive null- och avvikelsestester och Akaike Information Criterion (AIC), som kan användas för att jämföra modellprestanda.
- När man jämför jämförbara modeller med maximal sannolikhet för samma data, desto mindre AIC, desto bättre passform.
- Ett mått på modellpassningen är betydelsen av den övergripande modellen. Detta test frågar om modellen med prediktorer passar väsentligt bättre än en modell med bara en avlyssning (dvs. en nollmodell).
Exempel på oddsförhållanden:
exp(coef(titanic.train)[3])
pclass3rd
0.08797765
Med denna modell, jämfört med första klass, har 3: e passagerare ungefär en tiondel av oddsen för överlevnad.
Exempel på konfidensintervall för parametrarna:
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
Exempel på att beräkna betydelsen av den totala modellen:
Teststatistiken fördelas chi-kvadrat med grader av frihet lika med skillnaderna i frihetsgrader mellan den aktuella och nollmodellen (dvs. antalet prediktorvariabler i modellen).
with(titanic.train, pchisq(null.deviance - deviance, df.null - df.residual
, lower.tail = FALSE))
[1] 1.892539e-111
P-värdet är nära 0 och visar en starkt signifikant modell.