NIM : 24031554113
Kelas : 24C
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
Tidyverse digunakan karena syntax mirip seperti pandas
df <- read_csv("C:/Users/Hype/Downloads/archive/Titanic-Dataset.csv")
## Rows: 891 Columns: 12
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (5): Name, Sex, Ticket, Cabin, Embarked
## dbl (7): PassengerId, Survived, Pclass, Age, SibSp, Parch, Fare
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
df1 <- df[,c("Age", "SibSp", "Parch", "Fare")]
df1
## # A tibble: 891 × 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 NA 0 0 8.46
## 7 54 0 0 51.9
## 8 2 3 1 21.1
## 9 27 0 2 11.1
## 10 14 1 0 30.1
## # ℹ 881 more rows
df1 <- drop_na(df1)
df1
## # A tibble: 714 × 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
## # ℹ 704 more rows
Setelah didrop data yang berkurang menjadi 714 rows yang awalnya 814 rows.
corelation <- cor(df1)
corelation
## 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
Seperti yang dapat dari tabel diatas, korelasi antara SibSp dan Parch menunjukan korelasi yang cukup sigmifikan sebesar 0.38 ini menunjukan penumpang yang berpergian dengan orang tua memiliki kecenderungan untuk juga berperpergian dengan saudaranya juga.
Ini berbanding terbalik dengan korelasi antara SibSp dan Age yang menunjukan nilai (-0,30). Nilai ini menunjukan semakin tua penumpang maka makin jarang mereka berpergian dengan saudaranya.
covariance <- cov(df1)
covariance
## 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
dari tabel diatas Fare memiliki ariance paling besar ini mandakan harga tiket yang bervariiasi. seperti yang dijelaskan seblumnya pada Corelation matriks, Variance dan Covarians memperkuat bahwasanya semakin tua penumpangg semakin jarang berpeergian dengan saudaranya yang mana nilai covariansnya (-4.16). selain itu, semakin tua penumoang harga yang dibayarkan cenderung lebih maal juga.
eigen <- eigen(corelation)
eigen$values
## [1] 1.6367503 1.1071770 0.6694052 0.5866676
bedasarkan perhitungan didapat 4 nilai, semakin besar nilai eigen semakin besar pula kontribusi/ pengaruh pada tranformasi eigen.
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
dari matriks diatas dapat dilihat bahwasanya penumpang yang lebih tua cenderung berpergian sendiir sehingga membayar lebih murah, sedangkan penumpang yang lebih muda cenderung berpergian bersama keluarga sehingga tiket yang dibayar lebih mahal.