# Import dan tampilkan data
data <- read.csv("Maternal_health.csv")
head(data)
## Age SystolicBP DiastolicBP BS BodyTemp HeartRate RiskLevel
## 1 25 130 80 15.00 98 86 high risk
## 2 35 140 90 13.00 98 70 high risk
## 3 29 90 70 8.00 100 80 high risk
## 4 30 140 85 7.00 98 70 high risk
## 5 35 120 60 6.10 98 76 low risk
## 6 23 140 80 7.01 98 70 high risk
# Mengambil data numerik
data_num <- data[sapply(data, is.numeric)]
Dataset Maternal Health Risk berisi data kondisi kesehatan ibu hamil yang terdiri dari beberapa variabel numerik, yaitu Age, SystolicBP, DiastolicBP, BS, BodyTemp, dan HeartRate. Selain itu, terdapat variabel RiskLevel yang menunjukkan tingkat risiko kesehatan ibu. Dataset ini digunakan untuk menganalisis hubungan dan variasi antar variabel kesehatan ibu hamil.
# Correlation Matrix
cor_matrix <- cor(data_num)
cor_matrix
## Age SystolicBP DiastolicBP BS BodyTemp
## Age 1.00000000 0.41604545 0.39802629 0.4732843 -0.25532314
## SystolicBP 0.41604545 1.00000000 0.78700648 0.4251717 -0.28661552
## DiastolicBP 0.39802629 0.78700648 1.00000000 0.4238241 -0.25753832
## BS 0.47328434 0.42517166 0.42382407 1.0000000 -0.10349336
## BodyTemp -0.25532314 -0.28661552 -0.25753832 -0.1034934 1.00000000
## HeartRate 0.07979763 -0.02310796 -0.04615057 0.1428672 0.09877104
## HeartRate
## Age 0.07979763
## SystolicBP -0.02310796
## DiastolicBP -0.04615057
## BS 0.14286723
## BodyTemp 0.09877104
## HeartRate 1.00000000
Hasil correlation matrix menunjukkan hubungan paling kuat terjadi antara SystolicBP dan DiastolicBP dengan nilai korelasi 0,787, yang berarti terdapat hubungan positif kuat antara tekanan darah sistolik dan diastolik. Variabel Age memiliki korelasi positif sedang dengan BS (0,473), menunjukkan bahwa semakin bertambah usia, kadar gula darah cenderung meningkat. Sebaliknya, BodyTemp memiliki korelasi negatif lemah dengan hampir semua variabel, menandakan bahwa suhu tubuh tidak memiliki hubungan kuat dengan indikator kesehatan lainnya. Variabel HeartRate memiliki korelasi sangat rendah terhadap variabel lain, sehingga pengaruhnya relatif kecil.
# Variance-Covariance Matrix
cov_matrix <- cov(data_num)
cov_matrix
## Age SystolicBP DiastolicBP BS BodyTemp HeartRate
## Age 181.559065 103.171539 74.471739 21.0035619 -4.7180044 8.697168
## SystolicBP 103.171539 338.704005 201.121845 25.7712999 -7.2338429 -3.439938
## DiastolicBP 74.471739 201.121845 192.815323 19.3828770 -4.9042413 -5.183543
## BS 21.003562 25.771300 19.382877 10.8473512 -0.4674483 3.806040
## BodyTemp -4.718004 -7.233843 -4.904241 -0.4674483 1.8806951 1.095640
## HeartRate 8.697168 -3.439938 -5.183543 3.8060397 1.0956395 65.427104
Variance–covariance matrix menunjukkan bahwa SystolicBP memiliki varians paling besar (338,70), sehingga merupakan variabel dengan penyebaran data tertinggi. Varians DiastolicBP (192,82) dan Age (181,56) juga cukup besar, menunjukkan variasi yang signifikan. Kovarians positif yang besar antara SystolicBP dan DiastolicBP (201,12) menunjukkan kedua variabel meningkat secara bersamaan. Sementara itu, kovarians yang kecil atau mendekati nol pada variabel lain menunjukkan hubungan yang lemah dalam skala aslinya.
eigen_result <- eigen(cov_matrix)
# Eigen value
eigen_result$values
## [1] 529.521825 136.772898 64.572037 51.358769 7.360073 1.647943
Eigen value menunjukkan bahwa komponen utama pertama memiliki nilai paling besar (529,52), sehingga menjelaskan sebagian besar variasi data. Komponen kedua dan ketiga memiliki eigen value yang jauh lebih kecil (136,77 dan 64,57), menandakan kontribusi variasi yang menurun. Hal ini menunjukkan bahwa sebagian besar informasi data dapat direpresentasikan oleh beberapa komponen utama saja.
# Eigen vector
eigen_result$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
Eigen vector menunjukkan bahwa pada komponen utama pertama, variabel SystolicBP (-0,765) dan DiastolicBP (-0,538) memiliki kontribusi paling besar, diikuti oleh Age (-0,346). Hal ini menunjukkan bahwa komponen utama pertama merepresentasikan faktor tekanan darah dan usia. Variabel BS, BodyTemp, dan HeartRate memiliki nilai eigen vector yang kecil, sehingga kontribusinya terhadap komponen utama pertama relatif rendah.