data <- read.csv("https://archive.ics.uci.edu/static/public/863/data.csv")
# untuk cek data sudah masuk atau belum
data_angka <- data[, 1:6]

# 3a. correlation matrix
cor(data_angka)
##                     Age  SystolicBP DiastolicBP         BS    BodyTemp
## Age          1.00000000  0.41604545  0.39802629  0.4732843 -0.25532314
## SystolicBP   0.41604545  1.00000000  0.78700648  0.4251717 -0.28661552
## DiastolicBP  0.39802629  0.78700648  1.00000000  0.4238241 -0.25753832
## BS           0.47328434  0.42517166  0.42382407  1.0000000 -0.10349336
## BodyTemp    -0.25532314 -0.28661552 -0.25753832 -0.1034934  1.00000000
## HeartRate    0.07979763 -0.02310796 -0.04615057  0.1428672  0.09877104
##               HeartRate
## Age          0.07979763
## SystolicBP  -0.02310796
## DiastolicBP -0.04615057
## BS           0.14286723
## BodyTemp     0.09877104
## HeartRate    1.00000000
# visualisasi matriks korelasi
library(corrplot)
## corrplot 0.95 loaded
corrplot(cor(data_angka), 
         method = "ellipse", 
         type = "upper", 
         tl.col = "black", 
         title = "visualisasi matriks korelasi",
         mar = c(0,0,1,0))

# 3b. matriks kovarians
cov(data_angka)
##                    Age SystolicBP DiastolicBP         BS   BodyTemp HeartRate
## Age         181.559065 103.171539   74.471739 21.0035619 -4.7180044  8.697168
## SystolicBP  103.171539 338.704005  201.121845 25.7712999 -7.2338429 -3.439938
## DiastolicBP  74.471739 201.121845  192.815323 19.3828770 -4.9042413 -5.183543
## BS           21.003562  25.771300   19.382877 10.8473512 -0.4674483  3.806040
## BodyTemp     -4.718004  -7.233843   -4.904241 -0.4674483  1.8806951  1.095640
## HeartRate     8.697168  -3.439938   -5.183543  3.8060397  1.0956395 65.427104
# visualisasi matriks kovarians
heatmap(as.matrix(cov(data_angka)), 
        Colv = NA, Rowv = NA, 
        col = heat.colors(256), 
        scale = "column",
        main = "Visualisasi Matriks Kovarians")

# 3c. eigen value & vector
hasil_eigen <- eigen(cor(data_angka))
hasil_eigen
## eigen() decomposition
## $values
## [1] 2.6078934 1.1443812 0.8370499 0.7063345 0.4925435 0.2117975
## 
## $vectors
##            [,1]       [,2]       [,3]       [,4]        [,5]        [,6]
## [1,] -0.4360752  0.1729019  0.2404386 -0.5550931 -0.64321080  0.01685752
## [2,] -0.5296016 -0.1128996 -0.2415842  0.3633726 -0.09386670 -0.71243407
## [3,] -0.5225675 -0.1230416 -0.2990961  0.3544156 -0.07810122  0.70043934
## [4,] -0.4255290  0.3528904 -0.1153507 -0.4254237  0.70709921 -0.01063092
## [5,]  0.2735090  0.4293197 -0.8093439 -0.1305413 -0.26067118 -0.02914362
## [6,] -0.0200401  0.7958469  0.3549994  0.4859993 -0.05856920  0.02399757

3d. Penjelasan output:

1. correlation matrix:

Hubungan terkuat ada pada SystolicBP dan DiastolicBP (0.78), artinya jika tekanan darah sistolik naik, diastolik cenderung ikut naik. Hubungan terlemah ada pada BS (Blood Sugar) yang memiliki korelasi rendah dengan age (0,35), artinya bahwa faktor usia tidak selalu menjadi faktor penentu utama kadar gula darah pada dataset tersebut.

2. matriks kovarians:

Variabel SystolicBP memiliki variasi data paling tinggi (338.70) dibanding variabel lainnya. Data paling tinggi ini menunjukkan bahwa data tekanan darah sistolik bervariasi antara para pasien, mulai dari normal hingga yang sangat tinggi.

3. eigen value & vector:

Nilai eigen pertama adalah (2.60) yang terbesar, menunjukkan bahwa sebagian besar informasi data terwakili di komponen pertama dan mampu menjelaskan sekitar 43% informasi dari seluruh dataset. Eigen Vector digunakan untuk menunjukkan kontribusi tiap variabel yang ada. Variabel SystolicBP dan DiastolicBP memiliki bobot yang besar, yang berarti kedua variabel inilah yang paling banyak memberikan pengaruh terhadap keragaman data secara keseluruhan.