1 Daftar Isi

2 Pendahuluan

Matriks adalah susunan angka dalam bentuk baris dan kolom yang sering digunakan dalam analisis data, komputasi, dan berbagai bidang sains. Matriks dapat melakukan operasi dasar seperti penjumlahan, pengurangan, dan perkalian dengan lebih terstruktur.

Selain operasi dasar, terdapat konsep dekomposisi matriks yaitu proses memecah suatu matriks yang kompleks menjadi bagian-bagian yang lebih sederhana untuk mempermudah perhitungan, seperti dalam pemodelan data atau analisis komponen utama.

Konsep lain yang juga penting adalah jarak, yang digunakan untuk mengukur seberapa mirip atau berbeda dua data. Contohnya dalam analisis klaster, jarak membantu mengelompokkan data yang memiliki kesamaan tertentu.

2.1 Operasi Matriks

2.1.1 Penjumlahan

Menjumlahkan setiap elemen matriks X dengan elemen yang bersesuaian di matriks Y. Penjumlahan dua matriks dilakukan dengan:

\[ Z = X + Y = \begin{bmatrix} x_{11}+y_{11} & x_{12}+y_{12} & x_{13}+y_{13} \\ x_{21}+y_{21} & x_{22}+y_{22} & x_{23}+y_{23} \\ x_{31}+y_{31} & x_{32}+y_{32} & x_{33}+y_{33} \end{bmatrix} \]

2.1.2 Pengurangan

Mengurangi setiap elemen matriks satu dengan yang lain. Sama seperti penjumlahan, ukuran matriks harus sama

\[ Z = X - Y = \begin{bmatrix} x_{11}-y_{11} & x_{12}-y_{12} & x_{13}-y_{13} \\ x_{21}-y_{21} & x_{22}-y_{22} & x_{23}-y_{23} \\ x_{31}-y_{31} & x_{32}-y_{32} & x_{33}-y_{33} \end{bmatrix} \]

2.1.3 Perkalian Matriks

Perkalian matriks standar menggunakan aturan baris-kolom. Jumlah kolom matriks pertama harus sama dengan jumlah baris matriks kedua.

\[ Z = X \times Y,\quad z_{ij} = \sum_{k=1}^n x_{ik} y_{kj} \]

2.1.4 Perkalian Antar Elemen

Perkalian setiap elemen sesuai posisinya, berbeda dengan perkalian matriks biasa. Perkalian elemen-per-elemen:

\[ Z = X \circ Y,\quad z_{ij} = x_{ij} \cdot y_{ij} \]

Untuk perkalian dengan skalar:

\[ Z = c \times X,\quad z_{ij} = c \cdot x_{ij} \]

2.1.5 Transpose

Mengubah baris menjadi kolom dan kolom menjadi baris.

\[ X = \begin{bmatrix} x_{11} & x_{12} & x_{13} \\ x_{21} & x_{22} & x_{23} \\ x_{31} & x_{32} & x_{33} \end{bmatrix} ,\quad X^\top = \begin{bmatrix} x_{11} & x_{21} & x_{31} \\ x_{12} & x_{22} & x_{32} \\ x_{13} & x_{23} & x_{33} \end{bmatrix} \]

2.1.6 Invers Matriks

Mencari matriks invers, hanya berlaku untuk matriks persegi dengan determinan tidak nol.

Jika matriks dapat diinvers, maka:

\[ X^{-1} \cdot X = I \]

2.1.7 Determinan

Menentukan nilai determinan, yang menunjukkan apakah matriks dapat diinvers atau tidak.

\[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix} ,\quad \det(A) = ad - bc \\X = \begin{bmatrix} x_{11} & x_{12} & x_{13} \\ x_{21} & x_{22} & x_{23} \\ x_{31} & x_{32} & x_{33} \end{bmatrix} ,\quad \det(X) = x_{11}x_{22}x_{33} + x_{12}x_{23}x_{31} + x_{13}x_{21}x_{32} - x_{13}x_{22}x_{31} - x_{11}x_{23}x_{32} - x_{12}x_{21}x_{33} \]

2.2 Contoh soal Operasi Matrix

2.2.1 Input matriks di R

X <- matrix(c(6.5,8.3,7.9,
              5.5,7.0,6.7,
              8.2,6.9,9.2), nrow=3, byrow=TRUE)
Y <- matrix(c(7.3,6.6,8.5,
              8.5,7.6,6.1,
              9.4,8.0,7.2), nrow=3, byrow=TRUE)
X;Y
##      [,1] [,2] [,3]
## [1,]  6.5  8.3  7.9
## [2,]  5.5  7.0  6.7
## [3,]  8.2  6.9  9.2
##      [,1] [,2] [,3]
## [1,]  7.3  6.6  8.5
## [2,]  8.5  7.6  6.1
## [3,]  9.4  8.0  7.2

2.2.2 Penjumlahan matrix

X+Y
##      [,1] [,2] [,3]
## [1,] 13.8 14.9 16.4
## [2,] 14.0 14.6 12.8
## [3,] 17.6 14.9 16.4

2.2.3 Pengurangan matrix

X-Y
##      [,1] [,2] [,3]
## [1,] -0.8  1.7 -0.6
## [2,] -3.0 -0.6  0.6
## [3,] -1.2 -1.1  2.0

2.2.4 Perkalian antar matrix

X %*% Y
##        [,1]   [,2]   [,3]
## [1,] 192.26 169.18 162.76
## [2,] 162.63 143.10 137.69
## [3,] 204.99 180.16 178.03

2.2.5 Perkalian antar elemen

X * Y
##       [,1]  [,2]  [,3]
## [1,] 47.45 54.78 67.15
## [2,] 46.75 53.20 40.87
## [3,] 77.08 55.20 66.24

2.2.6 Perkalian Skalar

2 * X
##      [,1] [,2] [,3]
## [1,] 13.0 16.6 15.8
## [2,] 11.0 14.0 13.4
## [3,] 16.4 13.8 18.4

2.2.7 Transpose

t(X)
##      [,1] [,2] [,3]
## [1,]  6.5  5.5  8.2
## [2,]  8.3  7.0  6.9
## [3,]  7.9  6.7  9.2
t(Y)
##      [,1] [,2] [,3]
## [1,]  7.3  8.5  9.4
## [2,]  6.6  7.6  8.0
## [3,]  8.5  6.1  7.2

2.2.8 Invers matrix

solve(X)
##            [,1]      [,2]       [,3]
## [1,]  38.495763 -46.29237  0.6567797
## [2,]   9.194915 -10.55085 -0.2118644
## [3,] -41.207627  49.17373 -0.3177966
solve(Y)
##            [,1]       [,2]        [,3]
## [1,] -0.5147826 -1.7808696  2.11652174
## [2,]  0.3356522  2.3773913 -2.41043478
## [3,]  0.2991304 -0.3165217  0.05391304

2.2.9 Determinan

det(X)
## [1] 0.472
det(Y)
## [1] -11.5

2.2.10 Interpretasi Operasi Matriks

  1. Penjumlahan Matriks (X + Y)
    Menjumlahkan elemen yang seposisi. Bisa diartikan sebagai total gabungan dari dua kondisi/kejadian (misalnya nilai ujian 1 + nilai ujian 2 → total nilai).

  2. Pengurangan Matriks (X - Y)
    Menghasilkan selisih elemen yang seposisi. Bisa dipahami sebagai perubahan/penurunan nilai antar dua kondisi (misalnya nilai tahun 2023 - nilai tahun 2024 → selisih performa).

  3. Perkalian Antar Matriks (X %*% Y)
    Mengalikan baris matriks pertama dengan kolom matriks kedua. Interpretasinya sebagai kombinasi linear antar variabel, sering dipakai dalam analisis hubungan antar data (misalnya input × bobot → skor akhir).

  4. Perkalian Antar Elemen (X * Y)
    Mengalikan elemen yang seposisi. Artinya hasil merepresentasikan kombinasi langsung per item (misalnya jumlah barang × harga satuan → total biaya tiap barang).

  5. Perkalian Skalar (2 * X)
    Semua elemen dikalikan konstanta. Interpretasinya adalah pembesaran atau penskalaan data (misalnya semua nilai dikalikan 2 → bobot dua kali lipat).

  6. Transpose Matriks (t(X))
    Menukar baris menjadi kolom. Interpretasinya adalah mengubah orientasi data (misalnya data siswa per mata kuliah → data mata kuliah per siswa).

  7. Invers Matriks (solve(X))
    Matriks balikan yang digunakan untuk mencari solusi sistem persamaan linear. Interpretasinya: jika ada hubungan linear antar variabel, invers dapat membantu mencari solusi unik.

  8. Determinan Matriks (det(X))
    Nilai skalar tunggal yang menunjukkan apakah matriks bisa diinvers.

    • Determinan ≠ 0 → matriks non-singular (punya solusi unik).
    • Determinan = 0 → matriks singular (ada baris/kolom yang bergantung, tidak bisa diinvers).

2.3 Eigen Value dan Eigen Vektor

Vektor Eigenvalue menunjukkan besarnya variasi (informasi) yang dapat dijelaskan oleh suatu matriks atau transformasi linear, sedangkan eigenvector menunjukkan arah atau komponen utama dari variasi tersebut. Konsep ini sangat berguna dalam analisis data multivariat seperti PCA (Principal Component Analysis).

Eigenvalue dan eigenvector memenuhi persamaan: \[ A v = \lambda v \]

di mana: - \(A\) = matriks persegi - \(\lambda\) = eigenvalue - \(v\)=eigenvector

2.3.1 Eigen value Untuk mencari nilai eigenvalue digunakan persamaan

karakteristik:

\[ \det(A - \lambda I) = 0 \]

2.3.2 Eigen vektor Setelah \(\lambda\) diperoleh eigenvector \(v\) dapat

dihitung dengan:

\[ (A - \lambda I)v = 0 \] ###Pasangan Eigen Pasangan eigen dituliskan sebagai:

\[ (\lambda_i, v_i) \]

2.4 Contoh Soal Eigen value dan Eigen vektor

# Matriks X
X <- matrix(c(6.5,8.3,7.9,
              5.5,7.0,6.7,
              8.2,6.9,9.2), nrow=3, byrow=TRUE)
X
##      [,1] [,2] [,3]
## [1,]  6.5  8.3  7.9
## [2,]  5.5  7.0  6.7
## [3,]  8.2  6.9  9.2

2.4.1 Menghitung Eigenvalue dan Eigenvector

eig <- eigen(X)
eig
## eigen() decomposition
## $values
## [1] 22.11121957  0.54996598  0.03881445
## 
## $vectors
##            [,1]       [,2]       [,3]
## [1,] -0.5874378 -0.4978956 -0.6656707
## [2,] -0.4969884 -0.3834469 -0.1727850
## [3,] -0.6386856  0.7778614  0.7259668
eig$values   # eigenvalue
## [1] 22.11121957  0.54996598  0.03881445
eig$vectors  # eigenvector
##            [,1]       [,2]       [,3]
## [1,] -0.5874378 -0.4978956 -0.6656707
## [2,] -0.4969884 -0.3834469 -0.1727850
## [3,] -0.6386856  0.7778614  0.7259668

2.4.2 Pasangan Eigen Pertama

lambda1 <- eig$values[1]   # eigenvalue pertama
v1 <- eig$vectors[,1]      # eigenvector pasangan
lambda1
## [1] 22.11122
v1
## [1] -0.5874378 -0.4969884 -0.6386856

Verifikasi Persamaan Av=λv

X %*% v1       # Hasil Av
##           [,1]
## [1,] -12.98897
## [2,] -10.98902
## [3,] -14.12212
lambda1 * v1   # Hasil λv
## [1] -12.98897 -10.98902 -14.12212

Jika kedua hasil hampir sama, maka pasangan eigen sudah benar.

2.4.3 Pasangan Eigen lainnya

for (i in seq_along(eig$values)) {
  cat("\nPasangan ke-", i, ":\n")
  cat("Eigenvalue =", eig$values[i], "\n")
  cat("Eigenvector =\n")
  print(eig$vectors[, i])
}
## 
## Pasangan ke- 1 :
## Eigenvalue = 22.11122 
## Eigenvector =
## [1] -0.5874378 -0.4969884 -0.6386856
## 
## Pasangan ke- 2 :
## Eigenvalue = 0.549966 
## Eigenvector =
## [1] -0.4978956 -0.3834469  0.7778614
## 
## Pasangan ke- 3 :
## Eigenvalue = 0.03881445 
## Eigenvector =
## [1] -0.6656707 -0.1727850  0.7259668

2.4.4 Interpretasi Hasil Eigenvalue & Eigenvector

Dari hasil perhitungan eigen(X) diperoleh pasangan nilai eigen (eigenvalues) dan vektor eigen (eigenvectors) yang memenuhi persamaan dasar: \[ X v = \lambda v \] di mana \(\lambda\) adalah eigenvalue dan \(v\) adalah eigenvector.

  • Makna eigenvalue (\(\lambda\)): besar eigenvalue menunjukkan seberapa kuat (besar) arah (komponen) tersebut dalam menjelaskan variasi atau pengaruh pada transformasi linier yang direpresentasikan oleh matriks \(X\). Eigenvalue yang lebih besar → komponen tersebut lebih penting.
  • Makna eigenvector (\(v\)): vektor arah di mana transformasi \(X\) hanya menskala (mengalikan) vektor tersebut tanpa mengubah arahnya. Setiap kolom eig$vectors[,i] adalah pasangan arah untuk eig$values[i].
  • Pasangan eigen: kolom ke-i pada eig$vectors berpasangan dengan eig$values[i]. Kamu bisa verifikasi secara numerik bahwa \(X v_i \approx \lambda_i v_i\).
  • Rank / dimensi efektif: jumlah eigenvalue signifikan (tidak mendekati nol) memberi indikasi rank numerik atau dimensi informasi efektif pada \(X\). Eigenvalue ≈ 0 menunjukkan adanya ketergantungan linear (redundansi).
  • Aplikasi praktis singkat:
    • Menemukan arah utama variasi (mirip dengan PCA; eigenvectors dari matriks kovarians memberi principal components).
    • Analisis stabilitas sistem linear.
    • Reduksi dimensi: pilih eigenvectors yang berasosiasi dengan eigenvalues terbesar untuk aproksimasi orde-rendah.

Kalimat siap pakai untuk laporan (singkat):
> Hasil eigen menunjukkan bahwa matriks \(X\) memiliki beberapa komponen dominan (eigenvalue terbesar), dengan eigenvector terkait yang menunjukkan kombinasi variabel (arah) utama. Verifikasi \(Xv=\lambda v\) menunjukkan pasangan eigen yang dihitung benar. Dengan memilih eigenvector berasosiasi eigenvalue terbesar, data/transformasi dapat diaproksimasi dengan dimensi lebih rendah sambil mempertahankan struktur utama.

2.4.5 Dekomposisi Singular Value

Dekomposisi Singular Value (SVD) adalah metode yang memecah sebuah matriks \(A_{m \times n}\) menjadi tiga matriks:

\[ A = U \Sigma V^\top \]

  • \(U\): matriks ortogonal berukuran \(m \times m\)
  • \(\Sigma\): matriks diagonal berisi singular values
  • \(V^\top\): transpos dari matriks ortogonal \(V\) berukuran \(n \times n\)

SVD berguna untuk kompresi data, reduksi dimensi, dan analisis multivariat.

2.4.6 Contoh Soal Dekomposisi

Diberikan matriks \(A\):

\[ A = \begin{bmatrix} 5 & -3 & 6 \\ 2 & -4 & 8 \\ -2 & 5 & -1 \\ 7 & 3 & 9 \end{bmatrix} \]

Hitung dekomposisi SVD-nya.

# Membuat matriks A
A <- matrix(c(5,-3,6,
              2,-4,8,
              -2,5,-1,
              7,3,9),
            nrow=4, byrow=TRUE)
A
##      [,1] [,2] [,3]
## [1,]    5   -3    6
## [2,]    2   -4    8
## [3,]   -2    5   -1
## [4,]    7    3    9

2.4.7 Menghitung SVD

svd_result <- svd(A)

# Singular values
singular_values <- svd_result$d
singular_values
## [1] 16.07076  7.41936  3.11187
# Matriks U
U <- svd_result$u
U
##            [,1]       [,2]       [,3]
## [1,] -0.5046975  0.2278362 -0.3742460
## [2,] -0.5178195  0.4138180  0.7413297
## [3,]  0.1646416 -0.6063789  0.5337354
## [4,] -0.6708477 -0.6396483 -0.1596770
# Matriks V
V <- svd_result$v
V
##            [,1]        [,2]       [,3]
## [1,] -0.5341591 -0.17494276 -0.8270847
## [2,]  0.1490928 -0.98251336  0.1115295
## [3,] -0.8321330 -0.06373793  0.5509011

2.4.8 Verifikasi SVD

# Mengambil hanya kolom U yang relevan (4x3)
U_reduced <- U[, 1:length(singular_values)]

# Membentuk Σ sesuai singular values (3x3)
Sigma <- diag(singular_values)

# Rekonstruksi matriks (4x3)
A_reconstructed <- U_reduced %*% Sigma %*% t(V)
A_reconstructed
##      [,1] [,2] [,3]
## [1,]    5   -3    6
## [2,]    2   -4    8
## [3,]   -2    5   -1
## [4,]    7    3    9

2.4.9 Interpretasi Hasil SVD

Dari hasil dekomposisi, matriks A berhasil diuraikan menjadi tiga komponen: matriks U, matriks Σ (singular values), dan matriks V. Nilai singular value menunjukkan seberapa besar kontribusi masing-masing komponen dalam menjelaskan variasi pada matriks. Hasil rekonstruksi \(U \Sigma V^T\) menghasilkan matriks yang sama dengan matriks awal, sehingga dekomposisi SVD yang dilakukan sudah benar. Dengan demikian, SVD dapat dimanfaatkan untuk reduksi dimensi maupun analisis pola pada data.

2.5 Konsep Jarak

Matriks jarak digunakan untuk mengukur kedekatan atau kemiripan antar objek dalam ruang berdimensi \(p\).

2.5.1 Euclidean: Jarak lurus antar dua titik

\[ d(x,y) = \sqrt{\sum_{i=1}^p (x_i - y_i)^2} \]

2.5.2 Manhattan: Jumlah perbedaan absolut

\[ d(x,y) = \sum_{i=1}^p |x_i - y_i| \]

2.5.3 Chebyshev: Perbedaan maksimum

\[ d(x,y) = \max_i |x_i - y_i| \]

2.5.4 Mahalanobis: Mempertimbangkan varians dan korelasi antar variabel

\[ d(x,y) = \sqrt{(x-y)^\top S^{-1} (x-y)} \]

2.5.5 Contoh soal konsep jarak

3 Matriks Jarak

Matriks jarak digunakan untuk mengukur kedekatan antar objek.

Misalkan kita punya data hasil uji tiga variabel kesehatan dari 8 pasien:
- Kolesterol (mg/dL)
- Tekanan darah (mmHg)
- Gula darah (mg/dL)

Data:

data <- matrix(c(
  190,130,95,
  210,140,110,
  185,125,100,
  200,135,105,
  195,128,97,
  215,145,115,
  205,138,108,
  180,120,90
), ncol=3, byrow=TRUE)

colnames(data) <- c("Cholesterol","BloodPressure","BloodSugar")
rownames(data) <- paste("Pasien",1:8)
data
##          Cholesterol BloodPressure BloodSugar
## Pasien 1         190           130         95
## Pasien 2         210           140        110
## Pasien 3         185           125        100
## Pasien 4         200           135        105
## Pasien 5         195           128         97
## Pasien 6         215           145        115
## Pasien 7         205           138        108
## Pasien 8         180           120         90

3.0.1 konsep jarak euclidean

data.scaled <- scale(data)
dist.eucl <- dist(data.scaled, method="euclidean")
dist.eucl
##           Pasien 1  Pasien 2  Pasien 3  Pasien 4  Pasien 5  Pasien 6  Pasien 7
## Pasien 2 2.6952015                                                            
## Pasien 3 0.9363604 2.9665763                                                  
## Pasien 4 1.5591625 1.1733587 1.8127877                                        
## Pasien 5 0.5294179 2.4375408 0.9603667 1.3301556                              
## Pasien 6 3.6079693 0.9363604 3.8602883 2.0833666 3.3715631                    
## Pasien 7 2.1894680 0.5294179 2.4476655 0.6498493 1.9499394 1.4347371          
## Pasien 8 1.5661628 4.1667331 1.3895998 3.0095852 1.7626750 5.0910970 3.6564485

3.0.2 konsep jarak manhattan

dist.man <- dist(data.scaled, method="manhattan")
dist.man
##           Pasien 1  Pasien 2  Pasien 3  Pasien 4  Pasien 5  Pasien 6  Pasien 7
## Pasien 2 4.6092062                                                            
## Pasien 3 1.5999574 5.0235741                                                  
## Pasien 4 2.6010005 2.0082057 3.0153684                                        
## Pasien 5 0.8849319 4.2034058 1.5315221 2.1952000                              
## Pasien 6 6.2091636 1.5999574 6.6235315 3.6081631 5.8033632                    
## Pasien 7 3.7242742 0.8849319 4.1386422 1.1232738 3.3184738 2.4848894          
## Pasien 8 2.6071201 7.2163263 2.1927522 5.2081206 3.0129205 8.8162837 6.3313943

3.0.3 konsep jarak Chebyshev

dist.cheb <- dist(data.scaled, method="maximum")
dist.cheb
##           Pasien 1  Pasien 2  Pasien 3  Pasien 4  Pasien 5  Pasien 6  Pasien 7
## Pasien 2 1.7783843                                                            
## Pasien 3 0.5989144 2.0412415                                                  
## Pasien 4 1.1855895 0.8164966 1.2247449                                        
## Pasien 5 0.4082483 1.5412664 0.8164966 0.9484716                              
## Pasien 6 2.3711790 0.5989144 2.4494897 1.2247449 2.1340611                    
## Pasien 7 1.5412664 0.4082483 1.6329932 0.4082483 1.3041485 0.8384801          
## Pasien 8 1.1978288 2.4494897 1.1855895 1.7967431 1.2247449 2.9945719 2.1560918
# Pastikan package tersedia
# install.packages("StatMatch") # hanya jalankan sekali
library(StatMatch)
## Warning: package 'StatMatch' was built under R version 4.4.3
## Loading required package: proxy
## Warning: package 'proxy' was built under R version 4.4.3
## 
## Attaching package: 'proxy'
## The following objects are masked from 'package:stats':
## 
##     as.dist, dist
## The following object is masked from 'package:base':
## 
##     as.matrix
## Loading required package: survey
## Warning: package 'survey' was built under R version 4.4.3
## Loading required package: grid
## Loading required package: Matrix
## Loading required package: survival
## 
## Attaching package: 'survey'
## The following object is masked from 'package:graphics':
## 
##     dotchart
## Loading required package: lpSolve
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.4.3
## Loading required package: dplyr
## Warning: package 'dplyr' was built under R version 4.4.3
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Standarisasi data terlebih dahulu
data.scaled <- scale(data)

# Hitung jarak Mahalanobis pairwise
dist.mah <- mahalanobis.dist(data.scaled)
dist.mah_matrix <- as.matrix(dist.mah)
dist.mah_matrix
##          Pasien 1 Pasien 2 Pasien 3  Pasien 4 Pasien 5  Pasien 6  Pasien 7
## Pasien 1 0.000000 3.154146 3.729879 2.2291073 3.502378 2.9917441 2.5123791
## Pasien 2 3.154146 0.000000 2.981346 1.3409447 1.879555 1.1362041 0.9423030
## Pasien 3 3.729879 2.981346 0.000000 2.1573331 3.577709 2.9582781 2.4230729
## Pasien 4 2.229107 1.340945 2.157333 0.0000000 2.467907 1.2305904 0.4619096
## Pasien 5 3.502378 1.879555 3.577709 2.4679073 0.000000 2.9493016 2.3772725
## Pasien 6 2.991744 1.136204 2.958278 1.2305904 2.949302 0.0000000 0.8471523
## Pasien 7 2.512379 0.942303 2.423073 0.4619096 2.377272 0.8471523 0.0000000
## Pasien 8 2.651127 2.461181 2.395171 1.9525605 1.833075 3.0598579 2.2186453
##          Pasien 8
## Pasien 1 2.651127
## Pasien 2 2.461181
## Pasien 3 2.395171
## Pasien 4 1.952560
## Pasien 5 1.833075
## Pasien 6 3.059858
## Pasien 7 2.218645
## Pasien 8 0.000000

3.0.4 Interpretasi Hasil Jarak

  • Euclidean: mengukur jarak lurus antar pasien berdasarkan data kesehatan yang sudah distandarisasi. Pasien dengan nilai kecil berarti kondisi kesehatannya mirip secara umum.
  • Manhattan: menghitung total perbedaan absolut antar pasien. Cocok untuk kasus ketika perbedaan kecil pada tiap variabel tetap dianggap penting.
  • Chebyshev: fokus pada perbedaan maksimum pada satu variabel. Misalnya, jika satu pasien punya gula darah jauh lebih tinggi daripada yang lain, jarak Chebyshev akan besar meskipun variabel lain mirip.
  • Mahalanobis: memperhitungkan varians dan korelasi antar variabel. Jarak ini lebih “adil” karena memperhitungkan skala tiap variabel. Misalnya, jika kolesterol dan gula darah saling berkorelasi, Mahalanobis akan menyesuaikan perhitungan jarak.

Dengan demikian, tiap ukuran jarak memberi perspektif yang berbeda. Euclidean baik untuk jarak lurus standar, Manhattan cocok untuk data grid, Chebyshev menyoroti variabel ekstrem, dan Mahalanobis berguna saat variabel saling berkorelasi.

3.0.4.1 Vektor Rata-Rata

menggambarkan pusat data (mean dari tiap variabel).

\[ \bar{x} = \frac{1}{n} \sum_{i=1}^n \begin{bmatrix} x_{i1} \\ x_{i2} \\ x_{i3} \end{bmatrix} \] #### Kovarians mengukur seberapa besar variabel berubah bersama.

\[ S = \frac{1}{n-1} (X - \mathbf{1}\bar{x}^\top)^\top (X - \mathbf{1}\bar{x}^\top) \] #### Korelasi mengukur hubungan antar variabel dalam skala 0–1 atau -1–1.

\[ R = D_s^{-1} S D_s^{-1} ,\quad D_s = \text{diag}\left(\sqrt{\text{diag}(S)}\right) \]

3.0.4.2 Matriks Standarisasi

\[ Z = D_s^{-1} (X - \mathbf{1}\bar{x}^\top) \] dengan: - \(X\) = matriks data asli \((n \times p)\) - \(\bar{x}\) = vektor rata-rata \((p \times 1)\) - \(\mathbf{1}\) = vektor satuan \((n \times 1)\) - \(D_s = \text{diag}\left(\sqrt{\text{diag}(S)}\right)\) = matriks diagonal berisi akar variansi tiap variabel - \(Z\) = matriks data yang sudah distandarisasi

3.1 Implementasi di R

# Data
K  <- c(190,210,180,220,200,195)
TD <- c(120,135,125,150,140,130)
GD <- c(110,140,130,160,150,120)

data <- cbind(K, TD, GD)
colnames(data) <- c("Kolesterol","TekananDarah","GulaDarah")
rownames(data) <- paste("Pasien", 1:nrow(data))
data
##          Kolesterol TekananDarah GulaDarah
## Pasien 1        190          120       110
## Pasien 2        210          135       140
## Pasien 3        180          125       130
## Pasien 4        220          150       160
## Pasien 5        200          140       150
## Pasien 6        195          130       120
# mean vector
vecMeans <- as.matrix(colMeans(data))
rownames(vecMeans) <- c("Kolesterol","TekananDarah","GulaDarah")
colnames(vecMeans) <- "Mean"
vecMeans
##                  Mean
## Kolesterol   199.1667
## TekananDarah 133.3333
## GulaDarah    135.0000

3.1.1 matriks kovarians

S <- cov(data)
S
##              Kolesterol TekananDarah GulaDarah
## Kolesterol     204.1667     133.3333       195
## TekananDarah   133.3333     116.6667       190
## GulaDarah      195.0000     190.0000       350

3.1.1.1 matriks korelasi

R <- cor(data)
R
##              Kolesterol TekananDarah GulaDarah
## Kolesterol    1.0000000    0.8639188 0.7294712
## TekananDarah  0.8639188    1.0000000 0.9402562
## GulaDarah     0.7294712    0.9402562 1.0000000

3.1.2 standardisasi

Z <- scale(data)   # setiap kolom mean=0, sd=1
Z
##           Kolesterol TekananDarah  GulaDarah
## Pasien 1 -0.64153303   -1.2344268 -1.3363062
## Pasien 2  0.75817540    0.1543033  0.2672612
## Pasien 3 -1.34138724   -0.7715167 -0.2672612
## Pasien 4  1.45802961    1.5430335  1.3363062
## Pasien 5  0.05832118    0.6172134  0.8017837
## Pasien 6 -0.29160592   -0.3086067 -0.8017837
## attr(,"scaled:center")
##   Kolesterol TekananDarah    GulaDarah 
##     199.1667     133.3333     135.0000 
## attr(,"scaled:scale")
##   Kolesterol TekananDarah    GulaDarah 
##     14.28869     10.80123     18.70829
# cek mean dan sd tiap kolom setelah standarisasi
colMeans(Z)
##    Kolesterol  TekananDarah     GulaDarah 
##  7.147061e-16 -8.835525e-16  0.000000e+00
apply(Z, 2, sd)
##   Kolesterol TekananDarah    GulaDarah 
##            1            1            1

3.2 Interpretasi Hasil

  1. Vektor Rata-Rata
    Menunjukkan nilai tengah (pusat data) dari setiap variabel.
    → Rata-rata kolesterol, tekanan darah, dan gula darah memberi gambaran kondisi pasien “rata-rata”.

  2. Matriks Kovarians
    Menggambarkan bagaimana variabel berubah bersama.
    → Nilai diagonal = variansi masing-masing variabel.
    → Nilai non-diagonal = arah hubungan antar variabel (positif = searah, negatif = berlawanan).

  3. Matriks Korelasi
    Mengukur keeratan hubungan antar variabel dalam skala -1 sampai 1.
    → Nilai mendekati 1 atau -1 = hubungan kuat.
    → Nilai mendekati 0 = hubungan lemah.

  4. Matriks Standardisasi
    Mengubah data agar tiap variabel memiliki rata-rata 0 dan standar deviasi 1.
    → Digunakan agar variabel dengan skala besar tidak mendominasi analisis multivariat (misalnya PCA, cluster analysis).