data <- readLines("Titanic-Dataset.csv")

baris_bersih <- gsub('^"|"$', '', data)
baris_bersih <- gsub('""', '"', baris_bersih)
data <- read.csv(text = baris_bersih, header = TRUE, stringsAsFactors = FALSE)
data_task <- data[, c("Age", "SibSp", "Parch", "Fare")]
data_task$Age <- as.numeric(data_task$Age)
data_task$SibSp <- as.numeric(data_task$SibSp)
data_task$Parch <- as.numeric(data_task$Parch)
data_task$Fare <- as.numeric(data_task$Fare)
data_clean <- na.omit(data_task)

print(paste("Jumlah baris setelah dibersihkan:", nrow(data_clean)))
## [1] "Jumlah baris setelah dibersihkan: 714"
print(head(data_clean))
##   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
## 7  54     0     0 51.8625
if (nrow(data_clean) > 0) {
  cat("\n a) Correlation Matrix \n")
  corr_matrix <- cor(data_clean)
  print(corr_matrix)

  cat("\n b) Variance-Covariance Matrix \n")
  cov_matrix <- cov(data_clean)
  print(cov_matrix)

  cat("\n c) Eigen Value & Eigen Vector \n")
  eigen_res <- eigen(corr_matrix)
  print("Eigen Values:")
  print(eigen_res$values)
  print("Eigen Vectors:")
  print(eigen_res$vectors)
}
## 
##  a) Correlation 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
## 
##  b) Variance-Covariance 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
## 
##  c) Eigen Value & Eigen Vector 
## [1] "Eigen Values:"
## [1] 1.6367503 1.1071770 0.6694052 0.5866676
## [1] "Eigen Vectors:"
##            [,1]       [,2]        [,3]        [,4]
## [1,]  0.4388714 -0.5962415  0.56095237  0.37043268
## [2,] -0.6250770  0.0732461  0.05500006  0.77517016
## [3,] -0.5908590 -0.1774532  0.60558695 -0.50265342
## [4,] -0.2599159 -0.7795136 -0.56175785 -0.09607493

PENJELASAN OUTPUT

Dataset akan di import dengan memanfaatkan readLines yang nantinya akan dibaca perbaris sebagai teks. Dataset yang berhasil di import akan dibersihkan dari tanda petik di awal dan akhir baris, fungsi utamanya untuk menghindari kesalahan membaca kolom dan angka dapat dianggap teks. Setelah dataset bersih, dilanjutkan dengan mengubah teks menjadi Data Frame. Pada kasus ini, data yang digunakan hanya variabelAge, SibSp, Parch, Fare yang berjenis numerik.

Baris yang ada NA di empat variabel yang sudah dipilih akan dibuah agar perhitungan statistik valid. Setelah dilakukan pembersihan, diketahui terdapat 714 penumpang yang punya data Age, SibSp, Parch, dan Fare yang lengkap.Untuk memastikan data sudah benar, ditambahkan ringkasan awal sebagai berikut: 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 7 54 0 0 51.8625

Dilanjut dengan mencari corelation matrix untuk dataset tersebut dengan hasil sebagai berikut: 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 Nilai yang mendekati 1 atau -1 berarti memiliki hubungan yang kuat, sedangkan nilai yang mendekati 0 berarti memiliki hubungan yang lemah. Melihat corelation matrix yang terbentuk, hubungan Age dan SibSP memiliki nilai -0,308 yang artinya semakin tua umurnya maka semakin sedikit saudara yang ikut. Lalu hubungan Sibsp dan Parch memiliki nilai 0,384 yang artinya kebanyakan orang membawa saudara berupa orang tua atau anak.Hubungan Fare dan Parch bernilai 0,205 berarti semakin banyak membawa keluarga maka tiketnya semakin mahal.Hubungan terakhir Fare dan Age bernilai 0,096 yang artinya memiliki hubungan sangat lemah bahkan hampir tidak ada.

Variance-Covariance Matrix yang terbentuk dari dataset dapat dilihat sebagai berikut: Variance-Covariance 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 Bentuk diagonal terdapat Variance Fare yang memiliki nilai 211 yang artinya harga tiket sangat bervariasi.Sedangkan di luar diagonal terdapat Covariance age dan fare bernilai 2800 yang berarti semakin tua makan akan cenderung membayar tiket lebih mahal.

Eigen yang digunakan untuk menjawab seberapa besar informasi yang dijelaskan setiap komponen menghasilkan nilai-nilai sebagai berikut:

Eigen Values: 1.6367503 1.1071770 0.6694052 0.5866676 Jika ditotal berjumlah 4 yang yang perkomponen cukup menjelaskan banyak variasi data.

Eigen Vectors: [,1] [,2] [,3] [,4] [1,] 0.4388714 -0.5962415 0.56095237 0.37043268 [2,] -0.6250770 0.0732461 0.05500006 0.77517016 [3,] -0.5908590 -0.1774532 0.60558695 -0.50265342 [4,] -0.2599159 -0.7795136 -0.56175785 -0.09607493 Faktor utama dalam dataset ini adalah struktu keluarga penumpang dengan variabel Fare dan Age jadi faktor pendukung