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
data_num <- titanic[, c("Age", "SibSp", "Parch", "Fare")]
data_num <- na.omit(data_num)
head(data_num)
##   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
## 7  54     0     0 51.8625
cor_matrix <- cor(data_num)
round(cor_matrix, 3)
##          Age  SibSp  Parch  Fare
## Age    1.000 -0.308 -0.189 0.096
## SibSp -0.308  1.000  0.384 0.138
## Parch -0.189  0.384  1.000 0.205
## Fare   0.096  0.138  0.205 1.000
cov_matrix <- cov(data_num)
round(cov_matrix, 3)
##           Age  SibSp  Parch     Fare
## Age   211.019 -4.163 -2.344   73.849
## SibSp  -4.163  0.864  0.305    6.806
## Parch  -2.344  0.305  0.728    9.262
## Fare   73.849  6.806  9.262 2800.413
eigen_result <- eigen(cov_matrix)

round(eigen_result$values, 3)
## [1] 2802.564  209.039    0.944    0.479
round(eigen_result$vectors, 3)
##       [,1]   [,2]   [,3]   [,4]
## [1,] 0.028  0.999 -0.024  0.004
## [2,] 0.002 -0.021 -0.774  0.633
## [3,] 0.003 -0.013 -0.633 -0.774
## [4,] 1.000 -0.028  0.005  0.001