Dataset yang digunakan berisi data penumpang kapal Titanic yang digunakan untuk analisis dan prediksi kelangsungan hidup penumpang. Dataset ini berasal dari kaggle (https://www.kaggle.com/datasets/yasserh/titanic-dataset?select=Titanic-Dataset.csv).
Sebelum melakukan analisis lebih lanjut, yang hal pertama yang perlu dilakukan adalah import dataset pada R terlebih dahulu dengan:
data <- read.csv("Titanic-Dataset.csv")
Untuk menampilkan 6 baris pertama dataset Titanic, maka menggunakan kode program dibawah ini:
head(data)
## 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
data2 <- data[, c("Age", "SibSp", "Parch", "Fare")]
data2 <- na.omit(data2)
Untuk melihat ringkasan statistik pada setiap variabel dan memastikan data tidak memiliki missing value dapat menggunakan kode program di bawah ini:
summary(data2)
## 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
Min = 0,42, yang artinya penumpang termuda berusia sekitar 0,42 tahun (bayi)
1st Qu. = 20,12, artinya 25% penumpang berusia ≤ 20.12 tahun
Median = 28,00, artinya usia tengah penumpang adalah 28 tahun
Mean = 29,70, artinya rata-rata usia penumpang sekitar 29,7 tahun
3rd Qu. = 38,00, artinya 75% penumpang berusia ≤ 38 tahun
Max = 80,00, artinya penumpang tertua berusia 80 tahun
Kesimpulannya adalah mayoritas penumpang berada pada usia dewasa muda (20-38 tahun).
Min = 0,0000, ada penumpang yang bepergian tanpa saudara dan pasangan
1st Qu. = 0,0000, terdapat 25% penumpang yang tidak membawa saudara ataupun pasangan
Median = 0,0000, lebih dari setengah penumpang bepergian sendiri
Mean = 0,5126, rata-rata penumpang membawa sekitar 0,5 saudara atau pasangan
3rd Qu. = 1,0000, artinya 75% penumpang membawa paling banyak 1 saudara/pasangan
Max = 5,0000, jumlah saudara/pasangan terbanyak yang dibawa adalah 5 orang
Kesimpulannya adalah sebagian besar penumpang bepergian sendiri atau hanya dengan satu saudara/pasangan.
Min = 0,0000, ada penumpang yang tidak membawa orang tua atau anak
1st Qu. = 0,0000, terdapat 25% penumpang tidak membawa orang tua atau anak
Median = 0,0000, lebih dari setengah penumpang tidak membawa orang tua atau anak
Mean = 0,4314, rata-rata penumpang membawa kurang dari 1 orang tua/anak
3rd Qu. = 1,0000, artinya 75% penumpang membawa paling banyak 1 orang tua/anak
Max = 6,0000, jumlah orang tua/anak terbanyak yang dibawa adalah 6 orang
Kesimpulannya adalah mayoritas penumpang bepergian tanpa orang tua atau anak.
Min = 0,0000, ada penumpang yang tidak membayar tiket atau harga tidak tercatat
1st Qu. = 8,05, terdapat 25% penumpang membayar tiket ≤ 8.05
Median = 15,74, artinya harga tiket tengah adalah 15,74
Mean = 34,69, rata-rata harga tiket cukup tinggi karena dipengaruhi tiket mahal
3rd Qu. = 33,38, artinya 75% penumpang membayar tiket ≤ 33,38
Max = 512,33, Harga tiket tertinggi sangat mahal dibandingkan mayoritas penumpang
Kesimpulannya adalah sebagian besar penumpang membayar tiket dengan harga rendah, namun terdapat beberapa tiket sangat mahal yang menyebabkan nilai rata-rata menjadi tinggi.
Berdasarkan variabel Age, SibSp, Parch, dan Fare, dapat disimpulkan bahwa mayoritas penumpang merupakan individu dewasa yang cenderung bepergian sendiri dengan jumlah anggota keluarga yang sedikit. Distribusi harga tiket menunjukkan ketimpangan karena adanya beberapa nilai fare yang sangat tinggi.
Matriks korelasi menunjukkan tingkat hubungan antar variabel dengan nilai antara -1 sampai 1.
cor_matrix <- cor(data2)
cor_matrix
## Age SibSp Parch Fare
## Age 1.00000000 -0.3082468 -0.1891193 0.09606669
## SibSp -0.30824676 1.0000000 0.3838199 0.13832879
## Parch -0.18911926 0.3838199 1.0000000 0.20511888
## Fare 0.09606669 0.1383288 0.2051189 1.00000000
berdasarkan output dari matriks korelasi di atas, terdapat hubungan antar variabel sebagai berikut:
Age - SibSp (-0,3082468) memiliki korelasi negatif lemah sedang, dengan penumpang yang lebih tua cenderung membawa lebih sedikit saudara atau pasangan.
Age - Parch (-0,1891193) memiliki korelasi negatif lemah, yang digambarkan dengan usia yang lebih tinggi cenderung tidak berkaitan dengan membawa orang tua atau anak.
Age - Fare (0,09606669) memiliki korelasi positif lemah, yang artinya usia hampir tidak berpengaruh terhadap harga tiket.
SibSp - Parch (0,3838199) memiliki korelasi yang positif sedang, dengan penumpang yang membawa saudara/pasangan biasanya juga membawa orang tua atau anak.
SibSp - Fare (0,13832879) mempunyai korelasi yang positif lemah, yang digambarkan dengan yang membawa saudara/pasangan sedikit berkaitan dengan harga tiket yang lebih tinggi.
Parch - Fare (0,2051189) memiliki korelasi positif lemah, dengan penumpang yang membawa orang tua/anak cenderung membayar tiket sedikit lebih mahal.
Kesimpulannya adalah tidak terdapat hubungan yang sangat kuat antar variabel. Akan tetapi, hubungan yang paling terlihat adalah antara SibSp dan Parch, yang menunjukkan keterkaitan antar anggota keluarga. Kemudian, pada variabel usia tidak terlihat pengaruh yang signifikan terhadap harga tiket maupun jumlah anggota keluarga yang dibawa.
Kode di bawah ini digunakan untuk menghitung variance–covariance matrix dari variabel Age, SibSp, Parch, dan Fare.
cov_matrix <- cov(data2)
cov_matrix
## 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
Terdapat Varians (diagonal) pada output dari kode di atas yang ditunjukkan sebagai berikut:
Age = 211.019125 yang menunjukkan variasi usia penumpang yang cukup besar.
SibSp = 0.8644973 menunjukkan variasi jumlah saudara/pasangan kecil.
Parch = 0.7281027 menunjukkan variasi jumlah orang tua/anak kecil.
Fare = 2800.413100, artinya variasi harga tiket sangat besar, sehingga menunjukkan perbedaan harga tiket yang jauh.
Terdapat juga kovarians (hubungan antar variabel) yang ditunjukkan sebagai berikut:
Age - SibSp = -4.163334 memiliki kovarians negatif yang artinya usia lebih tinggi cenderung membawa lebih sedikit saudara/pasangan.
Age - Parch = -2.344191 yang memiliki kovarians negatif lemah.
Age - Fare = 73.849030 memiliki kovarians positif, sehingga artinya usia lebih tinggi sedikit berkaitan dengan harga tiket lebih tinggi.
SibSp - Parch = 0.3045128 memiliki kovarians positif dengan penumpang yang membawa saudara biasanya juga membawa keluarga lain.
SibSp - Fare = 6.806212 memiliki hubungan yang positif kecil.
Parch - Fare = 9.262176, artinya memiliki hubungan positif yang kecil.
Kesimpulannya adalah variabel Fare memiliki variasi terbesar dibandingkan dengan variabel lainnya, sedangkan SibSp dan Parch memiliki variasi kecil. Hubungan antar jumlah anggota keluarga (SibSp dan Parch) cenderung positif, sedangkan usia memiliki kecenderungan hubungan negatif dengan jumlah anggota keluarga.
Kode di bawah ini digunakan untuk menghitung eigen value dan eigen vector dari variance-covariance matrix.
eigen_result <- eigen(cov_matrix)
eigen_result$values
## [1] 2802.5636587 209.0385659 0.9438783 0.4787214
Keterangan:
Eigen value pertama (2802.5636587) memiliki variasi terbesar dalam data. Artinya, sebagian besar informasi dalam data sudah diwakili oleh komponen utama pertama.
Eigen value kedua (209.0385659) memunjukkan variasi yang cukup besar, akan tetapi jauh lebih kecil dari yang pertama.
Eigen value ketiga (0.9438783) & keempat (0.4787214) menunjukkan kontribusi variasi yang sangat kecil.
Eigen value menunjukkan besarnya variasi data. Semakin besar eigen value, maka semakin besar kontribusinya yang ditunjukkan dengan sebagian besar variasi data didominasi oleh satu komponen utama.
eigen_result$vectors
## [,1] [,2] [,3] [,4]
## [1,] 0.028477552 0.99929943 -0.024018111 0.0035788596
## [2,] 0.002386349 -0.02093144 -0.773693322 0.6332099362
## [3,] 0.003280818 -0.01253786 -0.633088089 -0.7739712590
## [4,] 0.999586200 -0.02837826 0.004609234 0.0009266652
Eigen vector menunjukkan arah variasi data dan menjelaskan seberapa besar kontribusi setiap variabel Age, SibSp, Parch, dan Fare terhadap masing-masing komponen utama. Pada komponen utama pertama (PC1), nilai eigen vector terbesar terdapat pada variabel Fare (0,999586200), sehingga variasi terbesar dalam data terutama dipengaruhi oleh harga tiket.