#baca csv
ship <- read.csv("Titanic-Dataset.csv", header = TRUE, sep = ",")

Membaca file csv dengan menggunakan perintah read.csv

#lihat isi
head(ship,5)
##   PassengerId Survived Pclass
## 1           1        0      3
## 2           2        1      1
## 3           3        1      3
## 4           4        1      1
## 5           5        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
##             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

Menampilkan 5 baris pertama hanya sebagai preview awal

#pilh kolom tertentu
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
new_ship <- select(ship,Age, SibSp, Parch, Fare)
head(new_ship,5)
##   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

Menggunakan library dplyr untuk memilih kolom tertentu

#hapus missing values
library(tidyr)
clean_ship <- drop_na(new_ship)

Menghapus baris yang memiliki missing value pada dataset yang kolomnya telah ditentukan

#correlation matrix and visualization
cor(clean_ship)
##               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
library(corrplot)
## corrplot 0.95 loaded
corrplot(cor(clean_ship), method = "circle")

Hubungan SibSp dengan Parch, memiliki korelasi yang sedang. Sementara untuk Fare dengan Age, SibSp, dan Parch cenderung lemah.

#variance and covariance matrix
var(clean_ship)
##              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

Angka dengan nilai yang tinggi dimiliki oleh Age dengan Age dan Fare dengan Fare. Hal ini menunjukkan bahwa data tersebut bersifat fluktuatif. Sementara yang lainnya, data akan lebih konsisten

#eigen values and eigen vector
eigen(cor(clean_ship))
## eigen() decomposition
## $values
## [1] 1.6367503 1.1071770 0.6694052 0.5866676
## 
## $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

2 kolom pertama yaitu age dan SibSp sudah lumayan menjelaskan variasi data.