Dataset Hepatitis C Virus (HCV) ini bersumber dari UCI Machine Learning Repository.Dataset ini berisi data hasil pemeriksaan laboratorium pasien. Data ini digunakan untuk melihat hubungan antar parameter klinis yang berkaitan dengan fungsi hati.Tujuan Analisis Analisis ini disusun sebagai pemenuhan tugas mata kuliah Pengantar Analisis Multivariat. Fokus utama adalah untuk memahami hubungan antar variabel klinis secara simultan, mengidentifikasi korelasi antar parameter kesehatan hati, serta melakukan reduksi dimensi data menggunakan nilai Eigen.
Deskripsi Variabel:
Unnamed: 0: Nomor urut atau ID pasien.
Category: Status kesehatan pasien (apakah dia pendonor sehat, kena Hepatitis, Fibrosis, atau Sirosis hati).
Age: Usia pasien.
Sex: Jenis kelamin (m = laki-laki, f = perempuan).
ALB: kadar albumin dalam darah.
ALT: enzim hati yang berkaitan dengan kerusakan sel hati.
AST: enzim hati yang berkaitan dengan gangguan jaringan hati.
ALP: enzim yang berhubungan dengan fungsi hati dan empedu.
BIL: kadar bilirubin dalam darah.
CHE: enzim yang mencerminkan fungsi sintesis hati.
CHOL: kadar kolesterol.
CREA: indikator fungsi ginjal.
GGT: enzim yang sensitif terhadap gangguan fungsi hati.
PROT: total protein dalam darah.
hcv <- read.csv("hcv.csv", header = TRUE, sep = ",")
head(hcv)
## X Category Age Sex ALB ALP ALT AST BIL CHE CHOL CREA GGT PROT
## 1 1 0=Blood Donor 32 m 38.5 52.5 7.7 22.1 7.5 6.93 3.23 106 12.1 69.0
## 2 2 0=Blood Donor 32 m 38.5 70.3 18.0 24.7 3.9 11.17 4.80 74 15.6 76.5
## 3 3 0=Blood Donor 32 m 46.9 74.7 36.2 52.6 6.1 8.84 5.20 86 33.2 79.3
## 4 4 0=Blood Donor 32 m 43.2 52.0 30.6 22.6 18.9 7.33 4.74 80 33.8 75.7
## 5 5 0=Blood Donor 32 m 39.2 74.1 32.6 24.8 9.6 9.15 4.32 76 29.9 68.7
## 6 6 0=Blood Donor 32 m 41.6 43.3 18.5 19.7 12.3 9.92 6.05 111 91.0 74.0
str(hcv)
## 'data.frame': 615 obs. of 14 variables:
## $ X : int 1 2 3 4 5 6 7 8 9 10 ...
## $ Category: chr "0=Blood Donor" "0=Blood Donor" "0=Blood Donor" "0=Blood Donor" ...
## $ Age : int 32 32 32 32 32 32 32 32 32 32 ...
## $ Sex : chr "m" "m" "m" "m" ...
## $ ALB : num 38.5 38.5 46.9 43.2 39.2 41.6 46.3 42.2 50.9 42.4 ...
## $ ALP : num 52.5 70.3 74.7 52 74.1 43.3 41.3 41.9 65.5 86.3 ...
## $ ALT : num 7.7 18 36.2 30.6 32.6 18.5 17.5 35.8 23.2 20.3 ...
## $ AST : num 22.1 24.7 52.6 22.6 24.8 19.7 17.8 31.1 21.2 20 ...
## $ BIL : num 7.5 3.9 6.1 18.9 9.6 12.3 8.5 16.1 6.9 35.2 ...
## $ CHE : num 6.93 11.17 8.84 7.33 9.15 ...
## $ CHOL : num 3.23 4.8 5.2 4.74 4.32 6.05 4.79 4.6 4.1 4.45 ...
## $ CREA : num 106 74 86 80 76 111 70 109 83 81 ...
## $ GGT : num 12.1 15.6 33.2 33.8 29.9 91 16.9 21.5 13.7 15.9 ...
## $ PROT : num 69 76.5 79.3 75.7 68.7 74 74.5 67.1 71.3 69.9 ...
summary(hcv)
## X Category Age Sex
## Min. : 1.0 Length:615 Min. :19.00 Length:615
## 1st Qu.:154.5 Class :character 1st Qu.:39.00 Class :character
## Median :308.0 Mode :character Median :47.00 Mode :character
## Mean :308.0 Mean :47.41
## 3rd Qu.:461.5 3rd Qu.:54.00
## Max. :615.0 Max. :77.00
##
## ALB ALP ALT AST
## Min. :14.90 Min. : 11.30 Min. : 0.90 Min. : 10.60
## 1st Qu.:38.80 1st Qu.: 52.50 1st Qu.: 16.40 1st Qu.: 21.60
## Median :41.95 Median : 66.20 Median : 23.00 Median : 25.90
## Mean :41.62 Mean : 68.28 Mean : 28.45 Mean : 34.79
## 3rd Qu.:45.20 3rd Qu.: 80.10 3rd Qu.: 33.08 3rd Qu.: 32.90
## Max. :82.20 Max. :416.60 Max. :325.30 Max. :324.00
## NA's :1 NA's :18 NA's :1
## BIL CHE CHOL CREA
## Min. : 0.8 Min. : 1.420 Min. :1.430 Min. : 8.00
## 1st Qu.: 5.3 1st Qu.: 6.935 1st Qu.:4.610 1st Qu.: 67.00
## Median : 7.3 Median : 8.260 Median :5.300 Median : 77.00
## Mean : 11.4 Mean : 8.197 Mean :5.368 Mean : 81.29
## 3rd Qu.: 11.2 3rd Qu.: 9.590 3rd Qu.:6.060 3rd Qu.: 88.00
## Max. :254.0 Max. :16.410 Max. :9.670 Max. :1079.10
## NA's :10
## GGT PROT
## Min. : 4.50 Min. :44.80
## 1st Qu.: 15.70 1st Qu.:69.30
## Median : 23.30 Median :72.20
## Mean : 39.53 Mean :72.04
## 3rd Qu.: 40.20 3rd Qu.:75.40
## Max. :650.90 Max. :90.00
## NA's :1
hcv_num <- hcv[, c(3, 5:14)]
hcv_clean <- na.omit(hcv_num)
dim(hcv_clean)
## [1] 589 11
cor_matrix <- cor(hcv_clean)
round(cor_matrix, 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
library(corrplot)
## corrplot 0.95 loaded
corrplot(cor_matrix,
method = "color",
type = "upper",
tl.col = "black",
tl.srt = 25,
number.cex = 0.7,
tl.cex = 0.8,
addCoef.col = "black")
Berdasarkan correlation matrix, variabel ALB (Albumin) dan PROT (Total Protein) memiliki korelasi positif cukup kuat (0.57). Secara klinis, hal ini menunjukkan adanya hubungan linear yang signifikan; yaitu peningkatan kadar albumin akan diikuti oleh peningkatan protein total, mengingat albumin adalah komponen utama penyusun protein dalam darah.
Sementara itu, kelompok enzim hati seperti GGT, AST, dan ALP menunjukkan korelasi positif sedang dengan nilai berkisar 0.46 hingga 0.48. Hubungan ini mencerminkan adanya pola kerusakan sel hati yang terjadi secara simultan, di mana gangguan pada fungsi hati cenderung meningkatkan kadar enzim-enzim tersebut secara bersamaan.
Secara visual, Heatmap Korelasi mempertegas hubungan ini melalui intensitas warna biru; semakin pekat warnanya, semakin kuat hubungan searah antar variabel tersebut. Sebaliknya, warna yang memudar atau mendekati putih pada variabel seperti CREA (Kreatinin) menandakan korelasi sangat rendah atau lemah. Hal ini membuktikan bahwa variabel CREA bersifat independen dan tidak dipengaruhi secara linear oleh parameter fungsi hati dalam dataset ini, karena fungsinya yang lebih spesifik pada indikator kesehatan ginjal.
cov_matrix <- cov(hcv_clean)
round(cov_matrix, 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
corrplot(
cov_matrix,
method = "color",
type = "upper",
is.corr = FALSE,
tl.col = "black",
tl.srt = 25
)
Berdasarkan hasil output Variance Covarianceat Matrix, nilai diagonal yang sangat tinggi pada variabel GGT (2948.75) dan CREA (2570.18) menunjukkan bahwa kedua parameter ini memiliki varians atau sebaran data yang paling lebar dibandingkan variabel lainnya. Hal ini terlihat jelas pada gambar heatmap kovarians, di mana hanya area GGT dan CREA yang berwarna biru pekat, menandakan bahwa skala nilai mereka mendominasi keseluruhan matriks.
Selain itu, nilai kovarians positif yang besar antara GGT dan AST (852.71) serta GGT dan ALP (649.32) mengonfirmasi bahwa enzim-enzim hati ini cenderung meningkat secara bersamaan dalam satuan aslinya. Sebaliknya, nilai negatif seperti pada hubungan ALB dan AST (-33.63) menunjukkan adanya kecenderungan gerak yang berlawanan arah. Secara keseluruhan, output kovarians ini memperlihatkan bahwa perbedaan skala satuan antar variabel sangat mencolok, sehingga variabel dengan angka besar seperti GGT dan CREA memberikan kontribusi variasi yang paling dominan dalam dataset ini.
eigen_result <- eigen(cov_matrix)
# Eigen value
eigen_values <- eigen_result$values
# Eigen vector
eigen_vectors <- eigen_result$vectors
round(eigen_values, 2)
## [1] 3592.36 2477.41 843.90 489.75 382.81 232.96 95.11 44.72 12.37
## [10] 3.57 0.89
round(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
plot(eigen_values, type="b", pch=19, col="blue",
main="Scree Plot", xlab="Principal Component (PC)", ylab="Eigen Value")
abline(h=1, col="red", lty=2)
text(1:length(eigen_values), eigen_values,
labels = round(eigen_values, 2),
pos = 3, cex = 0.8)
pc1 <- eigen_vectors[, 1]
pc2 <- eigen_vectors[, 2]
plot(pc1, pc2, xlim=c(-1,1), ylim=c(-1,1), pch=19, col="white",
xlab="Principal Component 1", ylab="Principal Component 2",
main="Eigen Vector Loadings Plot")
abline(h=0, v=0, lty=2, col="gray")
arrows(0, 0, pc1, pc2, length=0.1, col="red", lwd=2)
text(pc1, pc2, labels=colnames(hcv_clean), pos=4, cex=0.9, col="blue")
Hasil Eigen Value menunjukkan bahwa nilai pertama (3592.36) dan kedua (2477.41) sangat mendominasi, yang berarti sebagian besar informasi dataset sudah terangkum hanya dalam dua komponen utama saja. Hal ini terlihat jelas pada Scree Plot, di mana terjadi penurunan tajam (curam) setelah komponen kedua, yang menandakan bahwa PC1 dan PC2 adalah dimensi yang paling signifikan dalam menjelaskan variansi data.
Pada Eigen Vector, variabel GGT (0.86) menjadi kontributor utama pada komponen pertama, sedangkan variabel CREA (0.94) sangat mendominasi komponen kedua. Visualisasi Loadings Plot mempertegas temuan ini melalui panjang vektor masing-masing variabel. Vektor GGT yang memanjang secara horizontal menunjukkan pengaruh dominannya dalam membentuk PC1, sedangkan vektor CREA yang memanjang secara vertikal membuktikan dominasinya pada PC2. Karena keduanya memiliki vektor yang paling panjang dibandingkan variabel lainnya, hal ini membuktikan bahwa GGT dan CREA adalah faktor pembeda utama yang paling memengaruhi keragaman data pasien dalam analisis ini.
Analisis multivariat pada dataset HCV memberikan wawasan mendalam tentang struktur dan hubungan antara parameter klinis pasien. Melalui Matriks Korelasi dan Kovarians, terlihat bahwa kelompok enzim hati memiliki keterkaitan yang kuat serta sebaran data yang paling lebar, terutama pada variabel GGT dan CREA yang memiliki varians paling tinggi dibandingkan variabel lainnya. Hasil Eigenvalue dan Eigenvector membantu kita mengidentifikasi bahwa variabel GGT dan CREA merupakan arah utama variasi dalam data. Hal ini dibuktikan secara visual pada Loadings Plot, di mana kedua variabel tersebut memiliki panah vektor paling panjang, yang menandakan keduanya sebagai faktor pembeda paling dominan dalam dataset ini. Secara keseluruhan, analisis multivariat ini berhasil melakukan reduksi dimensi data. Meskipun dataset asli memiliki banyak variabel, sebagian besar informasi dan keragaman data sudah mampu dijelaskan hanya melalui dua komponen utama (PC1 dan PC2). Hal ini membuktikan bahwa dalam pemantauan kesehatan pasien HCV, parameter fungsi hati (GGT) dan fungsi ginjal (CREA) merupakan indikator paling kritis yang menggambarkan perbedaan kondisi antar individu.