1. Import Data

Dataset Titanic diambil dari Kaggle dan diimpor ke R. Dataset ini berisi informasi mengenai penumpang kapal Titanic seperti rata-rata usia penumpaanng, harga tiket, dll. Dalam analisis ini digunakan beberapa variabel numerik untuk melihat hubungan antar variabelnya.

setwd("C:/Users/niaay/OneDrive/文档/Semester 4/Analisis Multivariat/Dataset Titanic")
titanic <- read.csv("Titanic-Dataset.csv")

head(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
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" ...

2. Seleksi Variabel & Menghapus Missing Value

Dari keseluruhan data, hanya diambil variabel yang relevan untuk analisis multivariat. Variabel yang digunakan yaitu Age, SibSp, Parch, dan Fare. Baris data yang mengandung nilang kosong (NA) juga dihapus untuk memastikan analisis dapat dilakukan dengan data yang lengkap.

data_selected <- titanic[, c("Age", "SibSp", "Parch", "Fare")]
head(data_selected)
##   Age SibSp Parch    Fare
## 1  22     1     0  7.2500
## 2  38     1     0 71.2833
## 3  26     0     0  7.9250
## 4  35     1     0 53.1000
## 5  35     0     0  8.0500
## 6  NA     0     0  8.4583
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

3. Correlation Matrix

Correlation matrix menunjukkan hubungan linear antar variabel. Nilai korelasinya berada pada rentang -1 sampai 1, di mana jika nilai mendekati 1 berarti hubungan positif, nilai mendekati -1 berarti hubungan negatif dan nilai mendekati 0 maka hubungannya lemah.

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

Korelasi negatif antara Age dan SibSp menunjukkan bahwa penumpang yang lebih tua cenderung membawa lebih sedikit saudara, hubungan positif antara SibSp dan Parch, yang berarti penumpang yang membawa saudara cenderung juga membawa anggota keluarga lainnya. Hubungan antara Age dengan variabel lain bersifat negatif dan lemah.

4. Variance-Covariance Matrix

Matriks kovarians digunakan untuk melihat variasi dan hubungan antar variabel dalam satuan aslinya.Nilai kovarians positif menunjukkan variabel cenderung bergerak searah, nilai negatif menunjukkan bahwa hubungan berlawanan arah.

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

Matriks varians-kovarians menunjukkan bahwa variabel Fare memiliki nilai varians paling besar dibandingkan variabel lainnya. Hal ini menandakan bahwa harga tiket memiliki tingkat keragaman yang tinggi pada data. Kovarians negatif antara Age dan SibSp menunjukkan bahwa ketika usia meningkat, jumlah saudara yang dibawa cenderung menurun.

5. Eigen Value & Eigen Vector

Eigen value terbesar menunjukkan komponen utama yang paling berpengaruh (komponen tersebut mampu menjelaskan sebagian besar variasi dalam data). Umumnya, komponen dengan eigen value lebih besar dari 1 dianggap cukup penting untuk dianalisis lebih lanjut.

Eigen vector menunjukkan arah kontribusi masing-masing variabel terhadap komponen utama. Nilai eigen vector yang besar (baik positif maupun negatif) menunjukkan bahwa variabel tersebut memiliki pengaruh kuat terhadap komponen utama tertentu.

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

Eigen Value

Berdasarkan hasil perhitungan, eigen value terbesar terdapat pada komponen utama pertama (PC1), yang berarti PC1 merupakan komponen paling dominan dalam menjelaskan variasi data.

Eigen Vector

Pada komponen utama pertama (PC1), variabel Fare memiliki nilai paling besar, sehingga dapat disimpulkan bahwa harga tiket menjadi faktor utama yang memengaruhi struktur data. Pada komponen utama kedua, kontribusi terbesar berasal dari variabel Age, yang menunjukkan bahwa komponen ini lebih merepresentasikan perbedaan usia penumpang.