Import Dataset

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 Cleaning

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.

Correlation Matrix

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.

Variance-Covariance Matrix

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 value & eigen vector

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

Kesimpulan

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.