R Language
Uogólnione modele liniowe
Szukaj…
Regresja logistyczna w zestawie danych Titanica
Regresja logistyczna jest szczególnym przypadkiem uogólnionego modelu liniowego , stosowanego do modelowania wyników dychotomicznych ( probit i uzupełniające modele log-log są ze sobą ściśle powiązane).
Nazwa pochodzi od użytej funkcji link, funkcji logit lub log-odds . Funkcja odwrotna logit nazywa się funkcją logistyczną i jest dana przez:
Ta funkcja przyjmuje wartość pomiędzy ] -Inf; + Inf [ i zwraca wartość z zakresu od 0 do 1 ; tzn. funkcja logistyczna przyjmuje predyktor liniowy i zwraca prawdopodobieństwo.
Regresję logistyczną można wykonać za pomocą funkcji glm
z opcją family = binomial
(skrót do family = binomial(link="logit")
; logit jest domyślną funkcją łączenia dla rodziny dwumianowej).
W tym przykładzie staramy się przewidzieć los pasażerów na pokładzie RMS Titanic.
Przeczytaj dane:
url <- "http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt"
titanic <- read.csv(file = url, stringsAsFactors = FALSE)
Wyczyść brakujące wartości:
W takim przypadku zastępujemy brakujące wartości przybliżeniem, czyli średnią.
titanic$age[is.na(titanic$age)] <- mean(titanic$age, na.rm = TRUE)
Trenuj model:
titanic.train <- glm(survived ~ pclass + sex + age,
family = binomial, data = titanic)
Podsumowanie modelu:
summary(titanic.train)
Wyjście:
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
Pierwszą wyświetlaną rzeczą jest połączenie. Jest to przypomnienie modelu i określonych opcji.
Następnie widzimy wartości odchylenia, które są miarą dopasowania modelu. Ta część danych wyjściowych pokazuje rozkład reszt odchyleń dla poszczególnych przypadków zastosowanych w modelu.
Kolejna część danych wyjściowych pokazuje współczynniki, ich błędy standardowe, statystykę Z (czasami nazywaną statystyką Z-Wald) i powiązane wartości p.
- Zmienne jakościowe są „zmumifikowane”. Modalność jest uważana za odniesienie. Model referencyjny można zmienić za pomocą
I
we wzorze. - Wszystkie cztery predyktory są istotne statystycznie na poziomie 0,1%.
- Współczynniki regresji logistycznej dają zmianę szansy logarytmicznej wyniku dla wzrostu o jedną jednostkę zmiennej predykcyjnej.
- Aby zobaczyć iloraz szans (zwielokrotniona zmiana prawdopodobieństwa przeżycia na jednostkę wzrostu w zmiennej predykcyjnej), potęguj parametr.
- Aby zobaczyć przedział ufności (CI) parametru, użyj
confint
.
- Zmienne jakościowe są „zmumifikowane”. Modalność jest uważana za odniesienie. Model referencyjny można zmienić za pomocą
Poniżej tabeli współczynników znajdują się wskaźniki dopasowania, w tym wartości zerowe i odchylenie odchylenia oraz Akaike Information Criterion (AIC), które można wykorzystać do porównania wydajności modelu.
- Porównując modele wyposażone w maksymalne prawdopodobieństwo w te same dane, im mniejszy AIC, tym lepsze dopasowanie.
- Jedną z miar dopasowania modelu jest znaczenie całego modelu. Ten test pyta, czy model z predyktorami pasuje znacznie lepiej niż model z samym przecięciem (tj. Model zerowy).
Przykład ilorazów szans:
exp(coef(titanic.train)[3])
pclass3rd
0.08797765
W tym modelu, w porównaniu z pierwszą klasą, pasażerowie trzeciej klasy mają około jednej dziesiątej szansy na przeżycie.
Przykład przedziału ufności dla parametrów:
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
Przykład obliczania znaczenia całego modelu:
Statystyka testowa jest rozkładana chi-kwadrat o stopniach swobody równych różnicom stopni swobody między modelem bieżącym a zerowym (tj. Liczbą zmiennych predykcyjnych w modelu).
with(titanic.train, pchisq(null.deviance - deviance, df.null - df.residual
, lower.tail = FALSE))
[1] 1.892539e-111
Wartość p jest bliska 0, co pokazuje bardzo istotny model.