Penerapan Analisis Komponen Utama dan Analisis Faktor untuk Mengidentifikasi Faktor Risiko Penyakit Jantung Koroner

Rahmadian Fitra Nugraha

9 November 2024


Library:

> # install.packages("knitr")
> # install.packages("rmarkdown")
> # install.packages("prettydoc")
> # install.packages("equatiomatic")
> library(knitr)
> library(rmarkdown)
> library(prettydoc)
> library(equatiomatic)

1 PENDAHULUAN

1.1 Latar Belakang

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.

1.2 Latar Belakang Metode

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.

1.3 Rumusan Masalah

Apa saja indikator utama atau indikator yang berperan besar dalam menjelaskan faktor-faktor risiko utama penyakit jantung koroner?

1.4 Tujuan Penelitian

  1. Untuk mengidentifikasi indikator utama atau indikator yang memiliki dampak signifikan terhadap faktor-faktor risiko utama penyakit jantung.

  2. Untuk mengidentifikasi faktor-faktor risiko yang mempengaruhi penyakit jantung koroner berdasarkan indikator yang ada.

1.5 Tinjauan Pustaka

1.5.1 Tinjauan Pustaka Metode

1.5.1.1 Analisis Komponen Utama

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:

  1. 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.

  2. Menghitung Nilai Eigen: Nilai eigen adalah karaktersitik dari suatu vektor yang berukuran 𝑛 × 𝑛. Nilai eigen dihitung dari matriks kovariansi.

  3. 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.

  4. Menghitung Skor Komponen Utama: Matriks ini digunakan untuk memproyeksikan data asli ke dalam ruang berdimensi lebih rendah, menghasilkan dataset yang telah direduksi.

  5. Reduksi Dimensi: Pemilihan jumlah komponen utama yang akan dipertahankan untuk mengurangi dimensi dataset.

1.5.1.2 Analisis Faktor

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.

1.5.2 Kaiser-Meyer-Olkin (KMO)

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

1.5.3 Measure of Sampling Adequacy (MSA)

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.

1.5.4 Bartlett’s Test of Sphericity

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\)

1.6 DATA DAN VARIABEL YANG DIGUNAKAN

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:

2 SOURCE CODE

2.1 Library

  1. Digunakan untuk membaca file excel dengan format file spreadsheet Microsoft Excel (xlsx).
> library(readxl)
  1. Digunakan untuk visualisasi matriks korelasi antar variabel.
> library(corrplot)
> library(ggcorrplot)
  1. Digunakan untuk uji KMO dan Bartlett.
> library(REdaS)
  1. Digunakan untuk analisis faktor dengan rotasi.
> library(psych)

2.2 Analisis Komponen Utama (PCA) dan Analisis Faktor (FA)

2.2.1 Import 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)

2.2.2 Stuktur 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)

2.3 Statistika Deskriptif

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)

2.4 Uji KMO

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)

2.5 Bartlett’s Test of Sphericity

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)

2.6 Eksplorasi Korelasi

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)

2.7 Nilai eigen

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

2.8 Scree Plot

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)

2.9 Analisis Komponen Utama (PCA)

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)

2.10 Analisis Faktor

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

2.11 Visualisai

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)

3 HASIL DAN INTERPRETASI

3.1 Stuktur Data

> 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.

3.2 Statistika Deskriptif

> 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.

3.3 Uji KMO

> 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.6718178

Interpretasi: 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.

3.4 Bartlett’s Test of Sphericity

> bart_spher(data)
    Bartlett's Test of Sphericity

Call: bart_spher(x = data)

     X2 = 1924.745
     df = 78
p-value < 2.22e-16

Keputusan:

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.

3.5 Eksplorasi Korelasi

> korelasi<-cor(data)
> corrplot(korelasi, method="number", type="lower")

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.

3.6 Nilai eigen

> 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.3691024

Interpretasi: 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.

3.7 Scree Plot

> 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.

3.8 Analisis Komponen Utama (PCA)

> 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.3528

Interpretasi:

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.00000

Interpretasi: 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%.

3.9 Analisis Faktor

> 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.14

Interpretasi: 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*} \]

3.10 Visualisai

> loads=PFA$loadings
> fa.diagram(PFA)

> 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.1002

Interpretasi:

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:

  • Faktor MR1

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).

  • Faktor MR2

Variabel yang memiliki korelasi tinggi dengan faktor MR2 adalah sex dengan korelasi sebesar 1 (korelasi positif).

  • Faktor MR3

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).

  • Faktor MR4

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.

4 Penutup

4.1 Kesimpulan

Berdasarkan hasil analisis, dapat ditarik kesimpulan:

  1. Terdapat 4 faktor bermakna yang dapat diekstrak dari 13 variabel/indikator faktor-faktor yang berkaitan dengan penyakit jantung.

  2. Persamaan dari analisis komponen utama sebagai berikut.

  • komponen utama 1

\[ 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} \]

  • Komponen utama 2

\[ 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} \]

  • Komponen utama 3

\[ 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} \]

  • Komponen utama 4

\[ 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} \]

  1. Berdasarkan analisis faktor (FA), faktor- faktor tersebut diinterpretasikan sebagai faktor respons jantung terhadap aktivitas fisik, faktor jenis kelamin, faktor usia dan kondisi fisik umur serta faktor gejala klinis.

4.2 Saran

Berdasarkan analisis yang sudah dilakukan, dapat dilakukan analisis lanjutan dengan memperbanyak indikator-indikator lain terkait faktor penyakit jantung.

4.3 Daftar Pustaka

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.