Titanic adalah kapal penumpang Britania Raya yang tenggelam pada tahun 1912 saat berlayar menuju New York, Amerika Serikat. Kapal ini memiliki kapasitas 2.224 Penumpang, namun sayangnya, kapal terbesar di dunia pada eranya ini hanya memiliki sekoci yang menampung 1.178 penumpang saja. Titanic merupakan bencana maritim di masa damai paling mematikan di dunia.
Kaggle, sebagai perusahaan Data Sceintist subsidiari Google LLC, menginisiasi kompetisi Machine Learning agar peserta dapat menemukan Predictive Model yang menjawab pertanyaan: Penumpang yang seperti apakah yang berkemungkinan besar selamat dari tenggelamnya kapal Titanic? Tugas ini memakai dataset Train.csv dari kompetisi tersebut sebagai latihan Data Wrangling dan Eksplorasi Data berdasarkan materi yang diberikan oleh Algortima Academy.
Berikut konten serta nomor kolom menurut struktur data titanic:
1 = PassangerId
2 = Survived
3 = Pclass
4 = Name
5 = Sex
6 = Age
7 = SibSp
8 = Parch
9 = Ticket
10 = Fare
11 = Cabin
12 = Embarked
# Data input and Checking Data
titanic <- read.csv("/Users/dinnah/Documents/MASTER DATA FILE/LBB/titanic/train.csv")
str(titanic)## 'data.frame': 891 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 : Factor w/ 891 levels "Abbing, Mr. Anthony",..: 109 191 358 277 16 559 520 629 417 581 ...
## $ Sex : Factor w/ 2 levels "female","male": 2 1 1 1 2 2 2 2 1 1 ...
## $ 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 : Factor w/ 681 levels "110152","110413",..: 524 597 670 50 473 276 86 396 345 133 ...
## $ Fare : num 7.25 71.28 7.92 53.1 8.05 ...
## $ Cabin : Factor w/ 148 levels "","A10","A14",..: 1 83 1 57 1 1 131 1 1 1 ...
## $ Embarked : Factor w/ 4 levels "","C","Q","S": 4 2 4 4 4 3 4 4 4 2 ...
## [1] 891 12
## PassengerId Survived Pclass Name Sex Age
## 0 0 0 0 0 177
## SibSp Parch Ticket Fare Cabin Embarked
## 0 0 0 0 0 0
dari data ini: 1. Data Passanger ID, Name, SibSP, Parch, Ticket tidak akan saya gunakan 2. Kolom Age memiliki nilai NA sebanyak 177, maka juga tidak akan saya gunakan 3. Mengubah data integral menjadi factor pada kolom Survived dan Pclass
## 'data.frame': 891 obs. of 6 variables:
## $ Survived: int 0 1 1 1 0 0 0 0 1 1 ...
## $ Pclass : int 3 1 3 1 3 3 1 3 3 2 ...
## $ Sex : Factor w/ 2 levels "female","male": 2 1 1 1 2 2 2 2 1 1 ...
## $ Fare : num 7.25 71.28 7.92 53.1 8.05 ...
## $ Cabin : Factor w/ 148 levels "","A10","A14",..: 1 83 1 57 1 1 131 1 1 1 ...
## $ Embarked: Factor w/ 4 levels "","C","Q","S": 4 2 4 4 4 3 4 4 4 2 ...
# Mengubah data integral menjadi factor
titanic1$Survived <- sapply(as.character(titanic1$Survived), switch,
"0" = "Not Survived",
"1" = "Survived")
titanic1$Survived <- as.factor(titanic1$Survived)# Memberi nama masing-masing data Pclass
titanic1$Pclass <- sapply(as.character(titanic1$Pclass), switch,
"1" = "1st Class",
"2" = "2nd Class",
"3" = "3rd Class")
titanic1$Pclass <- as.factor(titanic1$Pclass)
titanic1Summary dari grafik di atas:
- Kebanyakan penumpang Pria tidak selamat dibanding penumpang wanita
- Dari penumpang yang selamat, wanita lebih banyak jumlahnya dibanding pria
- Penumpang yang tidak selamat lebih banyak dibanding yang selamat
# Subset data penumpang yang Survived
titanic_survived <- titanic1[titanic1$Survived == "Survived",]
titanic_survived## [1] "1st Class" "2nd Class" "3rd Class"
# Tampilan data penumpang selamat berdasarkan klasifikasi kelas penumpang
ggplot(data = titanic_survived, mapping = aes(x = Pclass,
y = Survived)) +
geom_col(aes(fill = Pclass), show.legend = F) +
labs(title = "Kelas Penumpang yang Selamat",
x = "Kelas Penumpang",
y = "Selamat",
caption = "Titanic")Summary:
- Penumpang Kelas 1 paling banyak selamat
- Penumpang Kelas 2 paling sedikit yang selamat
ggplot(data = titanic_survived, mapping = aes(x = Pclass,
y = Survived)) +
geom_col(aes(fill = Sex), show.legend = T) +
labs(title = "Kelas Penumpang yang Selamat",
x = "Kelas Penumpang",
y = "Selamat",
caption = "Titanic") Summary:
- Penumpang Perempuan lebih banyak yang selamat dibanding penumpang laki-laki di semua kategori Kelas Penumpang
ggplot(data = titanic_survived, mapping = aes(x = Pclass,
y = Survived)) +
geom_col(aes(fill = Embarked), show.legend = T) +
labs(title = "Kelas Penumpang yang Selamat",
x = "Kelas Penumpang",
y = "Selamat",
caption = "Titanic") Summary:
- Mayoritas penumpang selamat berangkat dari Embarkasi S (Southhampton)
# Subset data penumpang yang tidak selamat
titanic_notsurvived <- titanic1[titanic1$Survived == "Not Survived",]
titanic_notsurvived# Tampilan data penumpang tidak selamat berdasarkan klasifikasi kelas penumpang
ggplot(data = titanic_notsurvived, mapping = aes(x = Pclass,
y = Survived)) +
geom_col(aes(fill = Pclass), show.legend = F) +
labs(title = "Kelas Penumpang yang Tidak Selamat",
x = "Kelas Penumpang",
y = "Tidak Selamat",
caption = "Titanic")Kesimpulan:
- Penumpang Kelas 3 paling banyak yang tidak selamat
- Penumpang Kelas 1 paling sedikit yang tidak selamat
ggplot(data = titanic_notsurvived, mapping = aes(x = Pclass,
y = Survived)) +
geom_col(aes(fill = Sex), show.legend = T) +
labs(title = "Kelas Penumpang yang Tidak Selamat",
x = "Kelas Penumpang",
y = "Tidak Selamat",
caption = "Titanic") Summary:
- Penumpang laki-laki lebih banyak tidak selamat dari semua kategori Kelas Penumpang
ggplot(data = titanic_notsurvived, mapping = aes(x = Pclass,
y = Survived)) +
geom_col(aes(fill = Embarked), show.legend = T) +
labs(title = "Kelas Penumpang yang Tidak Selamat",
x = "Kelas Penumpang",
y = "Tidak Selamat",
caption = "Titanic") Summary:
- Mayoritas penumpang tidak selamat berangkat dari Embarkasi S (Southhampton)