df_titanic <- read.csv("Titanic-Dataset.csv")
head(df_titanic)
## PassengerId Survived Pclass
## 1 1 0 3
## 2 2 1 1
## 3 3 1 3
## 4 4 1 1
## 5 5 0 3
## 6 6 0 3
## Name Sex Age SibSp Parch
## 1 Braund, Mr. Owen Harris male 22 1 0
## 2 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 38 1 0
## 3 Heikkinen, Miss. Laina female 26 0 0
## 4 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 0
## 5 Allen, Mr. William Henry male 35 0 0
## 6 Moran, Mr. James male NA 0 0
## Ticket Fare Cabin Embarked
## 1 A/5 21171 7.2500 S
## 2 PC 17599 71.2833 C85 C
## 3 STON/O2. 3101282 7.9250 S
## 4 113803 53.1000 C123 S
## 5 373450 8.0500 S
## 6 330877 8.4583 Q
# hanya ambil kolom Age, SibSp, Parch, Fare & Hapus baris dengan missing value
titanic_clean <- df_titanic[, c("Age", "SibSp", "Parch", "Fare")]
titanic_clean <- na.omit(titanic_clean)
dim(titanic_clean)
## [1] 714 4
summary(titanic_clean)
## Age SibSp Parch Fare
## Min. : 0.42 Min. :0.0000 Min. :0.0000 Min. : 0.00
## 1st Qu.:20.12 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.: 8.05
## Median :28.00 Median :0.0000 Median :0.0000 Median : 15.74
## Mean :29.70 Mean :0.5126 Mean :0.4314 Mean : 34.69
## 3rd Qu.:38.00 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.: 33.38
## Max. :80.00 Max. :5.0000 Max. :6.0000 Max. :512.33
Disini tertera bahwasannya setelah dilakukan penghapusan pada baris dengan missing value jumlah data menjadi 714 baris data, yang awalnya 891 baris (sebelum dihapus). Dan telah diambil hanya kolom yang spesifik diminta yaitu 4 kolom (Age, SibSp, Parch, Fare). Ringkasan dari dataset dengan 4 kolom/fitur dapat dilihat diatas, pada kolom “Age” terdapat penumpang paling muda yakni 0.42 tahun (bayi) dan penumpang tertua 80 tahun, dengan rata-rata usia penumpang 29.7 tahun. Pada kolom “SibSp”, terdapat penumpang yang membawa saudara atau pasangan (dengan total max 5). Pada kolom “SibSp”, terdapat penumpang yang membawa orang tua atau anak (dengan total max 6). Sedangkan pada kolom “Fare” terdapat penumpang yang bepergian dengan tarif tiket terendah atau gratis sebesar 0 (kemungkinan besar merupakan staf perusahaan atau kru teknis) dan tarif tertinggi (512.33).
Correlation_Matrix <- cor(titanic_clean)
kable(Correlation_Matrix, caption = "Matriks Korelasi")
| Age | SibSp | Parch | Fare | |
|---|---|---|---|---|
| Age | 1.0000000 | -0.3082468 | -0.1891193 | 0.0960667 |
| SibSp | -0.3082468 | 1.0000000 | 0.3838199 | 0.1383288 |
| Parch | -0.1891193 | 0.3838199 | 1.0000000 | 0.2051189 |
| Fare | 0.0960667 | 0.1383288 | 0.2051189 | 1.0000000 |
corrplot(Correlation_Matrix,
method = "color",
type = "upper",
addCoef.col = "black",
number.digits = 4,
tl.col = "black",
diag = FALSE)
Heatmap diatas menampilkan output dari correlation matrix (korelasi antar variabelnya). Dari situ, diperoleh korelasi antara Age dengan SibSp sebesar -0.3082 artinya makin tua usia penumpang, mereka cenderung membawa sedikit saudara/pasangan. Korelasi antara Age dengan Parch sebesar -0.1891 artinya penumpang tua sedikit lebih jarang membawa orang tua mereka dibandingkan penumpang muda dan usia tidak berkorelasi signifikan dengan tarif tiket yang mereka beli (0.096). Korelasi antara SibSp dengan Parch sebesar 0.383 artinya penumpang yang membawa saudara/pasangan biasanya juga membawa orang tua/anak. Sedangkan korelasi Fare dengan SibSp dan Parch sebesar 0.1383 dan 0.2051(Parch), ini artinya harga tiket memiliki korelasi yang paling terlihat dengan jumlah anggota keluarga yang dibawa karena harus membeli tiket dalam jumlah yang banyak(perjalanan rombongan biasanya).
Variance_Covariance_Matrix <- cov(titanic_clean)
kable(Variance_Covariance_Matrix, caption = "Matriks Kovarians Titanic")
| Age | SibSp | Parch | Fare | |
|---|---|---|---|---|
| Age | 211.019125 | -4.1633339 | -2.3441911 | 73.849030 |
| SibSp | -4.163334 | 0.8644973 | 0.3045128 | 6.806212 |
| Parch | -2.344191 | 0.3045128 | 0.7281027 | 9.262176 |
| Fare | 73.849030 | 6.8062117 | 9.2621760 | 2800.413100 |
Dari tabel cov matrix diatas, Fare sebesar 2800.41 ini menunjukkan bahwa data tarif tiket sangat menyebar. Sedangkan SibSp dan Parch memiliki varians dengan nilai yang kecil, artinya data jumlah keluarga (saudara, pasangan, orang tua, anak) cenderung seragam. Kebanyakan penumpang membawa sedikit keluarga atau bahkan solo travel.
Eigen_result <- eigen(Variance_Covariance_Matrix)
# Eigen_Value
Eigen_value <- Eigen_result$values
kable(as.data.frame(Eigen_value), col.names = "Eigen Value", caption = "Eigen Value")
| Eigen Value |
|---|
| 2802.5636587 |
| 209.0385659 |
| 0.9438783 |
| 0.4787214 |
# Eigen_Vector
Eigen_vector <- Eigen_result$vectors
kable(Eigen_vector, caption = "Eigen Vector")
| 0.0284776 | 0.9992994 | -0.0240181 | 0.0035789 |
| 0.0023863 | -0.0209314 | -0.7736933 | 0.6332099 |
| 0.0032808 | -0.0125379 | -0.6330881 | -0.7739713 |
| 0.9995862 | -0.0283783 | 0.0046092 | 0.0009267 |
Dari tabel diatas, dapat disimpulkan bahwa keragaman pada dataset titanic ini didorong oleh variabel Fare dan Age yakni dengan value 2802.56 (Fare), 209.03 (Age). Hal ini diperkuat dengan hasil Eigen Vector, komponen utama ke-1 sangat dipengaruhi oleh komponen ke-4 (Fare) sementara variabel keluarga (SibSp, Parch) memiliki kontribusi yang lebih kecil.