# Import data Titanic
titanic <- read.csv("Titanic-Dataset.csv")
head(titanic)
##   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
##                                                  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
##             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

Proses import data menunjukkan 6 baris pertama dari dataset Titanic-Dataset.csv menggunakan fungsi head(). Ini menunjukkan bahwa file sudah berhasil dibaca oleh R dan disimpan ke dalam objek bernama titanic. Dataset berisi informasi karakteristik penumpang titanic. Seperti umur, jumlah anggota keluarga yang ikut, dan tarif/harga tiket yang akan digunakan untuk analisis statistik.

# Ambil kolom Age, SibSp, Parch, Fare
data_num <- titanic[, c("Age", "SibSp", "Parch", "Fare")]

# Hapus baris dengan missing value
data_clean <- na.omit(data_num)

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

Setelah memilih kolom Age, SibSp, Parch, dan Fare serta menghapus baris yang mengandung missing value, dihasilkan ringkasan statistik berikut: - Age : memiliki nilai minimum 0.42 dan maksimum 80 tahun, dengan nilai rata-rata 29.70 tahun dan median 28 tahun. Ini menunjukkan bahwa mayoritas penumpang berada di usia dewasa muda - SibSp : memiliki nilai minimum 0 dan maksimum 5, dengan rata-rata 0.51 dan median 0, yang menunjukkan bahwa sebagian besar penumpang bepergian tanpa saudara maupun pasangan - Parch : memiliki nilai minimum 0 dan maksimum 6, dengan rata-rata 0.43 dan median 0, yang menunjukkan bahwa mayoritas penumpang tidak membawa orang tua atau anak - Fare : memiliki nilai miimum 0 dan maksimum 512.33 , dengan rata-rata 34.69 dan median 15.74, yang menunjukkan bahwa distribusi harga tiket sangat bervariasi

# Correlation Matrix
cor_matrix <- cor(data_clean)
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

Correlation Matrix menunjukkan hubungan linier antar variabel Age, SibSp, Parch, dan Fare. - Korelasi antar Age dan SibSp sebesar -0.3082468, menunjukkan hubungan negatif sedang, di mana penumpang yang lebih tua cenderung bepergian dengan lebih sedikit saudara atau pasangan - Korelasi antara Age dan Parch sebesar -0.1891193, menunjukkan hubungan negatif lemah, yang mengindikasikan bahwa penumpang dengan usia lebih muda cenderung bepergian bersama orang tua atau anak - Korelasi antara Age dan Fare sebesar 0.09606669, menunjukkan hubungan positif sangat lemah, sehingga usia penumpang hampir tidak berpengaruh terhadap harga tiket - Korelasi antara SibSp dan Parch 0.3838199, menunjukkan hubungan positif sedang, berarti penumpang yang membawa saudara atau pasangan cenderung membawa orang tua atau anak - Korelasi antara SibSp dan Fare sebesar 0.13832879, serta korelasi antara Parch dan Fare sebesar 0.20511888, keduanya menunjukkan hubungan positif lemah, sehingga jumlah anggota keluarga hanya sedikit berhubungan dengan besarnya harga tiket. Nilai diagonal bernilai 1, menandakan korelasi sempurna tiap variabel dengan dirinya sendiri.

# Variance-Covariance Matrix
cov_matrix <- cov(data_clean)
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

Matriks varians–kovarians menunjukkan sebaran dan hubungan antar variabel. Nilai varians terdapat pada diagonal matriks, di mana Age memiliki varians 211,02, SibSp 0,86, Parch 0,73, dan Fare 2800,41. Varians Fare yang paling besar menunjukkan bahwa harga tiket memiliki penyebaran data paling tinggi dibandingkan variabel lainnya. Nilai kovarians di luar diagonal menunjukkan arah hubungan antar variabel, misalnya kovarians Age dan SibSp sebesar -4,16 serta Age dan Parch sebesar -2,34 yang bernilai negatif, menandakan bahwa usia cenderung berlawanan arah dengan jumlah anggota keluarga. Sementara kovarians positif antara SibSp dan Parch sebesar 0,30 menunjukkan bahwa kedua variabel tersebut cenderung meningkat bersama.

# Eigen value dan eigen vector
eigen_result <- eigen(cov_matrix)

# Eigen value
eigen_result$values
## [1] 2802.5636587  209.0385659    0.9438783    0.4787214
# Eigen vector
eigen_result$vectors
##             [,1]        [,2]         [,3]          [,4]
## [1,] 0.028477552  0.99929943 -0.024018111  0.0035788596
## [2,] 0.002386349 -0.02093144 -0.773693322  0.6332099362
## [3,] 0.003280818 -0.01253786 -0.633088089 -0.7739712590
## [4,] 0.999586200 -0.02837826  0.004609234  0.0009266652