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" ...
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
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.
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.
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
Berdasarkan hasil perhitungan, eigen value terbesar terdapat pada komponen utama pertama (PC1), yang berarti PC1 merupakan komponen paling dominan dalam menjelaskan variasi data.
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.