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