Import Data
data_maternal <- read.csv("C:/Users/Bilqis/Downloads/maternal+health+risk/Maternal Health Risk Data Set.csv")
data_clean <- data_maternal[, sapply(data_maternal, is.numeric)]
library(knitr)
kable(head(data_clean))
| 25 |
130 |
80 |
15.00 |
98 |
86 |
| 35 |
140 |
90 |
13.00 |
98 |
70 |
| 29 |
90 |
70 |
8.00 |
100 |
80 |
| 30 |
140 |
85 |
7.00 |
98 |
70 |
| 35 |
120 |
60 |
6.10 |
98 |
76 |
| 23 |
140 |
80 |
7.01 |
98 |
70 |
Correlation Matrix
cor_matrix <- cor(data_clean)
kable(round(cor_matrix, 3))
| Age |
1.000 |
0.416 |
0.398 |
0.473 |
-0.255 |
0.080 |
| SystolicBP |
0.416 |
1.000 |
0.787 |
0.425 |
-0.287 |
-0.023 |
| DiastolicBP |
0.398 |
0.787 |
1.000 |
0.424 |
-0.258 |
-0.046 |
| BS |
0.473 |
0.425 |
0.424 |
1.000 |
-0.103 |
0.143 |
| BodyTemp |
-0.255 |
-0.287 |
-0.258 |
-0.103 |
1.000 |
0.099 |
| HeartRate |
0.080 |
-0.023 |
-0.046 |
0.143 |
0.099 |
1.000 |
# visualisasi
library(corrplot)
## corrplot 0.95 loaded
corrplot(cor_matrix, method = "color", addCoef.col = "black", tl.col = "black", tl.srt = 45)

Variance-Covariance Matrix
cov_matrix <- cov(data_clean)
kable(round(cov_matrix, 3))
| Age |
181.559 |
103.172 |
74.472 |
21.004 |
-4.718 |
8.697 |
| SystolicBP |
103.172 |
338.704 |
201.122 |
25.771 |
-7.234 |
-3.440 |
| DiastolicBP |
74.472 |
201.122 |
192.815 |
19.383 |
-4.904 |
-5.184 |
| BS |
21.004 |
25.771 |
19.383 |
10.847 |
-0.467 |
3.806 |
| BodyTemp |
-4.718 |
-7.234 |
-4.904 |
-0.467 |
1.881 |
1.096 |
| HeartRate |
8.697 |
-3.440 |
-5.184 |
3.806 |
1.096 |
65.427 |
# visualisasi
corrplot(cov_matrix, method = "color", addCoef.col = "black",
tl.col = "black", tl.srt = 45, is.corr = FALSE, mar=c(0,0,1,0))

Eigen Value dan Eigen Vector
# Menghitung Eigen
eigen_res <- eigen(cor(data_clean))
# Menampilkan Eigen Value
kable(as.data.frame(eigen_res$values), col.names = "Eigen Value")
| 2.6078934 |
| 1.1443812 |
| 0.8370499 |
| 0.7063345 |
| 0.4925435 |
| 0.2117975 |
# Menampilkan Eigen Vector
colnames(eigen_res$vectors) <- paste0("PC", 1:ncol(eigen_res$vectors))
kable(eigen_res$vectors)
| -0.4360752 |
0.1729019 |
0.2404386 |
-0.5550931 |
-0.6432108 |
0.0168575 |
| -0.5296016 |
-0.1128996 |
-0.2415842 |
0.3633726 |
-0.0938667 |
-0.7124341 |
| -0.5225675 |
-0.1230416 |
-0.2990961 |
0.3544156 |
-0.0781012 |
0.7004393 |
| -0.4255290 |
0.3528904 |
-0.1153507 |
-0.4254237 |
0.7070992 |
-0.0106309 |
| 0.2735090 |
0.4293197 |
-0.8093439 |
-0.1305413 |
-0.2606712 |
-0.0291436 |
| -0.0200401 |
0.7958469 |
0.3549994 |
0.4859993 |
-0.0585692 |
0.0239976 |
Penjelasan Hasil Output
Correlation Matrix: Berdasarkan output, hubungan yang paling kuat
ditemukan pada variabel SystolicBP dan DiastolicBP (0.787), yang berarti
tekanan darah atas dan bawah berbanding lurus secara signifikan. Selain
itu, usia memiliki korelasi positif yang kuat dengan gula darah (0,473),
sementara itu suhu tubuh (BodyTemp) memiliki korelasi negatif yang lemah
atau berlawanan arah dengan semua variabel tekanan darah.
Variance-Covariance Matrix: Nilai diagonal menunjukkan varians
dengan nilai tertinggi ada pada SystolicBP (338.70), yang menandakan
bahwa variabel ini memiliki sebaran data paling luas dibandingkan yang
lain. Sementara itu, nilai kovarians positif antara antara Age dan
SystolicBP (103.17) menegaskan bahwa kedua variabel ini bergerak ke arah
yang sama, dengan peningkatan tekanan darah pada variabel yang awalnya
dipengaruhi oleh usia.
Eigen Value dan Eigen Vector: Eigen Value dan Eigen Vector: Dua
nilai Eigen pertama (2,60 dan 1,14) berada di atas angka 1, sehingga
keduanya dianggap sebagai faktor terpenting dalam analisis data.
Berdasarkan vektor Eigen, variabel tekanan darah (SystolicBP dan
DiastolicBP) memiliki bobot paling signifikan pada komponen pertama,
sedangkan detak jantung (HeartRate) merupakan faktor paling signifikan
pada komponen kedua.