# Import Data
hcvdat0 <- read.csv("hcvdat0.csv")
str(hcvdat0)
## '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 ...
head(hcvdat0)
## 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
Dataset diimpor ke dalam R
#Variabel Numerik
data_num <- hcvdat0[, sapply(hcvdat0, is.numeric)]
data_num <- data_num[, -1]
str(data_num)
## 'data.frame': 615 obs. of 11 variables:
## $ Age : int 32 32 32 32 32 32 32 32 32 32 ...
## $ 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 ...
Analisis Correlation Matrix, Variance–Covariance Matrix, serta eigen value dan eigen vector hanya dapat dilakukan pada data numerik. Oleh karena itu, kolom kategorikal seperti Category dan Sex tidak disertakan dalam analisis. Selain itu, kolom X juga dihapus karena hanya merupakan nomor indeks data dan tidak memiliki makna statistik terhadap kondisi pasien
#Correlation Matrix
cor_matrix <- cor(data_num, use = "complete.obs")
cor_matrix
## Age ALB ALP ALT AST BIL
## Age 1.00000000 -0.191093637 0.17771977 -0.04057647 0.07273886 0.03965486
## ALB -0.19109364 1.000000000 -0.14611991 0.03949714 -0.17760895 -0.16959750
## ALP 0.17771977 -0.146119911 1.00000000 0.22160301 0.06702428 0.05837241
## ALT -0.04057647 0.039497139 0.22160301 1.00000000 0.19865775 -0.10679662
## AST 0.07273886 -0.177608947 0.06702428 0.19865775 1.00000000 0.30957974
## BIL 0.03965486 -0.169597498 0.05837241 -0.10679662 0.30957974 1.00000000
## CHE -0.07586328 0.360919403 0.02948169 0.22434447 -0.19727042 -0.32071323
## CHOL 0.12474161 0.210419878 0.12590008 0.14999727 -0.20121300 -0.18156956
## CREA -0.02514225 0.001433247 0.15390895 -0.03610554 -0.01794810 0.01990962
## GGT 0.14337927 -0.147598318 0.46130000 0.21970686 0.47777362 0.21056656
## PROT -0.15975998 0.570725680 -0.06308514 0.01678633 0.01740394 -0.05257491
## CHE CHOL CREA GGT PROT
## Age -0.07586328 0.124741615 -0.025142253 0.143379268 -0.15975998
## ALB 0.36091940 0.210419878 0.001433247 -0.147598318 0.57072568
## ALP 0.02948169 0.125900079 0.153908950 0.461299996 -0.06308514
## ALT 0.22434447 0.149997271 -0.036105541 0.219706857 0.01678633
## AST -0.19727042 -0.201213004 -0.017948098 0.477773617 0.01740394
## BIL -0.32071323 -0.181569556 0.019909617 0.210566559 -0.05257491
## CHE 1.00000000 0.428018276 -0.012119999 -0.095716131 0.30628754
## CHOL 0.42801828 1.000000000 -0.051464078 0.008822692 0.24504950
## CREA -0.01212000 -0.051464078 1.000000000 0.125353469 -0.03011070
## GGT -0.09571613 0.008822692 0.125353469 1.000000000 -0.03712701
## PROT 0.30628754 0.245049503 -0.030110695 -0.037127008 1.00000000
Penjelasan Output: Correlation matrix menunjukkan hubungan antara satu variabel dengan variabel lainnya. Nilai korelasi berada antara −1 sampai 1. Nilai positif berarti kedua variabel bergerak searah, nilai negatif berarti bergerak berlawanan arah, sedangkan nilai yang mendekati 0 menunjukkan hubungan yang lemah atau hampir tidak ada hubungan. Berdasarkan hasil correlation matrix, sebagian besar variabel memiliki hubungan yang lemah hingga sedang. Variabel Age memiliki korelasi yang rendah dengan hampir semua parameter pemeriksaan laboratorium, sehingga usia tidak terlalu berpengaruh langsung terhadap perubahan nilai hasil pemeriksaan tersebut. Variabel ALB menunjukkan hubungan positif yang cukup kuat dengan PROT dan CHE. Beberapa enzim hati menunjukkan hubungan yang cukup jelas. AST memiliki korelasi positif sedang dengan GGT dan BIL, yang berarti peningkatan AST sering diikuti oleh peningkatan GGT dan bilirubin. Selain itu, ALP juga memiliki korelasi positif sedang dengan GGT, yang menunjukkan adanya keterkaitan antar enzim hati dalam menggambarkan kondisi fungsi hati. Di sisi lain, CHE memiliki korelasi negatif dengan BIL, yang menunjukkan bahwa ketika kadar bilirubin meningkat, kadar cholinesterase cenderung menurun. Secara keseluruhan, hasil correlation matrix ini menunjukkan bahwa beberapa parameter fungsi hati saling berhubungan, meskipun sebagian besar hubungan yang ditemukan tidak terlalu kuat.
#Variance-Covariance Matrix
cov_matrix <- cov(data_num, use = "complete.obs")
cov_matrix
## Age ALB ALP ALT AST BIL
## Age 98.631388 -10.9348172 45.750544 -8.407388 23.742827 6.855155
## ALB -10.934817 33.1982701 -21.823283 4.747912 -33.634186 -17.009455
## ALP 45.750544 -21.8232826 671.901949 119.841675 57.100968 26.337454
## ALT -8.407388 4.7479116 119.841675 435.269784 136.220708 -38.783770
## AST 23.742827 -33.6341863 57.100968 136.220708 1080.231200 177.110426
## BIL 6.855155 -17.0094554 26.337454 -38.783770 177.110426 302.988734
## CHE -1.650806 4.5564303 1.674411 10.255372 -14.206173 -12.231702
## CHOL 1.398606 1.3687395 3.684302 3.532962 -7.466047 -3.568064
## CREA -12.658841 0.4186596 202.254881 -38.188738 -29.906045 17.569457
## GGT 77.323769 -46.1804560 649.315069 248.909775 852.706557 199.031456
## PROT -8.486697 17.5892871 -8.746677 1.873261 3.059630 -4.895025
## CHE CHOL CREA GGT PROT
## Age -1.650806 1.3986055 -12.6588412 77.3237685 -8.486697
## ALB 4.556430 1.3687395 0.4186596 -46.1804560 17.589287
## ALP 1.674411 3.6843023 202.2548814 649.3150694 -8.746677
## ALT 10.255372 3.5329616 -38.1887382 248.9097752 1.873261
## AST -14.206173 -7.4660468 -29.9060449 852.7065571 3.059630
## BIL -12.231702 -3.5680635 17.5694569 199.0314564 -4.895025
## CHE 4.800799 1.0587548 -1.3462991 -11.3883550 3.589626
## CHOL 1.058755 1.2745375 -2.9455248 0.5408745 1.479767
## CREA -1.346299 -2.9455248 2570.1849279 345.0941704 -8.165186
## GGT -11.388355 0.5408745 345.0941704 2948.7514092 -10.783808
## PROT 3.589626 1.4797666 -8.1651857 -10.7838076 28.610549
Penjelasan Output: Variance–Covariance Matrix menunjukkan besarnya variasi setiap variabel serta bagaimana dua variabel berubah secara bersamaan. Nilai pada diagonal utama menunjukkan varians, yaitu tingkat penyebaran data masing-masing variabel, sedangkan nilai di luar diagonal menunjukkan kovarians antar variabel. Nilai kovarians positif berarti kedua variabel cenderung meningkat atau menurun bersama, sementara nilai negatif menunjukkan kecenderungan perubahan yang berlawanan arah. Berdasarkan hasil variance–covariance matrix, beberapa variabel seperti AST, GGT, ALP, dan CREA memiliki nilai varians yang besar, yang menunjukkan bahwa data pada variabel tersebut memiliki penyebaran yang tinggi. Sebaliknya, variabel Age, ALB, CHE, dan PROT memiliki varians yang lebih kecil sehingga nilainya relatif lebih stabil. Kovarians positif terlihat pada beberapa pasangan variabel enzim hati, seperti ALP dengan GGT serta AST dengan GGT, yang menunjukkan bahwa peningkatan satu enzim cenderung diikuti oleh peningkatan enzim lainnya. Selain itu, kovarians positif antara ALB dan PROT menunjukkan bahwa peningkatan albumin biasanya diikuti oleh peningkatan protein total. Di sisi lain, kovarians negatif terlihat pada pasangan variabel seperti ALB dengan BIL dan CHE dengan BIL, yang menunjukkan bahwa ketika kadar bilirubin meningkat, kadar albumin dan cholinesterase cenderung menurun. Secara keseluruhan, variance–covariance matrix ini menunjukkan adanya keterkaitan antar parameter pemeriksaan hati dengan tingkat variasi data yang berbeda-beda pada setiap variabel.
#Eigen value dan eigen vector
eigen_result <- eigen(cov_matrix)
# eigen value
eigen_result$values
## [1] 3592.3628875 2477.4068784 843.8984053 489.7454024 382.8104539
## [6] 232.9586647 95.1113858 44.7180378 12.3733533 3.5687100
## [11] 0.8893693
Penjelasan Output: Eigen value di atas menunjukkan besarnya variasi data yang dapat dijelaskan oleh masing-masing komponen utama. Nilai eigen yang lebih besar berarti komponen tersebut menyimpan informasi yang lebih banyak, sedangkan nilai yang kecil menunjukkan kontribusi yang semakin rendah. Berdasarkan hasil tersebut, komponen utama pertama (eigen value = 3592,36) memiliki kontribusi paling besar dalam menjelaskan variasi data. Komponen utama kedua (2477,41) dan ketiga (843,90) juga masih memberikan kontribusi yang cukup signifikan. Hal ini menunjukkan bahwa sebagian besar informasi dalam data dapat direpresentasikan oleh beberapa komponen utama pertama. Sebaliknya, mulai dari komponen ke-7 hingga ke-11, nilai eigen yang dihasilkan relatif kecil, bahkan mendekati nol. Ini berarti komponen-komponen tersebut hanya menjelaskan sebagian kecil variasi data dan tidak memberikan informasi tambahan yang berarti.
# eigen vector
eigen_result$vectors # eigen vector
## [,1] [,2] [,3] [,4] [,5]
## [1,] 0.0228584952 -0.0158247293 0.025048832 0.008286601 -0.094203786
## [2,] -0.0156851813 0.0082379827 0.012607209 -0.005994933 0.063944782
## [3,] 0.2241968280 -0.0044277358 0.453772184 0.601734944 -0.592486825
## [4,] 0.0845278489 -0.0635494091 0.021417463 0.665833839 0.612578629
## [5,] 0.3032700134 -0.1976275992 -0.835204909 0.281450347 -0.171571033
## [6,] 0.0710560295 -0.0325307981 -0.172391018 -0.122528794 -0.442337423
## [7,] -0.0039834770 0.0017981648 0.014875990 0.018327932 0.030580260
## [8,] -0.0005237225 -0.0006354985 0.010805636 0.005580850 0.007464542
## [9,] 0.3237154091 0.9386317685 -0.111165518 0.011269971 0.037686736
## [10,] 0.8602198550 -0.2728943388 0.229755213 -0.315835470 0.180980271
## [11,] -0.0038238240 -0.0020264214 -0.008747619 0.001425133 0.021896627
## [,6] [,7] [,8] [,9] [,10]
## [1,] -0.066038155 0.966939008 -0.223346101 -0.001275823 -0.0082657011
## [2,] -0.007498458 -0.156765672 -0.705923998 0.683108436 -0.0760513727
## [3,] -0.145767748 -0.094057692 -0.017421084 0.015820825 -0.0051761247
## [4,] 0.402840568 0.080792659 0.013790086 -0.014560342 -0.0234354579
## [5,] -0.247321000 -0.027211189 -0.011597518 0.023495365 0.0107082126
## [6,] 0.866178840 0.008479942 -0.048180731 0.010219609 0.0271089782
## [7,] -0.014579571 -0.020040710 -0.110555214 -0.012802671 0.9686083650
## [8,] -0.002203351 0.010172547 -0.048846711 -0.031886066 0.2126127540
## [9,] 0.007211477 0.014298812 -0.001647690 -0.003576001 0.0003442493
## [10,] 0.012826050 -0.009233404 0.001466248 -0.001302705 0.0005266345
## [11,] -0.013659573 -0.153205726 -0.658957481 -0.728729955 -0.0965170844
## [,11]
## [1,] 0.0192636522
## [2,] -0.0045775514
## [3,] 0.0023938915
## [4,] 0.0033410925
## [5,] -0.0065686504
## [6,] 0.0001067362
## [7,] 0.2174530193
## [8,] -0.9752335381
## [9,] -0.0012569024
## [10,] 0.0017980940
## [11,] 0.0343048571
Penjelasan Output: Output tersebut merupakan eigen vector, yang menunjukkan seberapa besar peran setiap variabel dalam membentuk masing-masing komponen. Setiap baris mewakili variabel asli, sedangkan setiap kolom menunjukkan komponen (Komponen 1, Komponen 2, dan seterusnya).Nilai pada tabel menunjukkan arah dan besar pengaruh variabel terhadap suatu komponen. Nilai positif berarti variabel bergerak searah dengan komponen, sedangkan nilai negatif berarti bergerak berlawanan arah. Semakin besar nilai absolutnya, semakin besar kontribusi variabel tersebut dalam membentuk komponen.Dari hasil ini terlihat bahwa Komponen 1 dipengaruhi kuat oleh beberapa variabel tertentu, terutama variabel pada baris ke-10 dan ke-9 yang memiliki nilai paling besar. Hal ini menunjukkan bahwa Komponen 1 paling banyak merangkum variasi data secara umum. Komponen 2 sangat dipengaruhi oleh variabel pada baris ke-9, yang terlihat dari nilainya yang mendekati 1, sehingga variabel tersebut menjadi penentu utama pada komponen ini.Pada Komponen 3 hingga 6, pengaruh variabel mulai lebih menyebar dan tidak didominasi oleh satu variabel saja. Sementara itu, komponen pada kolom 7 sampai 11 menunjukkan pola yang lebih spesifik, di mana hanya satu atau dua variabel yang berperan besar. Hal ini menandakan bahwa komponen-komponen akhir hanya menjelaskan variasi data yang kecil dan biasanya kurang penting dalam analisis utama.Secara keseluruhan, eigen vector ini membantu memahami variabel mana yang paling berpengaruh pada setiap komponen, sehingga memudahkan penafsiran makna dari masing-masing komponen yang terbentuk.