1. Import data ke R
library(readr)

Titanic_Dataset <- read_csv("Titanic-Dataset.csv", show_col_types = FALSE)


knitr::kable(head(Titanic_Dataset))
PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
1 0 3 Braund, Mr. Owen Harris male 22 1 0 A/5 21171 7.2500 NA S
2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 38 1 0 PC 17599 71.2833 C85 C
3 1 3 Heikkinen, Miss. Laina female 26 0 0 STON/O2. 3101282 7.9250 NA S
4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35 1 0 113803 53.1000 C123 S
5 0 3 Allen, Mr. William Henry male 35 0 0 373450 8.0500 NA S
6 0 3 Moran, Mr. James male NA 0 0 330877 8.4583 NA Q

library digunakan untuk import library readr salah satu library untuk import file ke R. dataset raw saya simpan dalam variabel Titanic_Dataset dan dapat dibuka dengan menggunakan fungsi knitr:kable

2a. Filter berdasarkan kolom yg dibutuhkan (Age, Sibsp, Parch, Fare)

df <- Titanic_Dataset[, c("Age", "SibSp", "Parch", "Fare")]

knitr::kable(head(df))
Age SibSp Parch Fare
22 1 0 7.2500
38 1 0 71.2833
26 0 0 7.9250
35 1 0 53.1000
35 0 0 8.0500
NA 0 0 8.4583
cat("Jumlah baris awal:", nrow(df), "\n")
## Jumlah baris awal: 891
summary(df)
##       Age            SibSp           Parch             Fare       
##  Min.   : 0.42   Min.   :0.000   Min.   :0.0000   Min.   :  0.00  
##  1st Qu.:20.12   1st Qu.:0.000   1st Qu.:0.0000   1st Qu.:  7.91  
##  Median :28.00   Median :0.000   Median :0.0000   Median : 14.45  
##  Mean   :29.70   Mean   :0.523   Mean   :0.3816   Mean   : 32.20  
##  3rd Qu.:38.00   3rd Qu.:1.000   3rd Qu.:0.0000   3rd Qu.: 31.00  
##  Max.   :80.00   Max.   :8.000   Max.   :6.0000   Max.   :512.33  
##  NA's   :177

tabel pada df sudah berisi kolom yg diingingkan namun masih banyak berisi baris2 nan

2b. Bersihkan baris nan

data_clean <- na.omit(df)
cat("Jumlah baris setelah dibersihkan:", nrow(data_clean), "\n")
## Jumlah baris setelah dibersihkan: 714
summary(data_clean)
##       Age            SibSp            Parch             Fare       
##  Min.   : 0.42   Min.   :0.0000   Min.   :0.0000   Min.   :  0.00  
##  1st Qu.:20.12   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:  8.05  
##  Median :28.00   Median :0.0000   Median :0.0000   Median : 15.74  
##  Mean   :29.70   Mean   :0.5126   Mean   :0.4314   Mean   : 34.69  
##  3rd Qu.:38.00   3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.: 33.38  
##  Max.   :80.00   Max.   :5.0000   Max.   :6.0000   Max.   :512.33

baris nan dibersihkan dengan menggunakan bantuan nan.omit untuk Handle Missing Values in Objects

3a. Correlation Matrix

cor_matrix <- cor(data_clean)

print(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

Pada dataset titanic didapatkan bahwa

  1. SibSp dan Parch berkorelasi positif sebesar 0.38

jadi orang yang membawa orangtua/anak cenderung membawa saudaranya semakin banyak

  1. Age dan SibSp berkorelasi negatif sebesar -0.30

jadi orang yang semakin berumur/tua cenderung membawa saudaranya semakin sedikit

  1. Parch dan Fare berkorelasi positif sebesar 0.20

jadi orang yang memiliki membawa banyak orangtua/anak cenderung lebih mahal biaya yang harus dibayar

  1. Age dan Parch berkorelasi negatif sebesar -0.18

jadi orang yang semakin berumur/tua cenderung membawa saudara semakin sedikit

  1. SibSp dan Fare berkorelasi positif sebesar 0.13

jadi orang yang membawa saudara semakin banyak cenderung lebih mahal biaya yang harus dibayar

  1. Age dan Fare berkorelasi positif sebesar 0.09

jadi orang yang berumur/tua cenderung lebih mahal biaya yang harus dibayar, namun memiliki korelasi yang jauh lebih rendah jika dibandingkan dengan faktor umur, saudara, dan orangtua/anak yang dibawa

3b. Variance-Covariance Matrix

cov_matrix <- cov(data_clean)

print(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

Pada diagonal utama (varian)

  1. Age menunjukan persebaran umur penumpang yang cukup tinggi

  2. SibSp memiliki persebaran jumlah saudara penumpang yang cukup rendah

  3. Parch memiliki persebaran jumlah saudara penumpang yang cukup rendah

  4. Fare memiliki persebaran harga yang dibayarkan sangat tinggi (bervariasi)

Pada non-diagonal utama (covarian)

  1. Age dan Fare saling berkorelasi positif cukup tinggi sebesar 73.9

  2. Parch dan Fare saling berkorelasi positif sebesar 9.2

  3. SibSp dan Fare saling berkorelasi positif sebesar 6.8

  4. SibSp dan Age saling berkorelasi negatif sebesar -4.1

  5. Parch dan Age berkorelasi negatif sebesar -2.3

  6. Parch dan SibSp berkorelasi positif sebesar 0.3 namun sangat rendah

3c. Eigen value dan Eigen vector

eigen_results <- eigen(cor_matrix)

print(eigen_results$values)
## [1] 1.6367503 1.1071770 0.6694052 0.5866676

dari 4 nilai eigen value

PC1 = 1.63 : 4 = 40%

PC2 = 1.10 : 4 = 27.5%

PC3 = 0.63 : 4 = 16.5%

PC4 = 0.58 : 4 = 14.5%

hanya dengan menggunakan component 1 dan 2 sudah bisa mewakili 67,5% dari data keseluruhan

print(eigen_results$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 component

  1. Age berkorelasi positif sebesar 0.43,dan berkorelasi negatif pada SibSp sebesar -0.62, Parch sebesar -0.59, dan Fare -0.25

  2. SibSp berkorelasi positif rendah sebesar 0.07, dan berkorelasi negatif pada Age sebesar -0.59, Parch sebesar -0.17, dan Fare sebesar -0.77

  3. Berkorelasi positif Age sebesar 0.56, SibSp sebesar 0.05, Parch 0.60 dan berkorelasi negatif sebesar -0.56

  4. Berkoleasi positif Age sebesar 0.37, SibSp sebesar 0.77, dan Berkorelasi negatif Parch sebesar -0.50, Fare sebesar -0.09

3d. Jelaskan hasil dari setiap output

penjelasan terlampir dibawah poin a, b, dan c