Analiza danych Titanic
Baza danych Titanic
W momencie wodowania “Titanic” był największym pasażerskim statkiem parowym na świecie. W swój dziewiczy rejs wypłynął z portu w Southampton 10 kwietnia 1912 roku do Nowego Jorku. W nocy z 14 na 15 kwietnia zderzył się z górą lodową. Zatonął w ciągu niespełna trzech godzin. Katastrofa “Titanica” była największą katastrofą morską w czasach pokoju. Spośród ponad 2,2 tys. pasażerów i członków załogi życie straciło ponad 1,5 tys. osób.
Pracujemy na danych pt. “Titanic Passenger Survival Data Set” z pakietu titanic w R, korzystamy zarówno z danych titanic_train jak i titanic_test. Na ich podstawie analizujemy które czynniki mają wpływ na przeżycie tej katastrofy. Więcej szczegółów o tej bazie danych można znaleźć https://github.com/cran/titanic.
Dane wejsciowe
Podstawowe informacje o danych w titanic_train
## PassengerId Survived Pclass Name
## Min. : 1.0 Min. :0.0000 Min. :1.000 Length:891
## 1st Qu.:223.5 1st Qu.:0.0000 1st Qu.:2.000 Class :character
## Median :446.0 Median :0.0000 Median :3.000 Mode :character
## Mean :446.0 Mean :0.3838 Mean :2.309
## 3rd Qu.:668.5 3rd Qu.:1.0000 3rd Qu.:3.000
## Max. :891.0 Max. :1.0000 Max. :3.000
##
## Sex Age SibSp Parch
## Length:891 Min. : 0.42 Min. :0.000 Min. :0.0000
## Class :character 1st Qu.:20.12 1st Qu.:0.000 1st Qu.:0.0000
## Mode :character Median :28.00 Median :0.000 Median :0.0000
## Mean :29.70 Mean :0.523 Mean :0.3816
## 3rd Qu.:38.00 3rd Qu.:1.000 3rd Qu.:0.0000
## Max. :80.00 Max. :8.000 Max. :6.0000
## NA's :177
## Ticket Fare Cabin Embarked
## Length:891 Min. : 0.00 Length:891 Length:891
## Class :character 1st Qu.: 7.91 Class :character Class :character
## Mode :character Median : 14.45 Mode :character Mode :character
## Mean : 32.20
## 3rd Qu.: 31.00
## Max. :512.33
##
## [1] "PassengerId" "Survived" "Pclass" "Name" "Sex"
## [6] "Age" "SibSp" "Parch" "Ticket" "Fare"
## [11] "Cabin" "Embarked"
## [1] 891 12
PassengerId | Survived | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Cabin | Embarked |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | 3 | Braund, Mr. Owen Harris | male | 22 | 1 | 0 | A/5 21171 | 7.2500 | S | |
2 | 1 | 1 | Cumings, Mrs. John Bradley (Florence Briggs Thayer) | female | 38 | 1 | 0 | PC 17599 | 71.2833 | C85 | C |
3 | 1 | 3 | Heikkinen, Miss. Laina | female | 26 | 0 | 0 | STON/O2. 3101282 | 7.9250 | S | |
4 | 1 | 1 | Futrelle, Mrs. Jacques Heath (Lily May Peel) | female | 35 | 1 | 0 | 113803 | 53.1000 | C123 | S |
5 | 0 | 3 | Allen, Mr. William Henry | male | 35 | 0 | 0 | 373450 | 8.0500 | S | |
6 | 0 | 3 | Moran, Mr. James | male | NA | 0 | 0 | 330877 | 8.4583 | Q |
Podstawowe informacje o danych w titanic_test
## PassengerId Pclass Name Sex
## Min. : 892.0 Min. :1.000 Length:418 Length:418
## 1st Qu.: 996.2 1st Qu.:1.000 Class :character Class :character
## Median :1100.5 Median :3.000 Mode :character Mode :character
## Mean :1100.5 Mean :2.266
## 3rd Qu.:1204.8 3rd Qu.:3.000
## Max. :1309.0 Max. :3.000
##
## Age SibSp Parch Ticket
## Min. : 0.17 Min. :0.0000 Min. :0.0000 Length:418
## 1st Qu.:21.00 1st Qu.:0.0000 1st Qu.:0.0000 Class :character
## Median :27.00 Median :0.0000 Median :0.0000 Mode :character
## Mean :30.27 Mean :0.4474 Mean :0.3923
## 3rd Qu.:39.00 3rd Qu.:1.0000 3rd Qu.:0.0000
## Max. :76.00 Max. :8.0000 Max. :9.0000
## NA's :86
## Fare Cabin Embarked
## Min. : 0.000 Length:418 Length:418
## 1st Qu.: 7.896 Class :character Class :character
## Median : 14.454 Mode :character Mode :character
## Mean : 35.627
## 3rd Qu.: 31.500
## Max. :512.329
## NA's :1
## [1] "PassengerId" "Pclass" "Name" "Sex" "Age"
## [6] "SibSp" "Parch" "Ticket" "Fare" "Cabin"
## [11] "Embarked"
## [1] 418 11
PassengerId | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Cabin | Embarked |
---|---|---|---|---|---|---|---|---|---|---|
892 | 3 | Kelly, Mr. James | male | 34.5 | 0 | 0 | 330911 | 7.8292 | Q | |
893 | 3 | Wilkes, Mrs. James (Ellen Needs) | female | 47.0 | 1 | 0 | 363272 | 7.0000 | S | |
894 | 2 | Myles, Mr. Thomas Francis | male | 62.0 | 0 | 0 | 240276 | 9.6875 | Q | |
895 | 3 | Wirz, Mr. Albert | male | 27.0 | 0 | 0 | 315154 | 8.6625 | S | |
896 | 3 | Hirvonen, Mrs. Alexander (Helga E Lindqvist) | female | 22.0 | 1 | 1 | 3101298 | 12.2875 | S | |
897 | 3 | Svensson, Mr. Johan Cervin | male | 14.0 | 0 | 0 | 7538 | 9.2250 | S |
Dane titanic_train zawieracją 891 obserwacji o pasażerach o numerach identyfikacyjnych od 1 do 891, natomiast titanic_test zawierają 418 obserwacji o pasażerach o numerach identyfikacyjnych od 892 do 1309. Ponadto dane treningowe zawierają dodatkowo zmienną Survived. W dalszej analizie połączymy dane testowe z treningowymi w jedną całość. Najpierw musimy dodać kolumnę Survived do danych testowych, natępnie (jak już obie tabele mają tą samą liczbę zmiennych) możemy połączyć dane testowe i treningowe w jedną ramkę danych titanic_calosc.
Oto kilka pierwszych wierszy tabeli titanic_calosc
PassengerId | Survived | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Cabin | Embarked |
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | 3 | Braund, Mr. Owen Harris | male | 22 | 1 | 0 | A/5 21171 | 7.2500 | S | |
2 | 1 | 1 | Cumings, Mrs. John Bradley (Florence Briggs Thayer) | female | 38 | 1 | 0 | PC 17599 | 71.2833 | C85 | C |
3 | 1 | 3 | Heikkinen, Miss. Laina | female | 26 | 0 | 0 | STON/O2. 3101282 | 7.9250 | S | |
4 | 1 | 1 | Futrelle, Mrs. Jacques Heath (Lily May Peel) | female | 35 | 1 | 0 | 113803 | 53.1000 | C123 | S |
5 | 0 | 3 | Allen, Mr. William Henry | male | 35 | 0 | 0 | 373450 | 8.0500 | S | |
6 | 0 | 3 | Moran, Mr. James | male | NA | 0 | 0 | 330877 | 8.4583 | Q |
Przy czym poszczególne zmienne mają następujące znaczenie:
nazwa | opis |
---|---|
PassengerId | Numer identyfikacyjny pasażera |
Survived | Czy dana osoba przeżyła czy nie. Oznaczenia: 0-nie przeżyła, 1-przeżyła |
Pclass | Klasa socjalno-ekonomiczna. Oznaczenia: 1-Wyższa, 2-Średnia, 3-Niższa |
Name | Imiona i nazwiska oddzielone przecinkami w formacie: nazwisko, tytuł imię |
Sex | Płeć. Oznaczenia: male - mężczyzna, female -kobieta |
Age | Wiek |
SibSp | Liczba rodzeństwa lub małżonków na pokładzie |
Parch | Liczba rodziców lub dzieci na pokładzie |
Ticket | Numer biletu |
Fare | Opłata za bilet |
Cabin | Numer kabiny |
Embarked | Port źródłowy. Oznaczenia: C -Cherbourk, Q - Quenstown, S - Southampton |
Kolejno wyświetlamy podstawowe informacje o danych, jak nazwa, typ i przykłady wartości:
## 'data.frame': 1309 obs. of 12 variables:
## $ PassengerId: int 1 2 3 4 5 6 7 8 9 10 ...
## $ Survived : int 0 1 1 1 0 0 0 0 1 1 ...
## $ Pclass : int 3 1 3 1 3 3 1 3 3 2 ...
## $ Name : chr "Braund, Mr. Owen Harris" "Cumings, Mrs. John Bradley (Florence Briggs Thayer)" "Heikkinen, Miss. Laina" "Futrelle, Mrs. Jacques Heath (Lily May Peel)" ...
## $ Sex : chr "male" "female" "female" "female" ...
## $ Age : num 22 38 26 35 35 NA 54 2 27 14 ...
## $ SibSp : int 1 1 0 1 0 0 0 3 0 1 ...
## $ Parch : int 0 0 0 0 0 0 0 1 2 0 ...
## $ Ticket : chr "A/5 21171" "PC 17599" "STON/O2. 3101282" "113803" ...
## $ Fare : num 7.25 71.28 7.92 53.1 8.05 ...
## $ Cabin : chr "" "C85" "" "C123" ...
## $ Embarked : chr "S" "C" "S" "S" ...
oraz podstawowe statystyki
## PassengerId Survived Pclass Name
## Min. : 1 Min. :0.0000 Min. :1.000 Length:1309
## 1st Qu.: 328 1st Qu.:0.0000 1st Qu.:2.000 Class :character
## Median : 655 Median :0.0000 Median :3.000 Mode :character
## Mean : 655 Mean :0.3838 Mean :2.295
## 3rd Qu.: 982 3rd Qu.:1.0000 3rd Qu.:3.000
## Max. :1309 Max. :1.0000 Max. :3.000
## NA's :418
## Sex Age SibSp Parch
## Length:1309 Min. : 0.17 Min. :0.0000 Min. :0.000
## Class :character 1st Qu.:21.00 1st Qu.:0.0000 1st Qu.:0.000
## Mode :character Median :28.00 Median :0.0000 Median :0.000
## Mean :29.88 Mean :0.4989 Mean :0.385
## 3rd Qu.:39.00 3rd Qu.:1.0000 3rd Qu.:0.000
## Max. :80.00 Max. :8.0000 Max. :9.000
## NA's :263
## Ticket Fare Cabin Embarked
## Length:1309 Min. : 0.000 Length:1309 Length:1309
## Class :character 1st Qu.: 7.896 Class :character Class :character
## Mode :character Median : 14.454 Mode :character Mode :character
## Mean : 33.295
## 3rd Qu.: 31.275
## Max. :512.329
## NA's :1
Kategoryzacja danych
Część danych jest w postaci tekstowej i trzeba je skategoryzować. W tym celu dodajemy nowe pola w naszej tabeli: Sex2 i Embarked2:
Oto kilka pierwszych wierszy nowej tabeli titanic_calosc
PassengerId | Survived | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Cabin | Embarked | Sex2 | Embarked2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | 3 | Braund, Mr. Owen Harris | male | 22 | 1 | 0 | A/5 21171 | 7.2500 | S | 2 | 4 | |
2 | 1 | 1 | Cumings, Mrs. John Bradley (Florence Briggs Thayer) | female | 38 | 1 | 0 | PC 17599 | 71.2833 | C85 | C | 1 | 2 |
3 | 1 | 3 | Heikkinen, Miss. Laina | female | 26 | 0 | 0 | STON/O2. 3101282 | 7.9250 | S | 1 | 4 | |
4 | 1 | 1 | Futrelle, Mrs. Jacques Heath (Lily May Peel) | female | 35 | 1 | 0 | 113803 | 53.1000 | C123 | S | 1 | 4 |
5 | 0 | 3 | Allen, Mr. William Henry | male | 35 | 0 | 0 | 373450 | 8.0500 | S | 2 | 4 | |
6 | 0 | 3 | Moran, Mr. James | male | NA | 0 | 0 | 330877 | 8.4583 | Q | 2 | 3 |
Widzimy, że mamy następujące dane w nowych kolumnach
Embarked | Embarked2 |
---|---|
S | 3 |
Q | 2 |
C | 1 |
Sex | Sex2 |
Male | 2 |
Female | 1 |
Analiza brakujących danych
Wyświetlimy teraz informacje, które pole zawiera brakujące dane NA i ile jest tych braków:
## PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin
## 1 0 418 0 0 0 263 0 0 0 1 0
## Embarked Sex2 Embarked2
## 1 0 0 0
Widzimy, że pole Survived zawiera 418 braków danych, Age - 263 braki danych, a Fare - 1 brak danych. Ponadto jeśli pogrupujemy naszą tabelę po zmiennej Embarked, to zauważymy, że występują tu też dwa braki danych:
## # A tibble: 4 x 2
## Embarked cnt
## <chr> <int>
## 1 "S" 914
## 2 "C" 270
## 3 "Q" 123
## 4 "" 2
## [1] PassengerId Survived Pclass Name Sex Age
## [7] SibSp Parch Ticket Fare Cabin Embarked
## [13] Sex2 Embarked2
## <0 wierszy> (lub 'row.names' o zerowej długości)
## PassengerId Survived Pclass Name Sex
## 1 62 1 1 Icard, Miss. Amelie female
## 2 830 1 1 Stone, Mrs. George Nelson (Martha Evelyn) female
## Age SibSp Parch Ticket Fare Cabin Embarked Sex2 Embarked2
## 1 38 0 0 113572 80 B28 1 1
## 2 62 0 0 113572 80 B28 1 1
Zastępujemy najpierw “” w polu Embarked przez NA
## PassengerId Survived Pclass Name Sex
## 1 62 1 1 Icard, Miss. Amelie female
## 2 830 1 1 Stone, Mrs. George Nelson (Martha Evelyn) female
## Age SibSp Parch Ticket Fare Cabin Embarked Sex2 Embarked2
## 1 38 0 0 113572 80 B28 <NA> 1 1
## 2 62 0 0 113572 80 B28 <NA> 1 1
Wówczas nasze zestawienie brakujących wartości wygląda następujaco
## PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin
## 1 0 418 0 0 0 263 0 0 0 1 0
## Embarked Sex2 Embarked2
## 1 2 0 0
W kwestii Cabin
## cnt
## 1 1014
mamy aż 1014 braków danych na 1309 obserwacji. W związku z tym postanowiłyśmy pominąć pole Cabin w naszych analizach.
W związku z tym w dalszej części zajmiemy się usuwaniem braków danych dla zmiennych Age, Fare i Embarked.
Wypełnianie braków danych w Embarked
Pole Embarked ma tylko dwa braki danych. Wynika z tego, że można Embarked wypełnić wartościami z wierwszy o zbliżonych wartościach. Najpierw sprawdzimy od czego ona najbardziej zależy Embarked.
## Embarked2 Fare Pclass Sex2 Age SibSp Parch
## 1.00000000 0.30310839 0.28198941 0.11599775 0.09064651 0.04836727 0.01411680
Badając korelację zmiennej Embarked z pozostałymi zmiennymi, widzimy, że zależy ona najbardziej o zmiennych: Fare, Pclass i Sex2. A zatem potrzebujemy dla cClass, Sex2 obliczyć Fare i zobaczyć który Embarked jest najbliżej. Najpierw wyświetlmy dane tych pasazerów, u których są braki danych w Embarked:
PassengerId | Survived | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Embarked | Sex2 | Embarked2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
62 | 1 | 1 | Icard, Miss. Amelie | female | 38 | 0 | 0 | 113572 | 80 | NA | 1 | 1 |
830 | 1 | 1 | Stone, Mrs. George Nelson (Martha Evelyn) | female | 62 | 0 | 0 | 113572 | 80 | NA | 1 | 1 |
Widzimy, że są to kobiety podróżujace pierwszą klasą, a ich opłata wynosi 80. Wówczas wybieramy dane, które właśnie spełniają te warunki.
## # A tibble: 4 x 5
## Embarked sum count mean median
## <chr> <dbl> <int> <dbl> <dbl>
## 1 C 8442. 71 119. 83.2
## 2 Q 180 2 90 90
## 3 S 6974. 69 101. 78.8
## 4 <NA> 160 2 80 80
Najbliżej 80 jest mediana z portu źródłowego Southampton. Możemy to jeszcze ilustrować na wykresie, gdzie czerwoną linią jest zaznaczony poziom Fare=80.
Wynika stąd, że brakujące wrtości w polu Embarked można zastąpić wartością S.
## 'data.frame': 1309 obs. of 13 variables:
## $ PassengerId: int 1 2 3 4 5 6 7 8 9 10 ...
## $ Survived : int 0 1 1 1 0 0 0 0 1 1 ...
## $ Pclass : int 3 1 3 1 3 3 1 3 3 2 ...
## $ Name : chr "Braund, Mr. Owen Harris" "Cumings, Mrs. John Bradley (Florence Briggs Thayer)" "Heikkinen, Miss. Laina" "Futrelle, Mrs. Jacques Heath (Lily May Peel)" ...
## $ Sex : chr "male" "female" "female" "female" ...
## $ Age : num 22 38 26 35 35 NA 54 2 27 14 ...
## $ SibSp : int 1 1 0 1 0 0 0 3 0 1 ...
## $ Parch : int 0 0 0 0 0 0 0 1 2 0 ...
## $ Ticket : chr "A/5 21171" "PC 17599" "STON/O2. 3101282" "113803" ...
## $ Fare : num 7.25 71.28 7.92 53.1 8.05 ...
## $ Embarked : chr "S" "C" "S" "S" ...
## $ Sex2 : num 2 1 1 1 2 2 2 2 1 1 ...
## $ Embarked2 : num 3 1 3 3 3 2 3 3 3 1 ...
Wypełnianie braków danych w Age
W przypadku zmiennej Age uzupełniamy braki danych wartością średnią zmiennej Age:
Wypełnianie braków danych w Fare
Zaczynamy od wyświetlenia tej obserwacji, gdzie Fare jest NA i od sprawdzenia z czym zmienna Fare jest nabardziej skorelowana:
PassengerId | Survived | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Embarked | Sex2 | Embarked2 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1044 | NA | 3 | Storey, Mr. Thomas | male | 60.5 | 0 | 0 | 3701 | NA | S | 2 | 3 |
## Fare Pclass Embarked2 Parch Sex2 Age SibSp
## 1.0000000 0.5586287 0.2380054 0.2215387 0.1855230 0.1718929 0.1602383
Widzimy, że zmienna Fare jest skorelowana z Pclass, Embarked2, Parch Sex2 i Age. A zatem biorąc pod uwagę, że nasz pasażer, dla którego mamy brak opłaty, podróżuje klasą 3, wyruszył z portu w Southampton, jest mężczyzną i ma 60,5 roku. A zatem szukamy pasujących danych:
## # A tibble: 6 x 5
## Age sum count mean median
## <dbl> <dbl> <int> <dbl> <dbl>
## 1 51 22.9 3 7.62 7.75
## 2 55.5 8.05 1 8.05 8.05
## 3 59 7.25 1 7.25 7.25
## 4 60.5 NA 1 NA NA
## 5 61 6.24 1 6.24 6.24
## 6 74 7.78 1 7.78 7.78
Można przypuszczać że osoby w tym wieku średnio płaciły między 6.24 a 7.25 funtów. Możemy w takim razie przyjąć średnią z tych dwóch wartości. Różnica między 6.24 a 7.25 jest zbyt mała, aby mieć istotny wpływ w porównaniu do całego obszaru cen (od 0 do 512, gdzie średnia to 33 a mediana to 14).
Ostatecznies nasze zestawienie brakujących wartości wygląda następujaco
## PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Embarked
## 1 0 418 0 0 0 0 0 0 0 0 0
## Sex2 Embarked2
## 1 0 0
Nowe kategorie tytułów
Na podtawie danych tytułów, tworzymy cztery nowe kategorie: Miss, Mrs, Mr, Other
## # A tibble: 18 x 2
## Title cnt
## <chr> <int>
## 1 Mr 757
## 2 Miss 260
## 3 Mrs 197
## 4 Master 61
## 5 Dr 8
## 6 Rev 8
## 7 Col 4
## 8 Major 2
## 9 Mlle 2
## 10 Ms 2
## 11 Capt 1
## 12 Don 1
## 13 Dona 1
## 14 Jonkheer 1
## 15 Lady 1
## 16 Mme 1
## 17 Sir 1
## 18 the 1
## # A tibble: 5 x 2
## Title2 cnt
## <chr> <int>
## 1 Mr 757
## 2 Miss 260
## 3 Mrs 197
## 4 Master 61
## 5 Other 34
Po obróbce mamy tabelę do dalszej analizy
PassengerId | Survived | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Embarked | Sex2 | Embarked2 | Title | Title2 | TitleN |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | 3 | Braund, Mr. Owen Harris | male | 22.00000 | 1 | 0 | A/5 21171 | 7.2500 | S | 2 | 3 | Mr | Mr | 3 |
2 | 1 | 1 | Cumings, Mrs. John Bradley (Florence Briggs Thayer) | female | 38.00000 | 1 | 0 | PC 17599 | 71.2833 | C | 1 | 1 | Mrs | Mrs | 4 |
3 | 1 | 3 | Heikkinen, Miss. Laina | female | 26.00000 | 0 | 0 | STON/O2. 3101282 | 7.9250 | S | 1 | 3 | Miss | Miss | 2 |
4 | 1 | 1 | Futrelle, Mrs. Jacques Heath (Lily May Peel) | female | 35.00000 | 1 | 0 | 113803 | 53.1000 | S | 1 | 3 | Mrs | Mrs | 4 |
5 | 0 | 3 | Allen, Mr. William Henry | male | 35.00000 | 0 | 0 | 373450 | 8.0500 | S | 2 | 3 | Mr | Mr | 3 |
6 | 0 | 3 | Moran, Mr. James | male | 29.88114 | 0 | 0 | 330877 | 8.4583 | Q | 2 | 2 | Mr | Mr | 3 |
Podstawowe wykresy
Ile osób przeżyło (1), a ile nie przeżyło (0):
##
## 0 1
## 549 342
Na podstawie wykresu widać, że szanse na przeżycie były małe.
Ile jest kobiet, a ile mężczyzn:
##
## female male
## 466 843
### Ile osób wsiadło w każdym porcie
##
## C Q S
## 270 123 916
### Ile osób podróżowało samych, a ile z rodziną:
##
## 0 1 2 3 4 5 8
## 891 319 42 20 22 6 9
##
## 0 1 2 3 4 5 6 9
## 1002 170 113 8 6 6 2 2
Ile osób było w każdej klasie
##
## 1 2 3
## 323 277 709
Najwięcej osób podróżowało w 3 klasie.
Osoby z 3 klasy są najmłodsze i rozrzut jest najmniejszy ze wszystkich. 50% osób w pierwszej klasie znajduje się między 30 a 50 rokiem życia
Histogram zmiennej Age
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Analiza przeżycia - związek zmiennej Survived z pozostałymi
Zwizualizujmy, jak wskaźniki przeżycia różniły się w zależności od płci.
Czy przeżyło więcej mężczyzn czy kobiet?
##
## female male
## 466 843
W oparciu o powyższy wykres, kobiety miały większe szanse na przeżycie.
Sprawdźmy zależność przeżycia w odniesieniu do wieku
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Dzieci poniżej 5 lat miały większe szanse na przeżycie. Pasażerowie w wieku 20-40 lat byli bardziej narażeni na śmierć. Pasażerowie w wieku około 65 - 75 lat mieli prawie zerowe szanse na przeżycie. Przeżył jeden pasażer w wieku 80 lat. Pasażerowie, którzy przeżyli wydają się mieć niższą medianę wieku.
Sprawdźmy współczynnik przeżycia według klasy pasażerskiej.
Przeżyło najwiecej osób, którzy kupili bilet w klasie pierwszej.
Zbadamy, jak różne zmienne oddziaływały na siebie i na wskaźnik przeżycia.
Kobiety we wszystkich klasach miały większe szanse na przeżycie w porównaniu do mężczyzn.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
W danych dotyczących Titanica, wiek, płeć i klasa pasażerów były ważnymi czynnikami predykcyjnymi przeżycia. Najwięcej umarło mężczyzn w 3 klasie w wieku między 18 a 50 rokiem życia.
Spojrzymy jeszcze na korelacje między zmiennymi
###Bardziej zaawansowany heatmap oferuje ggplot, trzeba tylko wynik korelacji (który jest typu matrix) zamienić na data.frame. Można to zrobić przez funkcje melt
###Sprawdzimy od czego Survived najbardziej zależy.
x | |
---|---|
Survived | 1.0000000 |
Sex2 | 0.5433514 |
Pclass | 0.3384810 |
Fare | 0.2573065 |
Embarked2 | 0.1676753 |
Parch | 0.0816294 |
Age | 0.0703227 |
SibSp | 0.0353225 |
Tak jak w analizie powyżej szansa przeżycia zależała przede wszytskim od płci, klasy i ceny biletu.
Ciekawym wykresem jest Performance Analytics. Pozwala na jedynm wykresie pokazać histogram, zależności między zmiennymi i jak zmieniają się dane w zależności od zmiennych.
Po przekątnej mamy histogram, po lewej na dole wykresy punktowe i szacowany wykres zależności między punktami. Np: wiersz Survived z kolumną Age widzimy, że wraz ze wzrostem wieku przeżywalność spada, odwrotnie jak w przypadku opłaty za bilet Fare, wraz ze wzrostem przeżywalność rośnie.
Testy istotności
Wybieramy próbkę do testów - 10% danych
PassengerId | Survived | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Embarked | Sex2 | Embarked2 | Title | Title2 | TitleN |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
415 | 1 | 3 | Sundman, Mr. Johan Julian | male | 44.0 | 0 | 0 | STON/O 2. 3101269 | 7.9250 | S | 2 | 3 | Mr | Mr | 3 |
463 | 0 | 1 | Gee, Mr. Arthur H | male | 47.0 | 0 | 0 | 111320 | 38.5000 | S | 2 | 3 | Mr | Mr | 3 |
179 | 0 | 2 | Hale, Mr. Reginald | male | 30.0 | 0 | 0 | 250653 | 13.0000 | S | 2 | 3 | Mr | Mr | 3 |
526 | 0 | 3 | Farrell, Mr. James | male | 40.5 | 0 | 0 | 367232 | 7.7500 | Q | 2 | 2 | Mr | Mr | 3 |
195 | 1 | 1 | Brown, Mrs. James Joseph (Margaret Tobin) | female | 44.0 | 0 | 0 | PC 17610 | 27.7208 | C | 1 | 1 | Mrs | Mrs | 4 |
938 | NA | 1 | Chevre, Mr. Paul Romaine | male | 45.0 | 0 | 0 | PC 17594 | 29.7000 | C | 2 | 1 | Mr | Mr | 3 |
Związek pomiędzy klasą a wiekiem
Widzimy, że w klasie 3 przeważały najmłodsze osoby, a w klasie 1 – najstarsze P-value < 0,05, więc odrzucamy \(H_0\), że średni wiek w każdej klasie jest taki sam. Wynika stąd, że istniej zależność miedzy klasą a wiekiem.
Związek pomiędzy opłatą a płcią
P-value >0,05, więc nie ma podstaw do odrzucenia \(H_0\), że wartość oczekiwana ceny bilety dla kobiet= wartość oczekiwana ceny biletu dla mężczyzn. Wynika z tego, że płeć nie ma większego wpływu na cenę biletu.
Związek pomiędzy wiekiem a płcią
Nie ma większych różnic w rozkładzie wieku kobiet i mężczyzn. P-value>0,05, więc nie ma większego znaczenia płeć na średni wiek pasażera.
Testujemy hipotezę \(H_0:\) średni wiek pasażera wynosi 30 lat
p-value wynosi 0,9, więc nie ma podstaw do odrzucenia \(H_0\).
to samo ale w troszkę inny sposób:
Testy parametryczne są słabo odporne na zakłócenia (np. brak normalności zmiennej, obserwacje odstające). Sprawdzimy, czy zmienna Age ma rozkład normalny. Wykonamy dwa testy: Kołmogorowa-Smirnowa i Shapiro-Wilka.
##
## One-sample Kolmogorov-Smirnov test
##
## data: probka$Age
## D = 0.96943, p-value = 6.661e-16
## alternative hypothesis: two-sided
##
## Shapiro-Wilk normality test
##
## data: probka$Age
## W = 0.96408, p-value = 0.001544
W obu przypadkach p-value jest mniejsze od 0,05, wiec odrzucamy Hipoteze zerową o normalności rozkładu.Sprawdżmy zatem test nieparametryczny do przetestowania hipotezy \(H_0:\) średni wiek pasażera wynosi 30 lat. Tym razem p-value=0,25 > 0,05. Nadal nie mamy podstaw do odrzucenia \(H_0\).
Testujemy hipotezę \(H_0:\) średni wiek pasażera wynosi 50 lat
p-value wynosi \(1,24\cdot 10^{-35}\), więc odrzucamy \(H_0\).
Testujemy hipotezę \(H_0:\) średna opłata za rejs wynosi 40
p-value wynosi 0,79, więc nie ma podstaw do odrzucenia \(H_0\).
Związek pomiędzy tytułem a opłatą
P-value=0,6>0,05, więc nie ma podstaw do odrzucenia \(H_0\), że wartości oczekiwane z opłaty są równe. Wynika stąd, że tytuł nie ma większego wpływu na cenę biletu.
Związek pomiędzy opłatą a płcią
Podobnie jak poprzednio p-value>0,05, wynika stąd że płeć nie ma większego wpływu na cenę biletu.
Związek pomiędzy klasą i opłatą
Tym razem p-value<0,05, a zatem odrzucamy \(H_0\) o tym, że wartośći oczekiwane opłaty są równe w każdej klasie. Zatem klasa ma istotny wpływ na cenę biletu. Najwyższą opłatę zapłacimy jak będziemy podróżować klasą 1
Związek pomiędzy przeżywalnością a płcią
Tutaj testujemy \(H_0\), że wartości oczekiwane sa sobie równe. P-value<0,05, więc odrzucamy H0. A zatem płeć ma decydujący wpływ na przeżycie. Największe szanse na przeżycie mają kobiety
Zależność przeżycia od klasy
P-value=0,05, więc odrzucamy H0. Największe szanse na przeżycie mamy podróżując klasą 1, a najmniejsze - klasą 3.
Zależność klasy od tytułu
Tym razem \(H_0\): porównywane zmienne są niezależne, HA: są zależne. P-valeu>0,05, więc nie ma podstaw do odrzucenia \(H_0\), a zatem przynależność do danej klasy nie zależy od tytułu.
Zależność klasy od płci
\(H_0:\) zmienna klasa i płeć są niezależne \(H_A:\) istnieje związek między przynależnością do klasy a płcią p-value=0,38 czyli >0,05 wniosek: brak podstaw do odrzucenia \(H_0\) czyli przynależność do danej klasy nie jest powiązana z rodzajem płci
Wartości p=0,08; p=0,59; p=1,62e-03 dotyczą testu dobroci dopasowania- sprawdza on czy dane próbki pochodzą z określonego rozkładu teoretycznego (czyli z góry wiedzieliśmy czy założyliśmy jakie proporcje stanowili mężczyźni i kobiety w danej klasie). Weryfikujemy w tym przypadku czy w poszczególnych klasach równo (po 50%- jeśli nie wskażemy inaczej) rozkłada się płeć mężczyźni i kobiety. Przy klasie 1 i 2 brak podstaw do odrzucenia \(H_0\), w klasie 3 odrzucamy H0 - mężczyźni istotnie statystycznie przewyższają w tej klasie liczebność kobiet.
Zależność przeżycia od płci
\(H_0:\) zmienna przeżycie i płeć są niezależne \(H_A:\) istnieje związek między przeżyciem a płcią p-value<0,05 wniosek: odrzucamy \(H_0\) czyli przeżycie jest powiązane z rodzajem płci. Ponadto w testach dobroci dopasowania odrzucamy \(H_0\) – np. w przypadku mężczyzn: ci co zginęli istotnie statystycznie przewyższają w tej klasie liczebność tych co przeżyli.
Widzimy, że kobiety mają większe szanse na przeżecie (“women first”)
Zależność przeżycia od klasy, którą się podróżuje
Tutaj p-value < 0,05, więc odrzucamy \(H_0\), a zatem istnieje zależność między przeżyciem a klasą podróży. Największe szanse na przeżycie mają pasażerowie klasy 1 Przy klasie 1 i 2 brak podstaw do odrzucenia H0, w klasie 3 odrzucamy \(H_0\) – ci co zginęli istotnie statystycznie przewyższają w tej klasie liczebność tych co przeżyli.
P-value=0,2>0,05, więc odrzucamy \(H_0\) – ci co zginęli istotnie statystycznie przewyższają liczebność tych co przeżyli.