Library:
> # install.packages("knitr")
> # install.packages("rmarkdown")
> # install.packages("prettydoc")
> # install.packages("equatiomatic")
> library(knitr)
> library(rmarkdown)
> library(prettydoc)
> library(equatiomatic)Penyakit jantung koroner (PJK) merupakan penyakit tidak menular yang menjadi penyebab kematian nomor satu di dunia (Naomi dkk., 2021). Menurut Organisasi Kesehatan Dunia (WHO), penyakit jantung koroner menyumbang hampir 17,9 juta kematian setiap tahun. Penyakit jantung koroner disebabkan oleh faktor risiko yang dapat diubah dan tidak dapat diubah (Ramadhan & Husnah, 2022). Faktor risiko seperti hipertensi, hyperlipidemia, diabetes, obesitas, serta gaya hidup tidak sehat merupakan faktor risiko yang dapat diubah sedangkan usia, jenis kelamin, ras dan riwayat keluarga merupakan faktor risiko yang tidak dapat diubah. Pemahaman yang mendalam mengenai faktor-faktor yang memengaruhi kesehatan jantung menjadi sangat penting untuk pengembangan strategi pencegahan yang efektif.
Penelitian menunjukkan bahwa pola konsumsi makanan yang tinggi lemak jenuh, kolesterol, dan gula dapat berkontribusi pada meningkatnya risiko penyakit jantung. Selain itu, individu dengan riwayat keluarga yang memiliki penyakit jantung mungkin memiliki kecenderungan yang lebih tinggi untuk mengalami kondisi serupa. Kondisi psikososial, termasuk stres dan tekanan di tempat kerja, juga telah diidentifikasi sebagai faktor yang dapat mempengaruhi kesehatan jantung. Oleh karena itu, penting untuk memahami bagaimana berbagai faktor ini saling berinteraksi dan berkontribusi terhadap penyakit jantung.
Faktor-faktor seperti tekanan darah saat istirahat dan kadar kolesterol serum menjadi indikator kunci dalam menilai kesehatan jantung seseorang. Selain itu, hasil tes seperti elektrokardiogram (ECG) dan respons jantung terhadap stres fisik juga memberikan wawasan tentang kondisi jantung secara keseluruhan. Berdasarkan latar belakang ini, maka peneliti memiliki tujuan untuk mengetahui gambaran pemahaman yang lebih mendalam mengenai faktor-faktor yang berkontribusi terhadap penyakit jantung koroner.
Jenis penelitian ini adalah penelitian kuantitatif dengan menggunakan metode Principal Component Analysis (PCA) dan Faktor Analysis (FA). Dalam analisis data yang melibatkan banyak variabel, seperti pada penelitian mengetahui faktor penyakit jantung koroner, penting untuk menerapkan teknik yang dapat mereduksi dimensi dan mengekstraksi informasi utama. Dua metode yang dapat digunakan adalah Analisis Komponen Utama (PCA) dan Analisis Faktor (FA). PCA berfungsi untuk mengubah sekumpulan variabel berkorelasi menjadi variabel baru yang tidak berkorelasi, sehingga membantu mengidentifikasi komponen utama yang menjelaskan variasi terbesar dalam data. Dalam dataset penyakit jantung koroner yang mencakup atribut seperti umur, jenis kelamin, tekanan darah, dan kolesterol serum, PCA digunakan untuk mengidentifikasi faktor risiko utama yang berkontribusi terhadap penyakit jantung koroner.
Sementara itu, FA bertujuan untuk mengidentifikasi faktor-faktor yang mendasari variasi dalam data sehingga memahami dengan baik struktur data. Dengan menerapkan FA pada dataset yang mencakup variabel seperti jenis nyeri dada, hasil elektrokardiogram, dan faktor lainnya, peneliti dapat menemukan pola dan mengelompokkan variabel yang saling berkaitan. Penggunaan PCA dan FA dalam analisis faktor risiko penyakit jantung koroner tidak hanya mempermudah pemahaman tentang faktor risiko, tetapi juga membantu dalam merumuskan strategi pencegahan yang efektif berdasarkan temuan yang relevan dari data yang dianalisis.
Apa saja indikator utama atau indikator yang berperan besar dalam menjelaskan faktor-faktor risiko utama penyakit jantung koroner?
Untuk mengidentifikasi indikator utama atau indikator yang memiliki dampak signifikan terhadap faktor-faktor risiko utama penyakit jantung.
Untuk mengidentifikasi faktor-faktor risiko yang mempengaruhi penyakit jantung koroner berdasarkan indikator yang ada.
Principal Component Analysis (PCA) adalah analisis multivariat yang efektif untuk melakukan ekstraksi data berdimensi tinggi menjadi ruang berdimensi rendah dari suatu dataset tanpa kehilangan karakteristik data (Wulandari dkk., 2016). Tujuan utama dari PCA adalah untuk mengidentifikasi pola dan struktur dalam data yang kompleks dengan merepresentasikan data dalam ruang dimensi yang lebih rendah.
PCA menghasilkan kombinasi linear baru dari variabel asli yang disebut komponen-komponen utama. Komponen-komponen utama ini adalah vektor eigen yang menggambarkan arah dengan varian tertinggi dalam data. Dengan menggunakan komponen-komponen utama ini, data dapat direpresentasikan dalam ruang dimensi yang lebih rendah, yang memudahkan analisis dan pengambilan keputusan. PCA juga digunakan dalam berbagai aplikasi seperti reduksi noise, pengenalan pola, dan visualisasi data.
Terdapat beberapa langkah utama dalam melakukan PCA apabila menggunakan matriks korelasi:
Menghitung korelasi: Matriks korelasi menunjukkan sejauh mana variabel-variabel dalam dataset berkorelasi satu sama lain. Matriks korelasi adalah dasar untuk menghitung nilai eigen dan vektor eigen yang kemudian digunakan untuk menentukan komponen utama dalam PCA.
Menghitung Nilai Eigen: Nilai eigen adalah karaktersitik dari suatu vektor yang berukuran 𝑛 × 𝑛. Nilai eigen dihitung dari matriks kovariansi.
Memilih Komponen Utama: Komponen-komponen utama adalah vektor eigen yang memiliki nilai eigen tertinggi. Komponen-komponen ini mewakili arah yang paling signifikan dalam ruang fitur.
Menghitung Skor Komponen Utama: Matriks ini digunakan untuk memproyeksikan data asli ke dalam ruang berdimensi lebih rendah, menghasilkan dataset yang telah direduksi.
Reduksi Dimensi: Pemilihan jumlah komponen utama yang akan dipertahankan untuk mengurangi dimensi dataset.
Analisis faktor merupakan analisis multivariat yang dirancang untuk meneliti sifat hubungan antara variabel-variabel dalam satu perangkat tertentu yang pada dasarnya menunjukkan pola hubungan tertentu (Purwanto, 2004).
Tujuan utama analisis faktor adalah mendefinisikan struktur suatu data matriks dan menganalisis struktur saling hubungan (korelasi) antar sejumlah besar variabel dengan cara mendefinisikan satu set kesamaan variabel atau dimensi yang disebut juga faktor.
Uji KMO adalah suatu uji untuk menunjukkan apakah metode sampling yang digunakan memenuhi syarat atau tidak, yang berimplikasi pada layak atau tidaknya suatu data untuk dilakukan analisis komponen utama dan analisis faktor. Rumus matematis dari KMO sebagai berikut:
\[ KMO = \frac{\sum_{i}^{p} \sum_{j=1}^{p} r_{ij}^2}{\sum_{i}^{p} \sum_{j=1}^{p} r_{ij}^2 + \sum_{i}^{p} \sum_{j=1}^{p} a_{ij}^2} \]
Dimana:
\(r_{ij}\) : koefisien korelasi antara i dan j
\(a_{ij}\) : koefisien korelasi parsial antara i dan j
Menurut Wangge (2021) data observasi layak dianalisis menggunakan PCA dan FA jika nilai KMO (Kaiser Meyer Olkin) > 0,5. Sehingga kriteria untuk uji kecukupan sampel secara keseluruhan menggunakan Kaiser Mayer Olkin (KMO) sebagai berikut:
KMO-Criterion : KMO > 0,50
Measure of Sampling Adequacy atau MSA adalah sebuah statistik yang berguna untuk mengukur seberapa tepat suatu variabel terprediksi oleh variabel lain dengan error yang relatif kecil. Jika terdapat variabel yang memiliki nilai MSA kurang dari 0.5, maka variabel tersebut harus dikeluarkan. Setelah variabel tersebut dikeluarkan, lakukan Uji Bartlett dan KMO kembali.
Menurut Shrestha (2021), uji Bartlett digunakan untuk menguji hipotesis nol bahwa matriks korelasi variabel adalah matriks identitas (tidak ada korelasi antara variabel-variabel tersebut) melawan hipotesis alternatif, yaitu matriks korelasi variabel tidak orthogonal (berkorelasi cukup kuat sehingga matriks korelasinya menyimpang secara signifikan dari matriks identitas). Uji ini membantu menentukan apakah data cukup berkorelasi untuk dilanjutkan analisis faktor.
Hipotesis:
\(H_{0}=Tidak\ terdapat\ korelasi\ yang\ signifikan\ antar\ variabel\)
\(H_{1}= Terdapat\ korelasi\ yang\ signifikan\ antar\ variabel\)
Data yang digunakan untuk analisis berasal dari kaggle dataset. Terdapat 13 indikator dengan 1026 sampel yang berperan besar dalam menjelaskan faktor-faktor yang berkaitan dengan penyakit jantung. Berikut adalah 13 indikator yang bisa mewakili berbagai indikator yang ada, yaitu:
\(X_1\) : umur (age)
\(X_2\) : jenis kelamin (1 = pria ; 0 = wanita) (sex)
\(X_3\) : jenis nyeri dada (cp)
\(X_4\) : tekanan darah saat istirahat (trestbps)
\(X_5\) : kolesterol serum (chol)
\(X_6\) : fasting blood sugar (fbs)
\(X_7\) : resting ECG results (restecg)
\(X_8\) : Detak jantung maksimum (thalach)
\(X_9\) : Exercise Induced Angina (exang)
\(X_{10}\) : Oldpeak
\(X_{11}\) : Slope
\(X_{12}\) : Jumlah Pembuluh Darah Utama dengan Penyempitan (ca)
\(X_{13}\) : Thal
Cuplikan data:
Mengimpor data dari file excel dengan cara membaca file Excel menggunakan fungsi read_excel(), lalu menyimpannya dalam “data”.
> data<-read_excel("D:/RAHMADIAN/Heart Disease.xlsx")
> data
# A tibble: 1,025 × 13
age sex cp trestbps chol fbs restecg thalach exang oldpeak slope
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 52 1 0 125 212 0 1 168 0 1 2
2 53 1 0 140 203 1 0 155 1 3.1 0
3 70 1 0 145 174 0 1 125 1 2.6 0
4 61 1 0 148 203 0 1 161 0 0 2
5 62 0 0 138 294 1 1 106 0 1.9 1
6 58 0 0 100 248 0 0 122 0 1 1
7 58 1 0 114 318 0 2 140 0 4.4 0
8 55 1 0 160 289 0 0 145 1 0.8 1
9 46 1 0 120 249 0 0 144 0 0.8 2
10 54 1 0 122 286 0 0 116 1 3.2 1
# ℹ 1,015 more rows
# ℹ 2 more variables: ca <dbl>, thal <dbl>
> View(data)Digunakan untuk menampilkan struktur objek data seperti tipe data objek, jumlah elemen dalam objek, dan informasi lainnya. Hal ini dilakukan untuk memastikan tipe data sudah benar.
str(data)
Digunakan untuk memberikan pemahaman awal mengenai data yang akan diuji. Menampilkan statistik deskriptif (informasi seperti mean, median, maksimum, minimum, dan kuartil) dari tiap variabel yang ada.
summary(data)
Uji KMO dihitung dengan fungsi KMOS() dan harus mengaktifkan packages REdaS agar fungsi dapat dijalankan. Menghitung kecukupan sampel keseluruhan dengan KMOS > 0.5 dan kecukupan sampel tiap variabel dengan MSA > 0.5 yang menyatakan bahwa data cocok untuk dilakukan ekstraksi PCA dan PFA.
Jika nilai MSA < 0.5 maka variabel tersebut tidak dapat di analisis lebih lanjut.
KMOS(data)
Uji Bartlett digunakan untuk memeriksa apakah terdapat hubungan antar variabel dan menentukan apakah data cocok untuk analisis faktor. Apabila p-value ≤ 0.05 data cocok untuk analisis faktor.
bart_spher(data)
Digunakan fungsi cor() untuk menghitung korelasi antar variabel pada data yang akan disimpan pada korelasi.
Fungsi corrplot() digunakan untuk visualisasi korelasi dengan menampilkan nilai korelasi pada setiap sel matriks sehingga memahami dan mengukur bagaimana dua atau lebih variabel saling berhubungan atau berinteraksi.
korelasi<-cor(data)
corrplot(korelasi, method="number", type="lower", Width= 1000, Height=500)
Digunakan untuk menghitung nilai eigen dari matriks korelasi untuk melihat kontribusi setiap komponen dalam data. Diambil eigen yang bernilai > 1 untuk dilakukan analisis FA dan PCA. Sebelum menghitung nilai eigen dilakukan standarisasi data terlebih dahulu untuk membentuk matriks varian kovarian.
nilaieigen <- eigen(s)$values
nilaieigen
Membuat scree plot yang menampilkan nilai eigen sebagai kriteria pemilihan banyak faktor dengan menggunakan fungsi plot().
Menambahkan garis yang menghubungkan nilai eigen dalam plot dengan fungsi lines().
Menambahkan garis horizontal berwarna merah pada y=1, yang menunjukkan batas umum untuk menentukan faktor, dimana apabila nilai eigen > 1 maka akan berada diatas garis horizontal dan merupakan banyaknya faktor bermakna yang akan diesktrak.
scrplot <- plot(nilaieigen, main = "Scree Plot", xlab = "Factors",ylab="Eigen Values", pch = 20, col = "red", type = "o", lwd = 1.5)
axis(1, at = seq(1,28))
abline(h = 1, col = "red", lty = 2, lwd = 1.5)
Digunakan untuk melakukan analisis PCA dengan mereduksi dimensi data multidimensi, mengidentifikasi pola dan struktur dalam data, serta memberikan ringkasan statistik, termasuk proporsi varians yang dijelaskan oleh masing-masing komponen.
analisis_pca <- prcomp(data, center = TRUE, scale. = TRUE)
analisis_pca
Digunakan untuk menghitung empat komponen utama dari data asli.
round(analisis_pca$rotation[,1:4],4)
Digunakan untuk memberikan ringkasan hasil analisis PCA yang mencakup informasi mengenai proporsi variansi, kumulatif proporsi, standar deviasi.
summary(analisis_pca)
Melakukan Analisis Faktor dengan menggunakan fungsi fa() dan terlebih dahulu menginstall packages psych. Analisis Faktor dengan empat faktor dan rotasi varimax.
PFA = fa(r = korelasi, nfactors = 4, rotate = "varimax")
PFA
Digunakan untuk membuat diagram agar visualiasi dari hubungan antar-variabel dengan masing-masing faktor yang dihasilkan dari analisis faktor.
loads=PFA$loadings
fa.diagram(PFA)
round(PFA$loadings[1:13,],4)
> str(data)
tibble [1,025 × 13] (S3: tbl_df/tbl/data.frame)
$ age : num [1:1025] 52 53 70 61 62 58 58 55 46 54 ...
$ sex : num [1:1025] 1 1 1 1 0 0 1 1 1 1 ...
$ cp : num [1:1025] 0 0 0 0 0 0 0 0 0 0 ...
$ trestbps: num [1:1025] 125 140 145 148 138 100 114 160 120 122 ...
$ chol : num [1:1025] 212 203 174 203 294 248 318 289 249 286 ...
$ fbs : num [1:1025] 0 1 0 0 1 0 0 0 0 0 ...
$ restecg : num [1:1025] 1 0 1 1 1 0 2 0 0 0 ...
$ thalach : num [1:1025] 168 155 125 161 106 122 140 145 144 116 ...
$ exang : num [1:1025] 0 1 1 0 0 0 0 1 0 1 ...
$ oldpeak : num [1:1025] 1 3.1 2.6 0 1.9 1 4.4 0.8 0.8 3.2 ...
$ slope : num [1:1025] 2 0 0 2 1 1 0 1 2 1 ...
$ ca : num [1:1025] 2 0 0 1 3 0 3 1 0 2 ...
$ thal : num [1:1025] 3 3 3 3 2 2 1 3 3 2 ...Interpretasi: Berdasarkan output diatas, dapat dilihat bahwa tipe data pada indikator \(X_1\) sampai dengan \(X_{13}\) adalah numerik sehingga dapat dilakukan analisis PCA dan FA.
> summary(data)
age sex cp trestbps
Min. :29.00 Min. :0.0000 Min. :0.0000 Min. : 94.0
1st Qu.:48.00 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:120.0
Median :56.00 Median :1.0000 Median :1.0000 Median :130.0
Mean :54.43 Mean :0.6956 Mean :0.9424 Mean :131.6
3rd Qu.:61.00 3rd Qu.:1.0000 3rd Qu.:2.0000 3rd Qu.:140.0
Max. :77.00 Max. :1.0000 Max. :3.0000 Max. :200.0
chol fbs restecg thalach
Min. :126 Min. :0.0000 Min. :0.0000 Min. : 71.0
1st Qu.:211 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:132.0
Median :240 Median :0.0000 Median :1.0000 Median :152.0
Mean :246 Mean :0.1493 Mean :0.5298 Mean :149.1
3rd Qu.:275 3rd Qu.:0.0000 3rd Qu.:1.0000 3rd Qu.:166.0
Max. :564 Max. :1.0000 Max. :2.0000 Max. :202.0
exang oldpeak slope ca
Min. :0.0000 Min. :0.000 Min. :0.000 Min. :0.0000
1st Qu.:0.0000 1st Qu.:0.000 1st Qu.:1.000 1st Qu.:0.0000
Median :0.0000 Median :0.800 Median :1.000 Median :0.0000
Mean :0.3366 Mean :1.072 Mean :1.385 Mean :0.7541
3rd Qu.:1.0000 3rd Qu.:1.800 3rd Qu.:2.000 3rd Qu.:1.0000
Max. :1.0000 Max. :6.200 Max. :2.000 Max. :4.0000
thal
Min. :0.000
1st Qu.:2.000
Median :2.000
Mean :2.324
3rd Qu.:3.000
Max. :3.000 Interpretasi: Berdasarkan summary di atas, faktor penyebab penyakit jantung tertinggi adalah kolesterol serum (chol) dengan nilai maksimum sebesar 564 dan minimum sebesar 126. Dapat dilihat pula median, rata-rata, kuartil 1 dan kuartil 3 dari masing-masing variabel.
> KMOS(data)
Kaiser-Meyer-Olkin Statistics
Call: KMOS(x = data)
Measures of Sampling Adequacy (MSA):
age sex cp trestbps chol fbs restecg thalach
0.6406970 0.5111051 0.6952667 0.6564268 0.5701925 0.5296711 0.6499633 0.7096608
exang oldpeak slope ca thal
0.7311165 0.6954972 0.6600020 0.6925499 0.7018959
KMO-Criterion: 0.6718178Interpretasi: Dari hasil diatas diperoleh nilai KMO-Criterion sebesar 0,6718178 menunjukkan sampel secara keseluruhan sudah cukup baik sehingga analisis faktor dapat diterapkan. Nilai MSA setiap indikator bernilai > 0,5 sehingga semua indikator dapat dipakai dan tidak perlu ada yang dihilangkan.
> bart_spher(data)
Bartlett's Test of Sphericity
Call: bart_spher(x = data)
X2 = 1924.745
df = 78
p-value < 2.22e-16Keputusan:
Diperoleh p-value (2,22e-16) < alpha (0,05), maka tolak \(H_{0}\).
Interpretasi:
Dengan taraf nyata 5% dapat dibuktikan bahwa terdapat korelasi yang signifikan antar variabel, sehingga data layak digunakan untuk analisis faktor.
Interpretasi: Berdasarkan plot korelasi di atas, semakin mendekati 1 atau -1 maka mengindikasikan adanya korelasi yang kuat antar variabel. Warna biru menunjukkan korelasi positif dan warna merah menunjukkan korelasi negatif.
> nilaieigen <- eigen(korelasi)$values
> nilaieigen
[1] 2.7780886 1.5563547 1.2009899 1.1692251 0.9991703 0.9723440 0.8764321
[8] 0.7679851 0.7259385 0.6304588 0.5222560 0.4316546 0.3691024Interpretasi: Banyaknya faktor yang dapat diambil untuk analisis PCA dan FA apabila memiliki nilai eigen ≥ 1. Dari output diatas, dapat dilihat pada ($values) bahwa terdapat empat nilai eigen yang lebih besar sama dengan satu, sehingga terdapat 4 faktor bermakna yang akan diekstrak.
> scrplot <- plot(nilaieigen, main = "Scree Plot", xlab = "Factors",ylab="Eigen Values", pch = 20, col = "red", type = "o", lwd = 1.5)
> axis(1, at = seq(1,28))
> abline(h = 1, col = "red", lty = 2, lwd = 1.5)
Interpretasi: Berdasarkan scree plot di atas, terdapat
4 faktor yang memiliki nilai eigen lebih dari sama dengan satu, dimana
dapat diketahui dari titik yang berada diatas garis merah, sehingga
terdapat 4 faktor bermakna yang akan diekstrak.
> analisis_pca <- prcomp(data, center = TRUE, scale. = TRUE)
> analisis_pca
Standard deviations (1, .., p=13):
[1] 1.6667599 1.2475394 1.0958969 1.0813071 0.9995850 0.9860750 0.9361795
[8] 0.8763476 0.8520202 0.7940144 0.7226728 0.6570042 0.6075380
Rotation (n x k) = (13 x 13):
PC1 PC2 PC3 PC4 PC5
age 0.30957429 0.39828590 0.07061581 -0.053975000 -0.29098082
sex 0.07807315 -0.37907583 -0.61811299 -0.006603897 0.04959165
cp -0.28561649 0.27494742 -0.19828575 0.403411270 0.18848065
trestbps 0.17876028 0.43890862 -0.15467426 0.128735705 0.24170674
chol 0.12798537 0.36981882 0.25102077 -0.468203378 0.30588133
fbs 0.08071345 0.32147582 -0.44710748 0.176945920 -0.23302053
restecg -0.12949038 -0.24476033 0.23847204 0.179449801 -0.27456142
thalach -0.41696971 0.09383014 -0.19712826 -0.096198574 0.33395414
exang 0.36386912 -0.25861347 0.05094183 -0.129796270 0.01733791
oldpeak 0.42178071 -0.07052708 0.04417789 0.322653370 0.26036459
slope -0.38010767 0.06479208 -0.13789762 -0.481770584 -0.23578287
ca 0.26533438 0.10585787 -0.31928101 -0.219551288 -0.43239088
thal 0.21407015 -0.18261906 -0.25604786 -0.352832768 0.41654133
PC6 PC7 PC8 PC9 PC10
age 0.204217643 -0.24972792 0.235570449 0.38354720 -0.004413244
sex -0.015825316 -0.18461138 0.104707020 0.19885503 0.546399361
cp 0.228270876 -0.21608709 -0.122017204 0.32764226 0.141045349
trestbps 0.139863370 0.31043338 0.622511313 -0.28912931 0.144484894
chol 0.005674088 0.06174076 -0.411462797 0.15469720 0.482186888
fbs -0.280946311 0.51799704 -0.361285837 0.22415767 -0.188297162
restecg 0.632246902 0.51124137 -0.076549231 0.11515457 0.251059171
thalach 0.056088022 0.16528679 -0.139151618 -0.35656449 0.030142330
exang -0.310501938 0.38598061 0.135022537 0.08873921 0.193727198
oldpeak 0.165167075 -0.05470599 -0.213248766 -0.24753276 0.088694390
slope 0.062540300 0.08579376 0.255842229 0.03500902 0.080007542
ca 0.303058951 -0.17422831 -0.277229428 -0.50916050 0.025494095
thal 0.430212377 0.09990957 -0.008056082 0.27965901 -0.525653141
PC11 PC12 PC13
age -0.114808392 -0.542604630 0.196650383
sex -0.282642847 -0.002102140 0.048550401
cp 0.594051334 0.106640161 -0.006520311
trestbps -0.066094214 0.253215850 0.008688660
chol -0.100809577 0.176413503 -0.014110640
fbs -0.159851742 -0.020627094 -0.123147660
restecg -0.099844597 0.003987959 0.075031370
thalach -0.039871620 -0.596808838 0.349352249
exang 0.627112068 -0.213462655 0.181965094
oldpeak -0.002602341 -0.374394435 -0.598510892
slope 0.186794655 -0.162135897 -0.631722802
ca 0.270128417 0.155415227 0.158785292
thal 0.035423984 0.078498868 0.014116313> round(analisis_pca$rotation[,1:4],4)
PC1 PC2 PC3 PC4
age 0.3096 0.3983 0.0706 -0.0540
sex 0.0781 -0.3791 -0.6181 -0.0066
cp -0.2856 0.2749 -0.1983 0.4034
trestbps 0.1788 0.4389 -0.1547 0.1287
chol 0.1280 0.3698 0.2510 -0.4682
fbs 0.0807 0.3215 -0.4471 0.1769
restecg -0.1295 -0.2448 0.2385 0.1794
thalach -0.4170 0.0938 -0.1971 -0.0962
exang 0.3639 -0.2586 0.0509 -0.1298
oldpeak 0.4218 -0.0705 0.0442 0.3227
slope -0.3801 0.0648 -0.1379 -0.4818
ca 0.2653 0.1059 -0.3193 -0.2196
thal 0.2141 -0.1826 -0.2560 -0.3528Interpretasi:
Persamaan yang terbentuk
\[ PC_1 = 0.3096X_1 + 0.0781X_2 - 0.2856X_3 + 0.1788X_4 + 0.1280X_5 + 0.0807X_6 - 0.1295X_7 - 0.4170X_8 + 0.3639X_9 + 0.4218X_{10} - 0.3801X_{11} + 0.2653X_{12} + 0.2141X_{13} \]
\[ PC_2 = 0.3983X_1 - 0.3791X_2 + 0.2749X_3 + 0.4389X_4 + 0.3698X_5 + 0.3215X_6 - 0.2448X_7 + 0.0938X_8 - 0.2586X_9 - 0.0705X_{10} + 0.0648X_{11} + 0.1059X_{12} - 0.1826X_{13} \]
\[ PC_3 = 0.0706X_1 - 0.6181X_2 - 0.1983X_3 - 0.1547X_4 + 0.2510X_5 - 0.4471X_6 + 0.2385X_7 - 0.1971X_8 + 0.0509X_9 + 0.0442X_{10} - 0.1379X_{11} - 0.3193X_{12} - 0.2560X_{13} \]
\[ PC_4 = - 0.0540X_1 - 0.0066X_2 + 0.4034X_3 + 0.1287X_4 - 0.4682X_5 + 0.1769X_6 + 0.1794X_7 - 0.0962X_8 - 0.1298X_9 + 0.3227X_{10} - 0.4818X_{11} - 0.2196X_{12} - 0.3528X_{13} \]
> summary(analisis_pca)
Importance of components:
PC1 PC2 PC3 PC4 PC5 PC6 PC7
Standard deviation 1.6668 1.2475 1.09590 1.08131 0.99959 0.9861 0.93618
Proportion of Variance 0.2137 0.1197 0.09238 0.08994 0.07686 0.0748 0.06742
Cumulative Proportion 0.2137 0.3334 0.42580 0.51574 0.59260 0.6674 0.73482
PC8 PC9 PC10 PC11 PC12 PC13
Standard deviation 0.87635 0.85202 0.7940 0.72267 0.6570 0.60754
Proportion of Variance 0.05908 0.05584 0.0485 0.04017 0.0332 0.02839
Cumulative Proportion 0.79389 0.84973 0.8982 0.93840 0.9716 1.00000Interpretasi: Berdasarkan output di atas, komponen utama pertama (PC1) dapat menjelaskan keragaman dari 13 variabel sebesar 21,37%, komponen utama kedua (PC2) sebesar 11,97%. komponen utama ketiga (PC3) sebesar 9,23 % dan komponen utama keempat (PC4) sebesar 7,686%.
> PFA = fa(r = korelasi, nfactors = 4, rotate = "varimax")
> PFA
Factor Analysis using method = minres
Call: fa(r = korelasi, nfactors = 4, rotate = "varimax")
Standardized loadings (pattern matrix) based upon correlation matrix
MR1 MR4 MR2 MR3 h2 u2 com
age -0.12 0.19 -0.14 0.62 0.454 0.5463 1.4
sex 0.00 0.15 0.99 -0.01 0.996 0.0042 1.0
cp 0.03 -0.69 0.06 0.07 0.486 0.5142 1.0
trestbps -0.12 -0.04 -0.06 0.43 0.203 0.7971 1.2
chol 0.04 0.11 -0.20 0.27 0.131 0.8690 2.3
fbs -0.03 -0.08 0.05 0.29 0.093 0.9073 1.2
restecg 0.03 -0.05 -0.03 -0.24 0.064 0.9358 1.1
thalach 0.35 -0.47 0.03 -0.21 0.389 0.6115 2.3
exang -0.24 0.55 0.06 0.03 0.368 0.6318 1.4
oldpeak -0.59 0.28 0.06 0.20 0.470 0.5296 1.7
slope 0.88 -0.13 0.00 -0.08 0.789 0.2108 1.1
ca -0.04 0.26 0.09 0.35 0.200 0.8004 2.0
thal -0.07 0.27 0.15 0.10 0.111 0.8886 2.1
MR1 MR4 MR2 MR3
SS loadings 1.34 1.32 1.08 1.02
Proportion Var 0.10 0.10 0.08 0.08
Cumulative Var 0.10 0.20 0.29 0.37
Proportion Explained 0.28 0.28 0.23 0.21
Cumulative Proportion 0.28 0.56 0.79 1.00
Mean item complexity = 1.5
Test of the hypothesis that 4 factors are sufficient.
df null model = 78 with the objective function = 1.89
df of the model are 32 and the objective function was 0.23
The root mean square of the residuals (RMSR) is 0.04
The df corrected root mean square of the residuals is 0.06
Fit based upon off diagonal values = 0.96
Measures of factor score adequacy
MR1 MR4 MR2 MR3
Correlation of (regression) scores with factors 0.89 0.81 0.99 0.75
Multiple R square of scores with factors 0.80 0.65 0.99 0.57
Minimum correlation of possible factor scores 0.59 0.30 0.98 0.14Interpretasi: Berdasarkan hasil analisis PFA terdapat 4 faktor yang mempengaruhi penyakit jantung koroner. Persamaan yang terbentuk:
\[ \begin{align*} X_1 (\text{age}) &= - 0.12 MR_1 - 0.14 MR_2 + 0.62 MR_3 + 0.19 MR_4 + \epsilon_1 \\ X_2 (\text{sex/jenis kelamin}) &= 0.00 MR_1 + 0.99 MR_2 - 0.01 MR_3 + 0.15 MR_4 + \epsilon_2 \\ X_3 (\text{cp}) &= 0.03 MR_1 - 0.69 MR_2 + - 0.06 MR_3 + 0.07 MR_4 + \epsilon_3 \\ X_4 (\text{trestbps}) &= -0.12 MR_1 + 0.83 MR_2 + 0.43 MR_3 - 0.04 MR_4 + \epsilon_4 \\ X_5 (\text{chol}) &= 0.04 MR_1 - 0.20 MR_2 + 0.27 MR_3 + 0.11 MR_4 + \epsilon_5 \\ X_6 (\text{fbs}) &= - 0.03 MR_1 + 0.05 MR_2 + 0.29 MR_3 - 0.08 MR_4 + \epsilon_6 \\ X_7 (\text{restecg}) &= 0.03 MR_1 - 0.03 MR_2 - 0.24 MR_3 - 0.05 MR_4 + \epsilon_7 \\ X_8 (\text{thalach}) &= 0.35 MR_1 - 0.03 MR_2 - 0.21 MR_3 - 0.47 MR_4 + \epsilon_8 \\ X_9 (\text{exang}) &= - 0.24 MR_1 + 0.06 MR_2 + 0.03 MR_3 + 0.55 MR_4 + \epsilon_9 \\ X_{10} (\text{oldpeak}) &= - 0.59 MR_1 + 0.06 MR_2 + 0.20 MR_3 + 0.28 MR_4 + \epsilon_{10} \\ X_{11} (\text{slop}) &= 0.88 MR_1 + 0.00 MR_2 - 0.08 MR_3 - 0.13 MR_4 + \epsilon_{11} \\ X_{12} (\text{cak}) &= - 0.04 MR_1 + 0.09 MR_2 + 0.35 MR_3 + 0.26 MR_4 + \epsilon_{12} \\ X_{13} (\text{thal}) &= - 0.07 MR_1 + 0.15 MR_2 + 0.10 MR_3 + 0.27 MR_4 + \epsilon_{13} \\ \end{align*} \]
> round(PFA$loadings[1:13,],4)
MR1 MR4 MR2 MR3
age -0.1208 0.1872 -0.1398 0.6201
sex -0.0030 0.1493 0.9866 -0.0118
cp 0.0341 -0.6902 0.0603 0.0682
trestbps -0.1223 -0.0409 -0.0583 0.4276
chol 0.0382 0.1149 -0.2027 0.2743
fbs -0.0344 -0.0793 0.0506 0.2875
restecg 0.0293 -0.0499 -0.0313 -0.2447
thalach 0.3533 -0.4690 0.0283 -0.2073
exang -0.2391 0.5535 0.0594 0.0330
oldpeak -0.5916 0.2766 0.0568 0.2017
slope 0.8754 -0.1317 -0.0013 -0.0750
ca -0.0403 0.2551 0.0895 0.3534
thal -0.0701 0.2700 0.1536 0.1002Interpretasi:
Setiap angka menunjukkan loading dari masing-masing faktor MR1, MR2, MR3, maupun MR4. Semakin tinggi nilainya, semakin memiliki korelasi signifikan dengan faktor tersebut, sehingga berdasarkan visualisasi diatas dapat dilihat bahwa:
Variabel yang memiliki korelasi tinggi dengan faktor MR1 adalah slope dengan korelasi sebesar 0.9 (korelasi positif) dan oldpeak dengan korelasi sebesar -0.6 (korelasi negatif).
Variabel yang memiliki korelasi tinggi dengan faktor MR2 adalah sex dengan korelasi sebesar 1 (korelasi positif).
Variabel yang memiliki korelasi tinggi dengan faktor MR3 adalah age dengan korelasi sebesar 0.6 (korelasi positif), trestbps dengan korelasi sebesar 0.4 (korelasi positif), dan ca dengan korelasi sebesar 0.4 (korelasi positif).
Variabel yang memiliki korelasi tinggi dengan faktor MR4 adalah cp dengan korelasi sebesar -0.7 (korelasi negatif), exang dengan korelasi sebesar 0.6 (korelasi positif), dan talach dengan korelasi sebesar -0.6 (korelasi negatif).
Hasil dari analisis faktor menghasilkan 4 buah faktor yang dapat dikelompokkan berdasarkan indikator-indikator masing-masing.
Faktor-faktor tersebut diinterpretasikan sebagai :
Faktor MR1: Dapat diinterpretasikan sebagai respons jantung terhadap aktivitas fisik. Hal ini didasarkan pada korelasi tinggi dengan variabel slope dan oldpeak, yang menunjukkan respons jantung terhadap aktivitas fisik atau stres.
Faktor MR2: Dapat diinterpretasikan sebagai Indikator jenis kelamin. Variabel sex memiliki korelasi sempurna dengan faktor ini.
Faktor MR3: Dapat diinterpretasikan sebagai faktor usia dan kondisi fisik umum. Faktor ini berkorelasi dengan age, trestbps (tekanan darah saat istirahat), dan ca (jumlah pembuluh darah utama dengan penyempitan), yang dapat mencerminkan risiko penyakit jantung koroner yang meningkat seiring bertambahnya usia dan kondisi kesehatan.
Faktor MR4: Dapat diinterpretasikan sebagai faktor gejala klinis. Faktor ini berkaitan dengan cp (jenis nyeri dada), exang (exercise induced angina), dan thalach (detak jantung maksimum), yang menunjukkan gejala klinis dan fisik yang berkaitan dengan penyakit jantung koroner.
Berdasarkan hasil analisis, dapat ditarik kesimpulan:
Terdapat 4 faktor bermakna yang dapat diekstrak dari 13 variabel/indikator faktor-faktor yang berkaitan dengan penyakit jantung.
Persamaan dari analisis komponen utama sebagai berikut.
\[ PC_1 = 0.3096X_1 + 0.0781X_2 - 0.2856X_3 + 0.1788X_4 + 0.1280X_5 + 0.0807X_6 - 0.1295X_7 - 0.4170X_8 + 0.3639X_9 + 0.4218X_{10} - 0.3801X_{11} + 0.2653X_{12} + 0.2141X_{13} \]
\[ PC_2 = 0.3983X_1 - 0.3791X_2 + 0.2749X_3 + 0.4389X_4 + 0.3698X_5 + 0.3215X_6 - 0.2448X_7 + 0.0938X_8 - 0.2586X_9 - 0.0705X_{10} + 0.0648X_{11} + 0.1059X_{12} - 0.1826X_{13} \]
\[ PC_3 = 0.0706 - 0.6181X_2 - 0.1983X_3 - 0.1547X_4 + 0.2510X_5 - 0.4471X_6 + 0.2385X_7 - 0.1971X_8 + 0.0509X_9 + 0.0442X_{10} - 0.1379X_{11} - 0.3193X_{12} - 0.2560X_{13} \]
\[ PC_4 = - 0.0540X_1 - 0.0066X_2 + 0.4034X_3 + 0.1287X_4 - 0.4682X_5 + 0.1769X_6 + 0.1794X_7 - 0.0962X_8 - 0.1298X_9 + 0.3227X_{10} - 0.4818X_{11} - 0.2196X_{12} - 0.3528X_{13} \]
Berdasarkan analisis yang sudah dilakukan, dapat dilakukan analisis lanjutan dengan memperbanyak indikator-indikator lain terkait faktor penyakit jantung.
Naomi, W. S., Picauly, I. Toy, S. M. (2021). Faktor Risiko Kejadian Penyakit Jantung Koroner (Studi Kasus di RSUD Prof. Dr. W. Z Johannes Kupang). Media Kesehatan Masyarakat. (3)1, hal 99-100.
Purwanto. (2004). ANALISIS FAKTOR:KONSEP, PROSEDUR UJI DAN INTERPRETASI. Teknodik. 8(15), hal 156.
Ramadhan, M. H. & Husnah. (2022). Faktor Risiko Penyakit Jantung Koroner. Jurnal Kedokteran Syiah Kuala.
Shrestha, N. (2021). Factor Analysis as a Tool for Survey Analysis. American journal of Applied Mathematics and statistics. American journal of Applied Mathematics and statistics. 9(1), hal 4-11.
Wangge, M. (2021). Penerapan Metode Principal Component Analysis (PCA) Terhadap Faktorfaktor yang Mempengaruhi Lamanya Penyelesaian Skripsi Mahasiswa Program Studi Pendidikan Matematika FKIP UNDANA. Jurnal Cendekia: Jurnal Pendidikan Matematika. 5(2), hal 974-979.
Wulandari, D., Prahasto, T., Gunawan, V. (2016). Penerapan Principal Component Analysis untuk Mereduksi Dimensi Data Penerapan Teknologi Informasi dan Komunikasi untuk Pendidikan di Sekolah. Jurnal Sistem Informasi Bisnis. 2(1), hal 91-93.