Dataset

data_salwa <- read.csv("D:/Tugas_ANMUL_1/Maternal Health Risk Data Set.csv", sep=",")
head(data_salwa)
##   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

Penjelasan Dataset

Dataset Maternal Health Risk merupakan kumpulan data yang berisi informasi mengenai kondisi kesehatan ibu selama masa kehamilan. Data yang didapat berasal dari berbagai fasilitas layanan kesehatan seperti rumah sakit, klinik komunitas, dan layanan kesehatan ibu di wilayah pedesaan Bangladesh melalui sistem pemantauan berbasis IoT.

Dataset terdiri dari 1013 observasi dengan enam variabel fitur numerik utama dan satu variabel target kategorikal.Variabel numerik terdiri dari usia (Age), tekanan darah sistolik (SystolicBP), tekanan darah diastolik (DiastolicBP), kadar gula darah (BS), suhu tubuh (BodyTemp), dan detak jantung (HeartRate). Sedangkan untuk variabel target kategorikal yaitu tingkat risiko (RiskLevel).

Mengambil Data Numerik

data_numeric <- data_salwa[sapply(data_salwa, is.numeric)]
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

Variabel RiskLevel tidak disertakan dalam perhitungan karena merupakan data kategorikal, sedangkan analisis matrix memerlukan data numerik. Oleh karena itu analisis akan difokuskan pada enam variabel numerik, yakni Age, SystolicBP, DiastolicBP, BS, BodyTemp, dan HeartRate.

Correlation Matrix

cor_matrix <- cor(data_numeric)
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

Visualisasi Correlation

library(corrplot)
## corrplot 0.95 loaded
corrplot(cor_matrix, method = "color", addCoef.col="black")

Interpretasi Correlation Matrix:

Correlation matrix digunakan untuk mengetahui kekuatan serta arah hubungan antar variabel numerik. Nilai korelasi berada pada rentang -1 hingga 1, dimana nilai positif menunjukkan hubungan searah sedangkan nilai negatif menunjukkan hubungan berlawanan arah.

Berdasarkan hasil perhitungan, terdapat hubungan positif yang kuat antara variabel SystolicBP dan DiastolicBP dengan nilai korelasi sebesar 0,79. Hal ini menunjukkan bahwa peningkatan tekanan darah sistolik cenderung diikuti oleh peningkatan tekanan darah diastolik. Variabel Age memiliki hubungan positif sedang dengan SystolicBP, DiastolicBP, dan BS (Blood Glucose), hal ini menunjukkan adanya kecenderungan peningkatan tekanan darah dan kadar gula darah seiring bertambahnya usia. Sementara itu, BodyTemp dan HeartRate menunjukkan korelasi yang relatif lemah terhadap variabel lainnya, sehingga pengaruhnya dalam hubungan antar variabel cenderung kecil.

Variance-Covariance Matrix

cov_matrix <- cov(data_numeric)
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

Interpretasi Variance-Covariance Matrix:

Variance-Covariance Matrix digunakan untuk melihat tingkat variasi masing-masing variabel serta arah hubungan antar variabel berdasarkan skala data asli. Nilai diagonal utama menunjukkan varians, sedangkan nilai diluar diagonal menunjukkan kovarians antar variabel. Secara umum, nilai kovarians yang besar menunjukkan adanya hubungan yang lebih kuat dalam skala data asli, sedangkan nilai yang mendekati nol menunjukkan hubungan yang lemah antar variabel.

Berdasarkan hasil perhitungan yang telah dilakukan, variabel SystolicBP memiliki varians paling besar (338.704005) kemudian diikuti oleh DiastolicBP (192.815323) dan Age (181.559065). Hal ini menunjukkan bahwa ketiga variabel tersebut memiliki tingkat penyebaran data yang tinggi dibandingkan dengan variabel lainnya. Sementara itu, variabel BodyTemp memiliki varians yang paling kecil yakni 1.8806951, hal ini menunjukkan bahwa data suhu badan cenderung lebih stabil.

Nilai covariance dibagi menjadi dua yakni positif (naik secara bersamaan) dan negatif (berlawanan). Untuk nilai kovarians positif yakni antara SystolicBP dan DiastolicBP (201.121845) dan juga antara Age dan SystolicBP (103.171539), menunjukkan bahwa kedua variabel tersebut cenderung akan meningkat secara bersamaan. Sedangkan untuk kovarians negatif yakni antara BodyTemp dan SystolicBP (-7.2338429), menunjukkan adanya kecenderungan berlawanan arah, meskipun nilainya relatif kecil.

Eigen Value

eigen <- eigen(cor_matrix)

eigen_value <- eigen$values
eigen_value
## [1] 2.6078934 1.1443812 0.8370499 0.7063345 0.4925435 0.2117975
persentase <- eigen_value / sum(eigen_value) * 100
persentase
## [1] 43.464890 19.073020 13.950832 11.772242  8.209058  3.529959

Interpretasi Eigen Value:

Analisis eigen digunakan untuk mengetahui besarnya kontribusi setiap komponen utama dalam menjelaskan variasi total data serta memahami struktur hubungan antar variabel. Pada analisis digunakan matriks korelasi karena variabel memiliki skala dan satuan yang berbeda, sehingga data secara matematis dianggap telah distandardisasi dan setiap variabel memiliki kontribusi yang seimbang dalam analisis.

Berdasarkan hasil perhitungan, komponen utama pertama memiliki nilai eigen sebesar 2.6078934 yang mampu menjelaskan sekitar 43.46% dari total variasi data. Komponen kedua memiliki nilai eigen sebesar 1.1443812 dengan kontribusi variasi sebesar 19.07%. Komponen ketiga hingga keenam memiliki nilai eigen yang lebih kecil, masing-masing memberikan kontribusi variasi kurang dari 15%. Hal ini menunjukkan bahwa sebagian besar informasi dalam dataset dapat direpresentasikan oleh beberapa komponen utama pertama, sehingga komponen dengan nilai eigen lebih besar memiliki kontribusi yang lebih dominan dalam menjelaskan variasi data yang telah distandardisasi.

Eigen Vector

eigen$vectors
##            [,1]       [,2]       [,3]       [,4]        [,5]        [,6]
## [1,] -0.4360752  0.1729019  0.2404386 -0.5550931 -0.64321080  0.01685752
## [2,] -0.5296016 -0.1128996 -0.2415842  0.3633726 -0.09386670 -0.71243407
## [3,] -0.5225675 -0.1230416 -0.2990961  0.3544156 -0.07810122  0.70043934
## [4,] -0.4255290  0.3528904 -0.1153507 -0.4254237  0.70709921 -0.01063092
## [5,]  0.2735090  0.4293197 -0.8093439 -0.1305413 -0.26067118 -0.02914362
## [6,] -0.0200401  0.7958469  0.3549994  0.4859993 -0.05856920  0.02399757

Interpretasi Eigen Vector:

Eigen vector menunjukkan bobot atau kontribusi masing-masing variabel terhadap pembentukan komponen utama. Nilai dengan absolut terbesar menunjukkan variabel yang paling dominan pada komponen tersebut.

Pada komponen utama pertama, nilai terbesar terdapat pada variabel SystolicBP, DiastolicBP, Age, dan BS. Hal ini menunjukkan bahwa komponen utama pertama merepresentasikan variasi umum yang berkaitan dengan tekanan darah, usia, serta kadar gula darah. Komponen utama kedua dipengaruhi oleh HeartRate, sedangkan komponen utama ketiga didominasi oleh variabel BodyTemp. Sementara itu, komponen utama selanjutnya menunjukkan kontribusi yang lebih spesifik dari masing-masing variabel, sehingga merepresentasikan variasi individual yang lebih kecil dalam data.