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



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow