Data mentah diambil dari file hcvdata.csv. Langkah awal yang dilakukan adalah menyeleksi variabel numerik saja (umur dan hasil lab), serta membuang baris yang mengandung nilai kosong (NA). Variabel kategorikal seperti ID, kategori pasien, dan jenis kelamin tidak disertakan agar perhitungan matriks tidak error.
df_raw <- read.csv("hcvdata.csv")
df_siap <- na.omit(df_raw[, c(3, 5:14)])
head(df_siap)
## Age ALB ALP ALT AST BIL CHE CHOL CREA GGT PROT
## 1 32 38.5 52.5 7.7 22.1 7.5 6.93 3.23 106 12.1 69.0
## 2 32 38.5 70.3 18.0 24.7 3.9 11.17 4.80 74 15.6 76.5
## 3 32 46.9 74.7 36.2 52.6 6.1 8.84 5.20 86 33.2 79.3
## 4 32 43.2 52.0 30.6 22.6 18.9 7.33 4.74 80 33.8 75.7
## 5 32 39.2 74.1 32.6 24.8 9.6 9.15 4.32 76 29.9 68.7
## 6 32 41.6 43.3 18.5 19.7 12.3 9.92 6.05 111 91.0 74.0
Perhitungan matriks korelasi ini bertujuan untuk melihat keeratan hubungan linear antar variabel dengan skala standar -1 sampai 1.
cor_mat <- cor(df_siap)
print(round(cor_mat, 2))
## Age ALB ALP ALT AST BIL CHE CHOL CREA GGT PROT
## Age 1.00 -0.19 0.18 -0.04 0.07 0.04 -0.08 0.12 -0.03 0.14 -0.16
## ALB -0.19 1.00 -0.15 0.04 -0.18 -0.17 0.36 0.21 0.00 -0.15 0.57
## ALP 0.18 -0.15 1.00 0.22 0.07 0.06 0.03 0.13 0.15 0.46 -0.06
## ALT -0.04 0.04 0.22 1.00 0.20 -0.11 0.22 0.15 -0.04 0.22 0.02
## AST 0.07 -0.18 0.07 0.20 1.00 0.31 -0.20 -0.20 -0.02 0.48 0.02
## BIL 0.04 -0.17 0.06 -0.11 0.31 1.00 -0.32 -0.18 0.02 0.21 -0.05
## CHE -0.08 0.36 0.03 0.22 -0.20 -0.32 1.00 0.43 -0.01 -0.10 0.31
## CHOL 0.12 0.21 0.13 0.15 -0.20 -0.18 0.43 1.00 -0.05 0.01 0.25
## CREA -0.03 0.00 0.15 -0.04 -0.02 0.02 -0.01 -0.05 1.00 0.13 -0.03
## GGT 0.14 -0.15 0.46 0.22 0.48 0.21 -0.10 0.01 0.13 1.00 -0.04
## PROT -0.16 0.57 -0.06 0.02 0.02 -0.05 0.31 0.25 -0.03 -0.04 1.00
Interpretasi: Berdasarkan matriks korelasi di atas, terdapat beberapa poin penting:
Matriks kovarians digunakan untuk melihat varians masing-masing variabel pada diagonal utama serta arah hubungan antar variabel dalam satuan aslinya.
cov_mat <- cov(df_siap)
print(round(cov_mat, 2))
## Age ALB ALP ALT AST BIL CHE CHOL CREA GGT
## Age 98.63 -10.93 45.75 -8.41 23.74 6.86 -1.65 1.40 -12.66 77.32
## ALB -10.93 33.20 -21.82 4.75 -33.63 -17.01 4.56 1.37 0.42 -46.18
## ALP 45.75 -21.82 671.90 119.84 57.10 26.34 1.67 3.68 202.25 649.32
## ALT -8.41 4.75 119.84 435.27 136.22 -38.78 10.26 3.53 -38.19 248.91
## AST 23.74 -33.63 57.10 136.22 1080.23 177.11 -14.21 -7.47 -29.91 852.71
## BIL 6.86 -17.01 26.34 -38.78 177.11 302.99 -12.23 -3.57 17.57 199.03
## CHE -1.65 4.56 1.67 10.26 -14.21 -12.23 4.80 1.06 -1.35 -11.39
## CHOL 1.40 1.37 3.68 3.53 -7.47 -3.57 1.06 1.27 -2.95 0.54
## CREA -12.66 0.42 202.25 -38.19 -29.91 17.57 -1.35 -2.95 2570.18 345.09
## GGT 77.32 -46.18 649.32 248.91 852.71 199.03 -11.39 0.54 345.09 2948.75
## PROT -8.49 17.59 -8.75 1.87 3.06 -4.90 3.59 1.48 -8.17 -10.78
## PROT
## Age -8.49
## ALB 17.59
## ALP -8.75
## ALT 1.87
## AST 3.06
## BIL -4.90
## CHE 3.59
## CHOL 1.48
## CREA -8.17
## GGT -10.78
## PROT 28.61
Interpretasi: Output menunjukkan adanya ketimpangan skala data yang sangat mencolok:
Analisis eigen dilakukan untuk menentukan komponen utama yang mewakili keragaman data secara keseluruhan.
hasil_eigen <- eigen(cov_mat)
# Menampilkan Nilai Eigen
print("Nilai Eigen:")
## [1] "Nilai Eigen:"
print(round(hasil_eigen$values, 4))
## [1] 3592.3629 2477.4069 843.8984 489.7454 382.8105 232.9587 95.1114
## [8] 44.7180 12.3734 3.5687 0.8894
Interpretasi Nilai Eigen: * Dominasi Komponen 1 (PC1): Nilai eigen pertama sebesar 3592.36 sangat mendominasi dibandingkan nilai eigen lainnya. Hal ini berarti PC1 sudah merangkum mayoritas informasi keragaman dari seluruh dataset. * Penurunan nilai eigen yang sangat drastis setelah nilai ketiga menunjukkan bahwa komponen selanjutnya hanya memberikan kontribusi informasi yang kecil.
# Menampilkan Vektor Eigen
print("Vektor Eigen:")
## [1] "Vektor Eigen:"
print(round(hasil_eigen$vectors, 2))
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
## [1,] 0.02 -0.02 0.03 0.01 -0.09 -0.07 0.97 -0.22 0.00 -0.01 0.02
## [2,] -0.02 0.01 0.01 -0.01 0.06 -0.01 -0.16 -0.71 0.68 -0.08 0.00
## [3,] 0.22 0.00 0.45 0.60 -0.59 -0.15 -0.09 -0.02 0.02 -0.01 0.00
## [4,] 0.08 -0.06 0.02 0.67 0.61 0.40 0.08 0.01 -0.01 -0.02 0.00
## [5,] 0.30 -0.20 -0.84 0.28 -0.17 -0.25 -0.03 -0.01 0.02 0.01 -0.01
## [6,] 0.07 -0.03 -0.17 -0.12 -0.44 0.87 0.01 -0.05 0.01 0.03 0.00
## [7,] 0.00 0.00 0.01 0.02 0.03 -0.01 -0.02 -0.11 -0.01 0.97 0.22
## [8,] 0.00 0.00 0.01 0.01 0.01 0.00 0.01 -0.05 -0.03 0.21 -0.98
## [9,] 0.32 0.94 -0.11 0.01 0.04 0.01 0.01 0.00 0.00 0.00 0.00
## [10,] 0.86 -0.27 0.23 -0.32 0.18 0.01 -0.01 0.00 0.00 0.00 0.00
## [11,] 0.00 0.00 -0.01 0.00 0.02 -0.01 -0.15 -0.66 -0.73 -0.10 0.03
Interpretasi Vektor Eigen: Pada vektor eigen kolom pertama (PC1), variabel yang memberikan bobot terbesar adalah GGT dan AST. Hal ini membuktikan bahwa penggunaan matriks kovarians pada data yang belum distandarisasi menyebabkan hasil analisis sangat didominasi oleh variabel yang memiliki rentang angka nominal besar.
Analisis ini menunjukkan bahwa dataset HCV memiliki sebaran data yang sangat bervariasi antar variabel. Meskipun ditemukan korelasi biologis yang logis antara albumin dan protein, hasil analisis eigen (komponen utama) sangat dipengaruhi oleh variabel dengan skala angka besar seperti GGT. Untuk analisis yang lebih objektif, disarankan untuk melakukan standarisasi data agar variabel dengan angka kecil tidak tertutup perannya oleh variabel berangka besar.