Nama : Ivan Andika Setyawan
Kelas : 2024C
Nim : 24031554085
Disini kita Import library tidyverse untuk memudahkan dalam mengolah data dan yang saya perlukan seperti fungsi select( ) untuk memilih atribut atau kolom yang digunakandan fungsi drop_na( ) untuk menghapus nilai nan
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
df <- read.csv("D:/.tugas semester 4 dika/analisis multivariat/titanic/Titanic-Dataset.csv")
head(df, 10)
## 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
## 7 7 0 1
## 8 8 0 3
## 9 9 1 3
## 10 10 1 2
## 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
## 7 McCarthy, Mr. Timothy J male 54 0 0
## 8 Palsson, Master. Gosta Leonard male 2 3 1
## 9 Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg) female 27 0 2
## 10 Nasser, Mrs. Nicholas (Adele Achem) female 14 1 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
## 7 17463 51.8625 E46 S
## 8 349909 21.0750 S
## 9 347742 11.1333 S
## 10 237736 30.0708 C
df1 <- select(df, Age,SibSp,Parch,Fare)
Sesuai dengan soal kita mengambil beberapa kolom dengan judul Age,SibSp,Parch,Fare menggunakan fungsi select( )
head(df1)
## 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
## 6 NA 0 0 8.4583
Sebelum kita menghapus kita harus mengecekk duluu apakah ada nilai nan di dalam data nya
sum(is.na(df1))
## [1] 177
Selanjutnya kita menghapus nilai nan nya menggunakan fungsi drop_na ()
clean <- drop_na(df1)
head(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
## 6 54 0 0 51.8625
sum(is.na(clean))
## [1] 0
korelasi_matrix <- cor(clean)
korelasi_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
Umumnya correlation matrix menunjukkan hubungan antar variabel dan menurut hasil dari ke empat variable ini sangat bervariasi mulai dari yang tertinggi yaitu variable SibSp dengan Parch dengan korelasi 0.3838199 serta yang terendah dengan Variable SibSp dan Age dengan korelasi -0.3082468
kovarians_matrix <- cov(clean)
kovarians_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
Covarians Matrix yaitu matrix yang menunjukkan variabilitas dari sebuah data ,, dengan hasil Fare yang menunnjukkan variabilitas tertinggi yakni 2800.413100 yang mengindikasikan sebaran data yang sangat lebar
eigen_data <- eigen(korelasi_matrix)
eigen_data$values
## [1] 1.6367503 1.1071770 0.6694052 0.5866676
Dari hasil analisis eigenvalue terhadap matriks korelasi, diperoleh empat nilai eigen yaitu 1.6367503, 1.1071770, 0.6694052, dan 0.5866676. Eigenvalue pertama memiliki nilai terbesar (1.64) yang mengindikasikan bahwa komponen utama pertama mampu menjelaskan varians data paling besar dibandingkan komponen lainnya.
eigen_data$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
Eigenvector yang dihasilkan membentuk matriks berukuran 4x4, yang dimana setiap kolom merepresentasikan satu komponen utama. Nilai-nilai dalam eigenvector menunjukkan bobot atau kontribusi dari masing-masing variabel terhadap pembentukan komponen utama. Sebagai contoh, pada komponen pertama [,1], variabel Age memiliki bobot 0.4388714, SibSp sebesar -0.6250770, Parch sebesar -0.5908590, dan Fare sebesar -0.2599159. Nilai negatif mengindikasikan arah kontribusi yang berlawanan, sedangkan nilai absolut yang lebih besar menunjukkan pengaruh yang lebih kuat dari variabel tersebut terhadap komponen utama.