Import data

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

Preprocessing

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

Analisis Corelation Matrix

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

Analisis Variance-Covariance Matrix

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

Analisis Eigen value dan eigen vector

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

Penjelasan Tiap Output

  1. Correlation Matrix

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.

  1. Variance-Covariance Matrix

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.

  1. Eigen value dan eigen vector
  1. Eigen Value

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.

  1. Eigen Vector

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.