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.