https://www.kaggle.com/datasets/yasserh/titanic-dataset?select=Titanic-Dataset.csv
setwd("D:/BIODATA KAFKA/Sem 4/Analisis Multivariat")
titanic <- read.csv("Titanic-Dataset.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 : 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" ...
data_selected <- titanic[, c("Age", "SibSp", "Parch", "Fare")]
data_clean <- na.omit(data_selected)
summary(data_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
str(data_clean)
## 'data.frame': 714 obs. of 4 variables:
## $ Age : num 22 38 26 35 35 54 2 27 14 4 ...
## $ SibSp: int 1 1 0 1 0 0 3 0 1 1 ...
## $ Parch: int 0 0 0 0 0 0 1 2 0 1 ...
## $ Fare : num 7.25 71.28 7.92 53.1 8.05 ...
## - attr(*, "na.action")= 'omit' Named int [1:177] 6 18 20 27 29 30 32 33 37 43 ...
## ..- attr(*, "names")= chr [1:177] "6" "18" "20" "27" ...
Pada bagian ini, pertama ambil data yang digunakan dan ambil variabel Age, SibSp, Parch, dan Fare. Selanjutnya, data dibersihkan dengan menghapus baris yang memiliki nilai kosong agar tidak mengganggu proses perhitungan. Pada hasil ini akan digunakan untuk analisis cor, cov, matriks, dan eigen.
cor_matrix <- cor(data_clean)
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
Pada hasil matriks korelasi menunjukkan adanya hubungan yang berbeda antar variabel dengan nilai korelasi yang berada pada rentang −1 hingga 1, di mana nilai mendekati −1 menunjukkan hubungan negatif dan nilai mendekati 1 menunjukkan hubungan positif. Usia penumpang memiliki korelasi negatif yang lemah dengan jumlah saudara (SibSp) dan jumlah orang tua atau anak (Parch), yang berarti penumpang yang lebih tua cenderung bepergian dengan anggota keluarga yang lebih sedikit. Sementara itu, harga tiket (Fare) memiliki korelasi positif yang lemah dengan jumlah keluarga, terutama terhadap variabel Parch, sehingga penumpang yang bepergian bersama keluarga cenderung membayar tiket dengan harga yang sedikit lebih tinggi.
cov_matrix <- cov(data_clean)
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
var_matrix <- var(data_clean)
var_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
Matriks varians–kovarians menunjukkan bahwa varians masing-masing variabel berada pada diagonal matriks, yaitu varians Age sebesar 211.02, SibSp 0.86, Parch 0.73, dan Fare 2800.41, yang menandakan bahwa harga tiket memiliki tingkat penyebaran data paling tinggi. Nilai kovarians di luar diagonal menunjukkan hubungan antar variabel, di mana kovarians Age dan Fare bernilai positif sebesar 73.85 yang berarti penumpang lebih tua cenderung membayar tiket lebih mahal, sedangkan kovarians Age dengan SibSp (−4.16) dan Parch (−2.34) bernilai negatif yang menunjukkan bahwa penumpang berusia lebih tua cenderung bepergian dengan anggota keluarga yang lebih sedikit. Selain itu, kovarians positif antara SibSp dan Parch serta dengan Fare menunjukkan bahwa penumpang yang bepergian bersama keluarga cenderung memiliki jumlah keluarga lebih banyak dan membayar tiket lebih tinggi.
eigen_result <- eigen(cov_matrix)
# eigen value
eigen_result$values
## [1] 2802.5636587 209.0385659 0.9438783 0.4787214
# eigen vector
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
Hasil eigen menunjukkan bahwa komponen utama pertama memiliki nilai eigen sebesar 2802.56 yang merupakan kontribusi variasi terbesar dan didominasi oleh variabel Fare dengan nilai vektor eigen 0.9996, sehingga variasi data paling banyak dipengaruhi oleh harga tiket. Komponen kedua memiliki nilai eigen 209.04 dan didominasi oleh variabel Age dengan nilai vektor eigen 0.9993, yang menunjukkan bahwa usia menjadi sumber variasi terbesar kedua. Sementara itu, komponen ketiga dan keempat memiliki nilai eigen yang sangat kecil, masing-masing sebesar 0.94 dan 0.48
Dari hasil analisis yang dilakukan, terlihat bahwa harga tiket (Fare) memiliki perbedaan yang paling mencolok antar penumpang. Penumpang yang bepergian bersama anggota keluarga, baik saudara maupun orang tua atau anak, cenderung membayar tiket dengan harga yang lebih tinggi. Sementara itu, usia penumpang tidak menunjukkan pengaruh yang terlalu kuat terhadap variabel lainnya.