NIM : 24031554175

Kelas : 2024D

IMPORT DATA

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.2.0     ✔ readr     2.1.6
## ✔ forcats   1.0.1     ✔ stringr   1.6.0
## ✔ ggplot2   4.0.2     ✔ tibble    3.3.1
## ✔ lubridate 1.9.5     ✔ 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

library tidyverse digunakan untuk memudahkan proses read datanya, juga dapat memilih variabel dan membersihkan data

data <- read.csv("C:/Users/Faiz/Documents/TUGAS TUGAS/SEMESTER 4/ANMUL/Titanic-Dataset.csv")
head(data)
##   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

DATA PROCESSING

data2 <- data[, c("Age","SibSp","Parch","Fare")]
colSums(is.na(data2))
##   Age SibSp Parch  Fare 
##   177     0     0     0

pada bagian ini saya memilih 4 variabel yaitu Age, SibSp, Parch, Fare dan meilhat missing value pada variabel tersebut

data2 <- drop_na(data2)
colSums(is.na(data2))
##   Age SibSp Parch  Fare 
##     0     0     0     0

Kemudian kita menggunakan drop_na untuk menghapus missing value tersebut

CORRELATION MATRIX

cor_mat <- cor(data2)
cor_mat
##               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

Tabel diatas menunjukkan korelasi pada SibSp dan Parch menghasilkan korelasi yang positif sebesar 0,38, menunjukkan penumpang yang membawa saudara sering kali membawa orang tua atau anak

Berbeda dengan korelasi pada Age dan SibSp menghasilkan korelasi yang negatif sebesar -0,30, yang berarti semakin bertambah usia penumpang, cenderung semakin sedikit jumlah saudara yang ikut.

VARIANCE-COVARIANCE MATRIX

cov_max <- cov(data2)
cov_max
##              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

Hasil variance–covariance matrix menunjukkan bahwa Fare dan Age memiliki variasi data paling besar, sedangkan SibSp dan Parch variasinya relatif kecil. Nilai kovarians negatif antara Age dengan SibSp dan Parch berarti penumpang yang lebih tua cenderung bepergian dengan lebih sedikit anggota keluarga. Sementara itu, kovarians positif antara SibSp dan Parch menunjukkan bahwa jumlah saudara/pasangan dan orang tua/anak cenderung meningkat bersama. Kovarians positif Fare dengan variabel lain menandakan harga tiket cenderung lebih tinggi ketika usia atau jumlah keluarga bertambah, meskipun hubungannya tidak kuat.

EIGEN VALUE AND EIGEN VECTOR

eig <- eigen(cor_mat)
eig$values 
## [1] 1.6367503 1.1071770 0.6694052 0.5866676

Hasil eigen value menunjukkan besarnya variasi data yang dijelaskan oleh masing-masing komponen utama. Nilai eigen terbesar (1,64) merepresentasikan komponen utama pertama (PC1) yang menjelaskan variasi paling besar dalam data, diikuti oleh PC2 (1,11), sedangkan PC3 dan PC4 menjelaskan variasi yang lebih kecil. Karena eigen value > 1 biasanya dianggap signifikan, maka dua komponen utama pertama sudah cukup mewakili sebagian besar informasi data.

eig$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

Eigen vector menunjukkan bobot kontribusi masing-masing variabel (Age, SibSp, Parch, Fare) pada setiap komponen utama. Nilai dengan magnitudo terbesar menandakan variabel yang paling berpengaruh dalam komponen tersebut. Artinya, variasi data terutama dibentuk oleh kombinasi beberapa variabel utama pada PC1 dan PC2, sementara PC3 dan PC4 memberikan kontribusi yang relatif lebih kecil.