# Import data
data <- read.csv("hcv_data.csv")
#mengambil kolom numerik
data_numerik <- data[, sapply(data, is.numeric)]
data_numerik <- data_numerik[, -1]
#menghilangkan missing value
data_clean <- na.omit(data_numerik)
head (data_clean)
##   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
#correlation matrix
correlation_matrix <- cor(data_clean)
correlation_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

Correlation matrix digunakan untuk melihat hubungan antar variabel numerik dalam dataset. Nilai korelasi berada pada rentang -1 hingga 1. Nilai yang mendekati 1 menunjukkan hubungan positif yang kuat, nilai mendekati -1 menunjukkan hubungan negatif yang kuat, sedangkan nilai mendekati 0 menunjukkan hubungan yang lemah atau tidak terdapat hubungan antar variabel. Berdasarkan hasil correlation matrix, terdapat beberapa hubungan yang cukup kuat antar variabel. Variabel ALB dan PROT memiliki nilai korelasi sebesar 0.57 yang menunjukkan hubungan positif cukup kuat. Selain itu variabel BIL dan CHE memiliki nilai korelasi sebesar -0.32 yang menunjukkan hubungan negatif.

#covariance matrix
cov_matrix <- cov(data_clean)
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

Covariance matrix digunakan untuk melihat tingkat penyebaran data serta arah hubungan antar variabel numerik. Nilai kovarians menunjukkan apakah dua variabel berubah secara bersamaan. Nilai kovarians positif menunjukkan bahwa kedua variabel cenderung meningkat atau menurun secara bersamaan, sedangkan nilai kovarians negatif menunjukkan bahwa ketika satu variabel meningkat, variabel lainnya cenderung menurun. Variabel dengan nilai varians terbesar adalah GGT sebesar 2948.75, sedangkan variabel CHOL memiliki nilai varians yang relatif kecil yaitu sebesar 1.27. Covariance matrix juga menunjukkan adanya hubungan positif antar beberapa variabel. Salah satu hubungan positif yang cukup besar terlihat antara AST dan GGT dengan nilai kovarians sebesar 852.71. Sedangkan hubungan negatif terlihat antara ALB dan GGT sebesar -46.18.

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

Eigen value digunakan untuk menunjukkan besarnya kontribusi masing-masing komponen utama dalam menjelaskan variasi data. Nilai eigen yang lebih besar menunjukkan bahwa komponen tersebut mampu menjelaskan variasi data yang lebih besar dibandingkan komponen lainnya.

# Eigen Vector
eigen_result$vectors
##                [,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

Eigen vector digunakan untuk menunjukkan arah pembentukan masing-masing komponen utama. Nilai pada eigen vector menunjukkan kontribusi masing-masing variabel terhadap komponen utama. Semakin besar nilai absolut suatu variabel dalam eigen vector, maka semakin besar pengaruh variabel tersebut terhadap komponen utama yang terbentuk.