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))
Age SystolicBP DiastolicBP BS BodyTemp HeartRate
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 SystolicBP DiastolicBP BS BodyTemp HeartRate
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 SystolicBP DiastolicBP BS BodyTemp HeartRate
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")
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)
PC1 PC2 PC3 PC4 PC5 PC6
-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

  1. 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.

  2. 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.

  3. 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.