#Import dataset
titanic <- read.csv('C:/Users/LENOVO/Downloads/Titanic-Dataset.csv')
# Memilih kolom yang dibutuhkan
data_selected <- titanic[, c("Age", "SibSp", "Parch", "Fare")]
# Menghapus baris yang memiliki missing value
data_clean <- na.omit(data_selected)
# Cek apakah masih ada NA
sum(is.na(data_clean))
## [1] 0
#Tahap ini dilakukan pemilihan kolom yang dibutuhkan, menghapus baris mengunakan missing value dan setelah itu mengecek apakah masih ada missing value di data_clean dan didapatkan bahwamissing value 0 jadi data_clean sudah bisa digunakan untuk mencari korelasi dan covarians
# 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 output di lihat bahwa pada diagonal utama bernilai 1 yang berkorelasi variabel dengan dirinya sendiri, dan hasil korelasi variabel lain menunjukann bahwa sebagian besar variabel menjukan korelasi lemah hingga sedang, tidak ada korelasi yang sangat kuat.
# 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
#Nilai diagonal menunjukkan varians masing-masing variabel. nilai di luar diagonal menunjukkan kovarians antar variabel. kovarians positif menandakan kedua variabel cenderung meningkat bersama, sedangkan kovarians negatif menunjukkan hubungan berlawanan arah.
# Eigen values and vectors
eigen_result <- eigen(cov_matrix)
eigen_result
## eigen() decomposition
## $values
## [1] 2802.5636587 209.0385659 0.9438783 0.4787214
##
## $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 menunjukkan besar variasi data pada setiap komponen utama. eigen value terbesar, menjelaskan variasi data paling besar. Semakin kecil eigen value, kontribusi variasinya semakin kecil
#Setiap kolom itu satu komponen utama dimana angka menunjukkan kontribusi variabel terhadap komponen tersebut. pada komponen utama pertama fare memiliki kontribusi paling besar, artinya variasi terbesar data dipengaruhi oleh harga tiket. eigen vector membantu untuk memahami variabel mana yang paling berpengaruh dalam struktur data.