Tenggelamnya Titanic adalah salah satu kapal karam paling terkenal dalam sejarah.
Pada tanggal 15 April 1912, selama pelayaran perdananya, RMS Titanic yang secara luas dianggap “tidak dapat tenggelam” tenggelam setelah bertabrakan dengan gunung es. Sayangnya, tidak ada cukup sekoci untuk semua penumpang, mengakibatkan kematian 1502 dari 2224 penumpang dan awak.
Meskipun ada beberapa unsur keberuntungan yang terlibat dalam bertahan hidup, tampaknya beberapa kelompok orang lebih mungkin untuk bertahan hidup daripada yang lain.
Dalam tantangan ini, kami meminta Anda untuk membangun model prediktif yang menjawab pertanyaan: “orang seperti apa yang lebih mungkin bertahan hidup?” menggunakan data penumpang (yaitu nama, usia, jenis kelamin, kelas sosial ekonomi, dll).
You can also embed plots, for example:
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5 v purrr 0.3.4
## v tibble 3.1.6 v dplyr 1.0.8
## v tidyr 1.2.0 v stringr 1.4.0
## v readr 2.1.2 v forcats 0.5.1
## Warning: package 'tidyr' was built under R version 4.1.3
## Warning: package 'dplyr' was built under R version 4.1.3
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag() masks stats::lag()
## Rows: 891 Columns: 12
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## chr (5): Name, Sex, Ticket, Cabin, Embarked
## dbl (7): PassengerId, Survived, Pclass, Age, SibSp, Parch, Fare
##
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.
## spec_tbl_df [891 x 12] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ PassengerId: num [1:891] 1 2 3 4 5 6 7 8 9 10 ...
## $ Survived : num [1:891] 0 1 1 1 0 0 0 0 1 1 ...
## $ Pclass : num [1:891] 3 1 3 1 3 3 1 3 3 2 ...
## $ Name : chr [1:891] "Braund, Mr. Owen Harris" "Cumings, Mrs. John Bradley (Florence Briggs Thayer)" "Heikkinen, Miss. Laina" "Futrelle, Mrs. Jacques Heath (Lily May Peel)" ...
## $ Sex : chr [1:891] "male" "female" "female" "female" ...
## $ Age : num [1:891] 22 38 26 35 35 NA 54 2 27 14 ...
## $ SibSp : num [1:891] 1 1 0 1 0 0 0 3 0 1 ...
## $ Parch : num [1:891] 0 0 0 0 0 0 0 1 2 0 ...
## $ Ticket : chr [1:891] "A/5 21171" "PC 17599" "STON/O2. 3101282" "113803" ...
## $ Fare : num [1:891] 7.25 71.28 7.92 53.1 8.05 ...
## $ Cabin : chr [1:891] NA "C85" NA "C123" ...
## $ Embarked : chr [1:891] "S" "C" "S" "S" ...
## - attr(*, "spec")=
## .. cols(
## .. PassengerId = col_double(),
## .. Survived = col_double(),
## .. Pclass = col_double(),
## .. Name = col_character(),
## .. Sex = col_character(),
## .. Age = col_double(),
## .. SibSp = col_double(),
## .. Parch = col_double(),
## .. Ticket = col_character(),
## .. Fare = col_double(),
## .. Cabin = col_character(),
## .. Embarked = col_character()
## .. )
## - attr(*, "problems")=<externalptr>
Variable pclass:Tiket Class A proxy for socio-economic status (SES) 1. 1st = Upper 2. 2nd = Middle 3. 3rd = Lower
age: Age is fractional if less than 1. If the age is estimated, is it in the form of xx.5
sibsp: The dataset defines family relations in this way… Sibling = brother, sister, stepbrother, stepsister Spouse = husband, wife (mistresses and fiancés were ignored)
parch: The dataset defines family relations in this way… Parent = mother, father Child = daughter, son, stepdaughter, stepson Some children travelled only with a nanny, therefore parch=0 for them.
head(train_data)
## # A tibble: 6 x 12
## PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin
## <dbl> <dbl> <dbl> <chr> <chr> <dbl> <dbl> <dbl> <chr> <dbl> <chr>
## 1 1 0 3 Braund~ male 22 1 0 A/5 2~ 7.25 <NA>
## 2 2 1 1 Cuming~ fema~ 38 1 0 PC 17~ 71.3 C85
## 3 3 1 3 Heikki~ fema~ 26 0 0 STON/~ 7.92 <NA>
## 4 4 1 1 Futrel~ fema~ 35 1 0 113803 53.1 C123
## 5 5 0 3 Allen,~ male 35 0 0 373450 8.05 <NA>
## 6 6 0 3 Moran,~ male NA 0 0 330877 8.46 <NA>
## # ... with 1 more variable: Embarked <chr>
Membuang data yang tidak informatif
train_data <- train_data [,-c(1,9,10,11,12)]
train_data
## # A tibble: 891 x 7
## Survived Pclass Name Sex Age SibSp Parch
## <dbl> <dbl> <chr> <chr> <dbl> <dbl> <dbl>
## 1 0 3 Braund, Mr. Owen Harris male 22 1 0
## 2 1 1 Cumings, Mrs. John Bradley (Florence~ fema~ 38 1 0
## 3 1 3 Heikkinen, Miss. Laina fema~ 26 0 0
## 4 1 1 Futrelle, Mrs. Jacques Heath (Lily M~ fema~ 35 1 0
## 5 0 3 Allen, Mr. William Henry male 35 0 0
## 6 0 3 Moran, Mr. James male NA 0 0
## 7 0 1 McCarthy, Mr. Timothy J male 54 0 0
## 8 0 3 Palsson, Master. Gosta Leonard male 2 3 1
## 9 1 3 Johnson, Mrs. Oscar W (Elisabeth Vil~ fema~ 27 0 2
## 10 1 2 Nasser, Mrs. Nicholas (Adele Achem) fema~ 14 1 0
## # ... with 881 more rows
anyNA(train_data)
## [1] TRUE
median(train_data$Age,na.rm=TRUE)
## [1] 28
train_data
## # A tibble: 891 x 7
## Survived Pclass Name Sex Age SibSp Parch
## <dbl> <dbl> <chr> <chr> <dbl> <dbl> <dbl>
## 1 0 3 Braund, Mr. Owen Harris male 22 1 0
## 2 1 1 Cumings, Mrs. John Bradley (Florence~ fema~ 38 1 0
## 3 1 3 Heikkinen, Miss. Laina fema~ 26 0 0
## 4 1 1 Futrelle, Mrs. Jacques Heath (Lily M~ fema~ 35 1 0
## 5 0 3 Allen, Mr. William Henry male 35 0 0
## 6 0 3 Moran, Mr. James male NA 0 0
## 7 0 1 McCarthy, Mr. Timothy J male 54 0 0
## 8 0 3 Palsson, Master. Gosta Leonard male 2 3 1
## 9 1 3 Johnson, Mrs. Oscar W (Elisabeth Vil~ fema~ 27 0 2
## 10 1 2 Nasser, Mrs. Nicholas (Adele Achem) fema~ 14 1 0
## # ... with 881 more rows
Memeriksa plot untuk mereka yang bertahan terhadap variabel yang ada untuk memahami gambar.
#Survival based on Sex
ggplot(train_data,aes(Survived,fill=Sex))+geom_bar(position="dodge2")+facet_wrap(~Survived)
Dapat dilihat bahwa perempuan (female) lebih memiliki kesempatan untuk hidup atau bertahan daripada laki-laki
#Based on Pclass
ggplot(train_data,aes(Survived,fill=factor(Pclass)))+geom_bar(position="dodge2")
Jumlah penumpang di Pclass=3 adalah yang tertinggi dan memiliki tingkat kelangsungan hidup terendah. Kelas 1 memiliki tingkat kelangsungan hidup tertinggi. Secara keseluruhan- ada korelasi yang kuat antara kelas dan kelangsungan hidup.
ggplot(train_data,aes(Age))+geom_histogram(bins=10,fill="white",color=4)+facet_wrap(~Survived)
## Warning: Removed 177 rows containing non-finite values (stat_bin).
dapat dilihat bahwa tingkat kelangsungan hidup yang lebih tinggi kecuali pada usia di antara anak-anak di bawah 10 tahun dan orang dewasa di atas 60 tahun. Secara keseluruhan, ada korelasi kuat antara usia dan tingkat kelangsungan hidup. Faktor ini juga harus kita pertimbangkan.
ggplot(train_data,aes(Survived,fill=factor(SibSp)))+geom_bar(position="dodge")+facet_wrap(~Survived)
Kami kembali melihat bahwa orang-orang di SibSp 0 memiliki peluang lebih rendah untuk bertahan hidup dibandingkan dengan orang-orang di SibSp 1. Ada korelasinya. Tidak sekuat tapi tetap saja.
#Parch
ggplot(train_data,aes(Survived,fill=factor(Parch)))+geom_bar(position="dodge2")+facet_wrap(~Survived)
Datany mirip dengan SipSp