data <- read.csv("Maternal Health Risk Data Set.csv")
str(data)
## 'data.frame':    1014 obs. of  7 variables:
##  $ Age        : int  25 35 29 30 35 23 23 35 32 42 ...
##  $ SystolicBP : int  130 140 90 140 120 140 130 85 120 130 ...
##  $ DiastolicBP: int  80 90 70 85 60 80 70 60 90 80 ...
##  $ BS         : num  15 13 8 7 6.1 7.01 7.01 11 6.9 18 ...
##  $ BodyTemp   : num  98 98 100 98 98 98 98 102 98 98 ...
##  $ HeartRate  : int  86 70 80 70 76 70 78 86 70 70 ...
##  $ RiskLevel  : chr  "high risk" "high risk" "high risk" "high risk" ...
library(corrplot)
## corrplot 0.95 loaded
data_num <- data[, sapply(data, is.numeric)]
str(data_num)
## 'data.frame':    1014 obs. of  6 variables:
##  $ Age        : int  25 35 29 30 35 23 23 35 32 42 ...
##  $ SystolicBP : int  130 140 90 140 120 140 130 85 120 130 ...
##  $ DiastolicBP: int  80 90 70 85 60 80 70 60 90 80 ...
##  $ BS         : num  15 13 8 7 6.1 7.01 7.01 11 6.9 18 ...
##  $ BodyTemp   : num  98 98 100 98 98 98 98 102 98 98 ...
##  $ HeartRate  : int  86 70 80 70 76 70 78 86 70 70 ...

a.) Corelation Matrix

cor_matrix <- round(cor(data_num), 3)
cor_matrix
##                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
corrplot(cor_matrix,
         method = "color",
         addCoef.col = "steelblue",
         tl.col = "steelblue",
         tl.srt = 45)

Berdasarkan corelation matrix, hubungan antar variabel Age, SystolicBP, DiastolicBP, BS, BodyTemp, dan HeartRate menunjukkan tingkat kekuatan yang bervariasi. Hubungan positif yang paling kuat terjadi antara SystolicBP dan DiastolicBP dengan nilai korelasi sebesar 0,787, yang menunjukkan bahwa peningkatan tekanan darah sistolik cenderung diikuti oleh peningkatan tekanan darah diastolik. Variabel Age memiliki korelasi positif sedang dengan BS sebesar 0,473, serta korelasi positif sedang dengan SystolicBP (0,416) dan DiastolicBP (0,398). Sementara itu, BodyTemp menunjukkan korelasi negatif lemah dengan Age (–0,255), SystolicBP (–0,287), dan DiastolicBP (–0,258). Variabel HeartRate memiliki nilai korelasi yang sangat lemah dengan variabel lainnya, ditunjukkan oleh nilai korelasi yang mendekati nol, sehingga dapat disimpulkan bahwa sebagian besar variabel memiliki hubungan linear yang lemah hingga sedang, kecuali antara SystolicBP dan DiastolicBP yang menunjukkan hubungan kuat.

b.) Variance-Covariance Matrix

cov_matrix <- round(cov(data_num), 3)
cov_matrix
##                 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
heatmap(
  cov_matrix,
  col = colorRampPalette(c("navy", "white", "pink"))(100),
  scale = "none",
  main = "Heatmap of Variance-Covariance Matrix"
)

Berdasarkan Variance-Covariance Matrix, terlihat bahwa variabel Age, SystolicBP, dan DiastolicBP memiliki nilai variansi yang relatif besar, yang menunjukkan tingkat penyebaran data yang tinggi pada ketiga variabel tersebut. Kovarians positif terbesar ditemukan antara SystolicBP dan DiastolicBP, menandakan bahwa kedua variabel tersebut cenderung meningkat atau menurun secara bersamaan. Selain itu, kovarians positif juga terlihat antara Age dan BS, yang menunjukkan adanya kecenderungan peningkatan kadar gula darah seiring bertambahnya usia. Sementara itu, BodyTemp dan HeartRate memiliki nilai kovarians yang relatif kecil terhadap variabel lainnya, bahkan beberapa bernilai negatif, yang mengindikasikan hubungan linier yang lemah. Visualisasi heatmap varians–kovarians menunjukkan bahwa pasangan variabel dengan warna lebih terang memiliki kovarians yang lebih besar, yang menandakan hubungan linier yang lebih kuat. Pasangan SystolicBP dan DiastolicBP tampak paling dominan, sedangkan BodyTemp dan HeartRate menunjukkan hubungan yang relatif lemah dengan variabel lainnya.

c.) Eigen Value dan Eigen Vector

eigen_result <- eigen(cov_matrix)

- Eigen Value

eigen_result$values
## [1] 529.522188 136.772552  64.572049  51.358317   7.359700   1.648193
plot(eigen_result$values,
     type = "b",
     xlab = "Komponen Utama",
     ylab = "Eigen Value",
     main = "Scree Plot Eigen Value")

Berdasarkan hasil perhitungan eigen value berdasarkan dari Variance-Covariance Matrix, diperoleh nilai eigen terbesar pada komponen utama pertama (PC1) sebesar 529,52, PC2 sebesar 136,77 dan PC3 sebesar 64,57. Nilai eigen selanjutnya mengalami penurunan yang cukup signifikan, yaitu PC4 sebesar 51,36, PC5 sebesar 7,36, dan PC6 sebesar 1,65. Hal ini menunjukkan bahwa sebagian besar variasi data dijelaskan oleh komponen utama pertama dan kedua. Visualisasi scree plot memperlihatkan penurunan eigen value yang sangat tajam dari komponen utama pertama ke komponen utama kedua, kemudian penurunannya menjadi lebih landai pada komponen-komponen berikutnya. Pola ini menunjukkan adanya titik siku (elbow) pada komponen utama kedua, sehingga dapat disimpulkan bahwa dua komponen utama pertama sudah cukup merepresentasikan sebagian besar informasi atau variasi dalam data, sementara komponen selanjutnya hanya memberikan tambahan informasi yang relatif kecil.

- Eigen Vector

eigen_result$vectors
##              [,1]         [,2]        [,3]         [,4]        [,5]        [,6]
## [1,] -0.346412119  0.923899974 -0.13192139  0.042733829  0.08198847  0.02135272
## [2,] -0.764857773 -0.293487535  0.14911812  0.553046118  0.02349283  0.01447476
## [3,] -0.537978241 -0.186075504 -0.12390532 -0.811461902  0.04576023  0.00619461
## [4,] -0.072118115  0.069780779  0.04386924 -0.031199030 -0.99247473 -0.04500713
## [5,]  0.018657306 -0.008883075  0.01906137 -0.008223485 -0.04615981  0.99850453
## [6,]  0.004639588  0.143880313  0.97093777 -0.181114293  0.05911990 -0.01610037

Berdasarkan hasil eigen vector berdasarkan dari Variance-Covariance Matrix, setiap komponen utama merupakan kombinasi linear dari variabel Age, SystolicBP, DiastolicBP, BS, BodyTemp, dan HeartRate. Pada komponen utama pertama (PC1), kontribusi terbesar berasal dari DiastolicBP dan SystolicBP, yang ditunjukkan oleh nilai eigen vector dengan magnitudo paling besar dibandingkan variabel lainnya. Hal ini mengindikasikan bahwa variasi terbesar dalam data terutama dipengaruhi oleh tekanan darah. Sementara itu, Age dan BS memberikan kontribusi sedang terhadap pembentukan komponen utama pertama. Pada komponen-komponen berikutnya, kontribusi variabel menjadi lebih tersebar, dengan beberapa variabel seperti BodyTemp dan HeartRate memiliki pengaruh yang lebih dominan pada komponen tertentu. Secara keseluruhan, eigen vector menunjukkan bahwa tekanan darah sistolik dan diastolik merupakan variabel yang paling berperan dalam menjelaskan struktur utama data risiko kesehatan maternal.

Kesimpulan

Secara keseluruhan, hasil analisis menunjukkan bahwa sebagian besar variabel memiliki korelasi lemah hingga sedang, sehingga tiap variabel masih memberikan informasi yang relatif berbeda. Hanya beberapa pasangan variabel yang menunjukkan korelasi cukup kuat, menandakan adanya keterkaitan pola antar variabel tertentu. Kondisi ini mengindikasikan bahwa data tidak terlalu redundan, namun tetap memiliki struktur hubungan yang bisa dimanfaatkan untuk analisis lanjutan, seperti reduksi dimensi (misalnya PCA) atau pemilihan variabel yang paling berpengaruh.