NIM : 24031554019

KELAS : 24D

1. Import data ke R

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.

2. Matriks Varians-Kovarians

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 :

3. Korelasi Matrix

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.

4. Nilai Eigen dan Vektor Eigen

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