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

Load Dataset

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.

Correlation Matrix

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.

Variance-Covariance

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 Value dan Eigen Vector

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.