NIM : 24031554019
KELAS : 24D
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.6
## ✔ forcats 1.0.1 ✔ stringr 1.6.0
## ✔ ggplot2 4.0.2 ✔ tibble 3.3.1
## ✔ lubridate 1.9.4 ✔ tidyr 1.3.2
## ✔ purrr 1.2.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
pada baris ini menggunakan package tidyverse tujuannya buat memudahkan proses membaca data, memilih variabel dan membersihkan data.
df <- read_csv("Data_Titanic.csv",show_col_types = FALSE ) |>
select(Age, SibSp, Parch, Fare) |>
drop_na()
lalu dibagian ini membaca dataset Titanic ke dalam R. memilih (Age,Sibsp,Parch, dan Fare).
head(df, 10)
## # A tibble: 10 × 4
## Age SibSp Parch Fare
## <dbl> <dbl> <dbl> <dbl>
## 1 22 1 0 7.25
## 2 38 1 0 71.3
## 3 26 0 0 7.92
## 4 35 1 0 53.1
## 5 35 0 0 8.05
## 6 54 0 0 51.9
## 7 2 3 1 21.1
## 8 27 0 2 11.1
## 9 14 1 0 30.1
## 10 4 1 1 16.7
jadi disini menampilkan 10 baris pertama dari data yang telah dibersihkan.
cov_matrix <- cov(df)
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
Berdasarkan matriks varians–kovarians yang diperoleh dari data Titanic :
Variabel Tarif memiliki nilai varians paling besar ( 2800,41 ), yang berarti harga tiket penumpang sangat bervariasi dibandingkan variabel lainnya.
Variabel Usia juga memiliki varians cukup besar ( 211,02 ), menunjukkan perbedaan usia penumpang yang cukup beragam.
Kovarians SibSp dan Parch bernilai positif ( 0,30 ), yang berarti penumpang yang membawa saudara cenderung juga membawa orang tua atau anak.
Kovarians Age dengan SibSp dan Age dengan Parch bernilai negatif, yang menunjukkan bahwa penumpang yang lebih tua cenderung membawa lebih sedikit saudara maupun orang tua/anak.
Kovarians Fare dengan SibSp dan Parch bernilai positif
cor_matrix <- cor(df)
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
Penjelasan :
Berdasarkan matriks korelasi yang diperoleh, terlihat bahwa SibSp dan Parch memiliki korelasi positif sebesar 0,38 , yang menunjukkan bahwa penumpang yang membawa saudara cenderung juga membawa orang tua atau anak
Variabel Age dan SibSp memiliki korelasi negatif sebesar -0,31 , yang berarti semakin tua usia penumpang, jumlah saudara yang dibawa cenderung lebih sedikit.
Selain itu, Age dan Parch juga memiliki korelasi negatif sebesar -0,19 , yang menunjukkan bahwa penumpang dengan usia lebih tua cenderung membawa lebih sedikit orang tua atau anak.
Korelasi antara Parch dan Fare bernilai positif sebesar 0,21 , yang berarti semakin banyak orang tua atau anak yang dibawa, biaya tiket yang cenderung lebih mahal.
Sementara itu, korelasi Age dan Fare sebesar 0,09 menunjukkan hubungan yang sangat lemah, sehingga age tidak terlalu berpengaruh terhadap besarnya biaya tiket.
Nilai eigen menggunakan matriks korelasi karena matriks korelasi sudah menskalakan data sehingga masalah penskalaan tidak akan mengganggu hasil nilai eigen.
eig_result <- eigen(cor_matrix)
eig_result$values
## [1] 1.6367503 1.1071770 0.6694052 0.5866676
eig_result$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 :
Nilai eigen menunjukkan besar variasi data yang dapat dijelaskan oleh setiap komponen utama (PCA). Dari hasil yang diperoleh, PC1 memiliki nilai eigen sebesar 1,63 , yang berarti komponen ini mampu menjelaskan sekitar 40% variasi data . Artinya, PC1 merupakan komponen yang paling banyak merepresentasikan informasi dari data.
Vektor eigen menunjukkan bobot atau kontribusi masing-masing variabel asli terhadap komponen utama yang terbentuk. Pada PC1 , variabel Age memiliki bobot positif (0,44), sedangkan SibSp (-0,62) dan Parch (-0,59) memiliki bobot negatif yang cukup besar. Hal ini menunjukkan bahwa PC1 membedakan penumpang berdasarkan tahap kehidupan , di mana nilai positif cenderung mewakili penumpang yang lebih tua dan bepergian sendiri, sedangkan nilai negatif mewakili penumpang yang lebih muda dan bepergian bersama keluarga besar