Dataset Maternal Health Risk diambil dari UCI Machine Learning Repsitory dan berisi 1013 observasi dan 6 fitur numerik dan 1 fitur kategorikal sebagai target. Data ini digunakan untuk menganalisis faktor-faktor yang berhubungan dengan resiko kesehatan ibu hamil. Faktor seperti Usia, Gula Darah, Tekanan Darah, dan detak jantung menjadi faktor risiko komplikasi untuk dianalisis secara statistik.
library(readxl)
Maternal_Health_Risk_Data_Set <- read_excel("D:/anmul/Maternal Health Risk Data Set.xlsx")
str(Maternal_Health_Risk_Data_Set)
## tibble [1,014 × 7] (S3: tbl_df/tbl/data.frame)
## $ Age : num [1:1014] 25 35 29 30 35 23 23 35 32 42 ...
## $ SystolicBP : num [1:1014] 130 140 90 140 120 140 130 85 120 130 ...
## $ DiastolicBP: num [1:1014] 80 90 70 85 60 80 70 60 90 80 ...
## $ BS : num [1:1014] 15 13 8 7 6.1 7.01 7.01 11 6.9 18 ...
## $ BodyTemp : num [1:1014] 98 98 100 98 98 98 98 102 98 98 ...
## $ HeartRate : num [1:1014] 86 70 80 70 76 70 78 86 70 70 ...
## $ RiskLevel : chr [1:1014] "high risk" "high risk" "high risk" "high risk" ...
Menggunakan Library readx1 untuk membaca dataset dengan format xlsx atau excel.
data_num <- Maternal_Health_Risk_Data_Set[, sapply(Maternal_Health_Risk_Data_Set, is.numeric)]
Pada tahap ini kita akan menggunakan fitur numerik saja, dan menamai
data numerik dengan data_num.
library(corrplot)
## corrplot 0.95 loaded
corr_matrix <- cor(data_num)
corrplot(corr_matrix,
method = "pie",
type = "lower",
order = "hclust",
tl.col = "black",
tl.cex = 0.9,
addCoef.col = "black",
number.cex = 0.7,
col = colorRampPalette(c("#B2182B", "white", "#2166AC"))(200),
mar = c(0,0,1,0))
Dapat kita simpulkan bahwa dari correlation matrix yang diperoleh, SystolicBP dan DiastolicBP memiliki korelasi yang kuat menunjukkan ketika tekanan darah sistolik meningkat maka tekanan darah diastolik juga meningkat. Hal ini menandakan adanya hubungan yang erat antara kedua variabel tekanan darah tersebut dalam data kesehatan ibu. Untuk umur dan gula darah memiliki korelasi yang sedang dengan tekanan darah. Dan suhu tubuh dan denyut jantung memiliki korelasi yang lemah.
cov_matrix <- cov(data_num)
corrplot(cov_matrix,
method = "color",
is.corr = FALSE,
type = "lower",
addCoef.col = "black",
tl.col = "black",
tl.srt = 45,
title = "Covariance Matrix",
mar = c(0,0,1,0))
Dari hasil varian-covarians, SystolicBP dan DiastolicPC memiliki variasi
paling besar, dan kovarians positif terdapat pada usia dan tekanan darah
yang meningkat bersama. Sedangkan variabel lain seperti suhu tubuh dan
denyut jantung memiliki hubungan yang lemah.
eig <- eigen(cov_matrix)
eigen_values <- eig$values
plot(eigen_values,
type = "b",
pch = 19,
col = "orange",
xlab = "Komponen",
ylab = "Eigenvalue",
main = "Scree Plot Eigenvalue")
Dari hasil perhitungan diperoleh komponen pertama memiliki eigen value
terbesar, yang berarti komponen ini menjelaskan variasi data paling
besar dibanding komponen lainnya. Ini menunjukkan bahwa sebagian besar
informasi data sudah dapat dijelaskan oleh satu atau dua komponen utama
saja.
eig$vectors
## [,1] [,2] [,3] [,4] [,5]
## [1,] -0.346411189 0.923900546 -0.13192259 0.042731491 0.08198705
## [2,] -0.764857940 -0.293487053 0.14910706 0.553048994 0.02349903
## [3,] -0.537978589 -0.186074547 -0.12389090 -0.811464330 0.04575582
## [4,] -0.072118241 0.069777475 0.04387199 -0.031191932 -0.99247862
## [5,] 0.018657383 -0.008883756 0.01905652 -0.008215683 -0.04608110
## [6,] 0.004638836 0.143880423 0.97094112 -0.181096759 0.05911889
## [,6]
## [1,] 0.021345781
## [2,] 0.014469639
## [3,] 0.006196148
## [4,] -0.044928412
## [5,] 0.998508320
## [6,] -0.016098692
barplot(eig$vectors[,1],
names.arg = colnames(data_num),
col = "skyblue",
main = "Eigenvector Komponen 1",
ylab = "Nilai Eigenvector")
Eigenvector menunjukkan variabel mana yang paling berkontribusi pada
setiap komponen. Pada komponen pertama, variabel dengan nilai
eigenvector terbesar memiliki pengaruh paling kuat dalam membentuk pola
variasi data.
Dari hasil analisis, terlihat bahwa beberapa variabel memiliki hubungan yang cukup kuat, terutama antara tekanan darah sistolik dan diastolik. Matriks kovarians menunjukkan seberapa besar variasi dan arah hubungan antar variabel, sedangkan hasil eigenvalue memperlihatkan bahwa sebagian besar variasi data sudah dijelaskan oleh komponen pertama. Eigenvector membantu kita melihat variabel mana yang paling berpengaruh dalam membentuk komponen tersebut. Secara keseluruhan, data ini dapat diringkas ke dalam beberapa komponen utama tanpa kehilangan informasi penting.