Pada tahap ini, data diimpor menggunakan fungsi read.csv(). Dataset yang digunakan adalah Maternal Health Risk Dataset, yang berisi data parameter kesehatan dari berbagai ibu hamil untuk menganalisis tingkat risiko kesehatan mereka.
sumber : https://archive.ics.uci.edu/dataset/863/maternal+health+risk
data <- read.csv("Maternal Health Risk Data Set.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
Ambil data yang bertipe data numerik saja pada kolom 1-6 untuk dianalisis.
data_numeric <- data[, 1:6]
head(data_numeric)
Age SystolicBP DiastolicBP BS BodyTemp HeartRate
1 25 130 80 15.00 98 86
2 35 140 90 13.00 98 70
3 29 90 70 8.00 100 80
4 30 140 85 7.00 98 70
5 35 120 60 6.10 98 76
6 23 140 80 7.01 98 70
cor_matrix <- cor(data_numeric)
print(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
cov_matrix <- cov(data_numeric)
print(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
eigen_result <- eigen(cov_matrix)
print("Eigen Value:")
[1] "Eigen Value:"
print(eigen_result$values)
[1] 529.521825 136.772898 64.572037 51.358769 7.360073 1.647943
print("Eigen Vector:")
[1] "Eigen Vector:"
print(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
Berdasarkan Heatmap Korelasi yang dihasilkan, Terlihat adanya korelasi positif yang sangat signifikan (ditandai dengan warna merah pekat/gelap pada kotak pertemuan) antara SystolicBP dan DiastolicBP. Hal ini menunjukkan bahwa jika tekanan darah sistolik seorang ibu naik, tekanan darah diastoliknya cenderung naik juga. Secara medis, ini konsisten karena keduanya merupakan indikator tekanan darah. Selanjutnya, Variabel Age juga menunjukkan korelasi positif moderat terhadap tekanan darah dan gula darah (BS). Artinya, semakin bertambah usia ibu hamil, ada kecenderungan peningkatan tekanan darah dan kadar gula darah. Terakhir, ada variabel BodyTemp cenderung memiliki warna yang pudar atau mendekati putih terhadap variabel lain, yang menandakan bahwa suhu tubuh tidak memiliki hubungan linear yang kuat dengan tekanan darah maupun gula darah dalam dataset ini.
Pada visualisasi diatas dapat dilihat pada diagonal utama matriks, dimana variabel SystolicBP memiliki nilai tertinggi menunjukkan bahwa data tekanan darah sistolik memiliki rentang sebaran data yang paling luas dibandingkan variabel lain. Nilainya bervariasi jauh lebih besar daripada variabel seperti BodyTemp yang cenderung stabil di angka 98-100°F. Selanjutnya, Interaksi antar variabel menegaskan kembali temuan pada korelasi, di mana angka kovarians positif terbesar terjadi antara SystolicBP dan DiastolicBP, menandakan keduanya berubah ke arah yang sama secara bersamaan.
Pada Grafik batang menunjukkan penurunan tajam dari Dimensi 1 ke Dimensi 2. Komponen Utama pertama memiliki Eigenvalue tertinggi dan mampu menjelaskan persentase varians terbesar dari seluruh dataset.
Pada peta dapat dilihat panah vektor untuk SystolicBP, DiastolicBP, dan Age mengarah ke kuadran yang sama dan saling berdekatan. Sudut yang sempit ini menunjukkan bahwa ketiga variabel ini memiliki korelasi yang erat dan berkontribusi besar terhadap pembentukan Komponen Utama 1. Semakin panjang panah, semakin besar kontribusi variabel tersebut terhadap variabilitas data. Variabel tekanan darah terlihat memiliki panah yang panjang, yang berarti mereka adalah faktor penentu utama dalam membedakan karakteristik data kesehatan ibu pada dataset ini.