💡 Dekomposisi Matriks dan Konsep Jarak

Penjelasan, Rumus, Contoh, Implementasi dari Praktikum 1

Disusun oleh Anggun Vriska Damayanti

Tanggal: 2025-09-09

1 Daftar Isi

2 Pendahuluan

::: Matriks merupakan salah satu objek penting dalam aljabar linear yang banyak digunakan dalam bidang sains, teknik, hingga ilmu sosial. Berbagai operasi dasar matriks seperti penjumlahan, pengurangan, perkalian, transpose, invers, dan determinan menjadi dasar dalam menyelesaikan permasalahan matematis maupun komputasi. Selain itu, konsep dekomposisi matriks sangat diperlukan untuk memecah matriks kompleks menjadi bentuk yang lebih sederhana, seperrti Singular Value Dekomposition yang memecah suatu matriks menjadi 3 bagian, SVD memudahkan analisis data maupun penyelesaian sistem persamaan linear. Di sisi lain, dalam analisis data dan statistika multivariat, diperlukan pula konsep jarak untuk mengukur kedekatan antar objek, baik dengan jarak Euclidean, Manhattan, Minkowski, maupun Mahalanobis :::

3 Operasi Matriks

3.1 Pengertian dan Rumus

3.1.1 Penjumlahan

Menggabungkan elemen matriks dengan menjumlahkan setiap elemen yang posisinya sama. \[ (A + B)_{ij} = a_{ij} + b_{ij} \]

3.1.2 Pengurangan

Menggabungkan elemen matriks dengan mengurangkan setiap elemen yang posisinya sama. \[ (A - B)_{ij} = a_{ij} - b_{ij} \]

3.1.3 Perkalian Matriks (Dot Products) Hasil kali baris dari matriks

pertama dengan kolom dari matriks kedua. \[ (AB)_{ij} = \sum_{k=1}^n a_{ik} b_{kj} \]

3.1.4 Perkalian Antar Elemen

Mengalikan elemen yang posisinya sama pada dua matriks dengan ukuran yang sama.
\[ C_{ij} = a_{ij} \times b_{ij}\\ perkalian\ dengan\ skalar\ ,\ (kA)_{ij} = k \cdot a_{ij} \]

3.1.5 Transpose

Mengubah baris menjadi kolom atau sebaliknya. \[ 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} \]

3.1.6 Invers

Matriks balikan yang bila dikalikan dengan matriks aslinya menghasilkan matriks identitas. \[ A^{-1} = \frac{1}{\det(A)} \cdot \text{adj}(A) \]

3.1.7 Determinan

Nilai skalar yang menunjukkan apakah matriks dapat dibalik (invertible) atau tidak. \[ \det(A) = \begin{vmatrix} a & b \\ c & d \end{vmatrix} = ad - bc \\det(A) = \begin{vmatrix} a & b & c \\ d & e & f \\ g & h & i \end{vmatrix} = a(ei - fh) - b(di - fg) + c(dh - eg) \]

3.2 Contoh dan Implementasi diberikan matriks X dan Y, yaitu

X = matrix(c(6.5,4.2,7.9,
             5.4,7.0,6.5,
             7.3,6.7,8.2), nrow = 3, ncol = 3)

Y = matrix(c(7.3,6.7,8.5,
             9.9,7.6,5.1,
             5.4,8.2,6.2), nrow = 3, ncol = 3, byrow = TRUE)

X; Y
##      [,1] [,2] [,3]
## [1,]  6.5  5.4  7.3
## [2,]  4.2  7.0  6.7
## [3,]  7.9  6.5  8.2
##      [,1] [,2] [,3]
## [1,]  7.3  6.7  8.5
## [2,]  9.9  7.6  5.1
## [3,]  5.4  8.2  6.2

3.2.1 Penjumlahan

X + Y
##      [,1] [,2] [,3]
## [1,] 13.8 12.1 15.8
## [2,] 14.1 14.6 11.8
## [3,] 13.3 14.7 14.4

3.2.2 Pengurangan

X-Y
##      [,1] [,2] [,3]
## [1,] -0.8 -1.3 -1.2
## [2,] -5.7 -0.6  1.6
## [3,]  2.5 -1.7  2.0

3.2.3 Perkalian Matriks (Dot Products)

X %*% Y
##        [,1]   [,2]   [,3]
## [1,] 140.33 144.45 128.05
## [2,] 136.14 136.28 112.94
## [3,] 166.30 169.57 151.14
Y %*% X
##        [,1]   [,2]   [,3]
## [1,] 142.74 141.57 167.88
## [2,] 136.56 139.81 165.01
## [3,] 118.52 126.86 145.20

3.2.4 Perkalian Antar Elemen dan Perkalian dengan Skalar

X * Y
##       [,1]  [,2]  [,3]
## [1,] 47.45 36.18 62.05
## [2,] 41.58 53.20 34.17
## [3,] 42.66 53.30 50.84
2 * X   
##      [,1] [,2] [,3]
## [1,] 13.0 10.8 14.6
## [2,]  8.4 14.0 13.4
## [3,] 15.8 13.0 16.4
2 * Y
##      [,1] [,2] [,3]
## [1,] 14.6 13.4 17.0
## [2,] 19.8 15.2 10.2
## [3,] 10.8 16.4 12.4

3.2.5 Transpose

t(X)
##      [,1] [,2] [,3]
## [1,]  6.5  4.2  7.9
## [2,]  5.4  7.0  6.5
## [3,]  7.3  6.7  8.2
t(Y)
##      [,1] [,2] [,3]
## [1,]  7.3  9.9  5.4
## [2,]  6.7  7.6  8.2
## [3,]  8.5  5.1  6.2

3.2.6 Invers

solve(X)   # inv(X)
##            [,1]        [,2]       [,3]
## [1,] -0.9532659 -0.21818432  1.0269117
## [2,] -1.2726272  0.30077775  0.8871911
## [3,]  1.9271801 -0.02821942 -1.5706518
solve(Y)   # inv(Y)
##             [,1]         [,2]        [,3]
## [1,]  0.03460614  0.183869620 -0.19869150
## [2,] -0.22095696 -0.004178855  0.30636231
## [3,]  0.26209256 -0.154617635 -0.07084465

3.2.7 Determinan

det(X)
## [1] -14.529
det(Y)
## [1] 153.152

4 Eigen Value dan Eigen Vector

4.1 Pengertian dan Rumus

4.1.1 Eigen Value

eigen value merupakan suatu bilangan skalar (lambda) yang menunjukkan besar dan kecilnya perubahan vektor ketika diberikan sebuah matriks A, atau dapat disebut sebagai jumlah variasi yang dapat dijelaskan oleh suatu komponen.

\[ A v = \lambda v \] untuk mencari eigen value, digunakan rumus : \[ \det(A - \lambda I) = 0 \]

4.1.2 Eigen Vector Eigen vektor merupakan vektor tak nol (v) yang

arahnya tidak berubah apabila diberikan transformasi linear oleh matriks A. Eigen vektor menunjukkan arah utama dari transformasi tersebut

\[ A v = \lambda v \]

4.1.3 Pasangan Eigen

Pasangan Eigen merupakan kombinasi dari eigenvalue dan eigen vektor yang sesuai. \[ (\lambda, v) \]

4.2 Contoh dan Implementasi

Diberikan sebuah matriks berukuran 3 x 3, yaitu

A = matrix(c(2,0,0,
              0,3,4,
              0,4,9), nrow=3, byrow=TRUE)

4.2.1 Eigen Value

eigA <- eigen(A)
eigA$values
## [1] 11  2  1

4.2.2 Eigen Vektor

eigA$vectors
##           [,1] [,2]       [,3]
## [1,] 0.0000000    1  0.0000000
## [2,] 0.4472136    0  0.8944272
## [3,] 0.8944272    0 -0.4472136

4.2.3 Pasangan Eigen

for (i in seq_along(eigA$values)) {
  cat("\nPasangan ke-", i, ":\n")
  cat("Eigenvalue =", eigA$values[i], "\n")
  cat("Eigenvector =\n")
  print(eigA$vectors[, i])
}
## 
## Pasangan ke- 1 :
## Eigenvalue = 11 
## Eigenvector =
## [1] 0.0000000 0.4472136 0.8944272
## 
## Pasangan ke- 2 :
## Eigenvalue = 2 
## Eigenvector =
## [1] 1 0 0
## 
## Pasangan ke- 3 :
## Eigenvalue = 1 
## Eigenvector =
## [1]  0.0000000  0.8944272 -0.4472136

5 Singular Value Decompoasition (SDV)

5.1 Pengertian dan Rumus Singular

Value Decomposition adalah dekomposisi atau pemecahan sebuah matriks menjadi 3 matriks lain yang memiliki sifat tertentu.Setiap matriks \[ A \in \mathbb{R}^{m \times n} \] dapat dituliskan sebagai: \[ A = UDV^T \]

dengan : \[ U \in \mathbb{R}^{m \times m}, U^TU = I_m\ (ortogonal)\\V \in \mathbb{R}^{n \times n}\, \ V^TV = I_n\ (ortogonal) \\D \in \mathbb{R}^{m \times n}\\ diagonal\ dengan\ elemen\ singular\ value: \ D = \begin{bmatrix} \ D_1 & 0 & \cdots & 0 \\ 0 & \ D_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \ D_r \end{bmatrix} \]

5.2 Contoh dan Implementasi

diberikan matriks sebagai berikut :

# Matriks A
A = matrix(c(6,-4,5,
              3,-6,7,
              -3,8,-2,
              4,5,4), 4, 3, byrow=TRUE)
A
##      [,1] [,2] [,3]
## [1,]    6   -4    5
## [2,]    3   -6    7
## [3,]   -3    8   -2
## [4,]    4    5    4

5.2.1 Singular Value Decomposition

svd_result <- svd(A)

singular_value <- svd_result$d
U <- svd_result$u
V <- svd_result$v

U
##             [,1]       [,2]        [,3]
## [1,] -0.56133006 0.25905858  0.47544292
## [2,] -0.63229950 0.04290512 -0.77353015
## [3,]  0.53108119 0.41558162 -0.40887408
## [4,] -0.05530527 0.87082703  0.09179938
V
##            [,1]      [,2]        [,3]
## [1,] -0.4742099 0.4551042  0.75366120
## [2,]  0.6706030 0.7413700 -0.02573308
## [3,] -0.5704530 0.4932046 -0.65675917
singular_value
## [1] 14.928714  8.612600  2.820746

6 Konsep Jarak

6.1 Pengertian dan Rumus

6.1.1 Jarak Euclidean

merupakan jarak lurus atau garis terpendek antara dua titik dalam ruang \(p\) dimensi. \[ d_{\text{Euclidean}}(x,y) = \sqrt{\sum_{i=1}^p (x_i - y_i)^2} \]

6.1.2 Jarak Manhattan

Merupakan jumlah dari perbedaan absolut antara koordinat \[ d_{\text{Manhattan}}(x,y) = \sum_{i=1}^p |x_i - y_i| \] ###Jarak Chebyshev Merupakan jarak yang ditentukan berdasarkan selisih terbesar antar dimensi \[ d_{\text{Chebyshev}}(x,y) = \max_{i=1,\dots,p} |x_i - y_i| \]

6.1.3 Jarak Mahalanobis

Jarak Mahalonabis memperhitungkan varians dan korelasi antar variabel.
\[ d_{\text{Mahalanobis}}(x,y) = \sqrt{(x - y)^T S^{-1} (x - y)} \]

dengan \(S\) adalah matriks kovarians dari data.

6.1.4 Jarak Minkowski Merupakan bentuk umum yang mencakup beberapa ukuran

jarak lain sebagai kasus khusus, seperti jarak Manhattan, jarak Euclidean, dan jarak Chebyshev. \[ d_{\text{Minkowski}}(x,y;q) = \left( \sum_{i=1}^p |x_i - y_i|^q \right)^{\frac{1}{q}} \]

catatan: - \(q=1\) ⟶ Jarak Manhattan
- \(q=2\) ⟶ Jarak Euclidean
- \(q \to \infty\) ⟶ Jarak Chebyshev

6.2 Contoh dan Implementasi diberikan data dengan 3 variabel dalam bentuk

matriks adalah sebagai berikut

#(5 observasi, 3 variabel)
data <- matrix(c(
  2,4,5,
  3,7,6,
  4,5,8,
  6,9,7,
  5,3,2
), nrow = 5, byrow = TRUE)

colnames(data) <- c("X1", "X2", "X3")
rownames(data) <- paste("Obs", 1:5, sep = "")
data
##      X1 X2 X3
## Obs1  2  4  5
## Obs2  3  7  6
## Obs3  4  5  8
## Obs4  6  9  7
## Obs5  5  3  2

6.2.1 Jarak Euclidean

library(factoextra)
## Warning: package 'factoextra' was built under R version 4.5.1
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.5.1
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
dist.eucl <- dist(data, method = "euclidean"); dist.eucl
##          Obs1     Obs2     Obs3     Obs4
## Obs2 3.316625                           
## Obs3 3.741657 3.000000                  
## Obs4 6.708204 3.741657 4.582576         
## Obs5 4.358899 6.000000 6.403124 7.874008
fviz_dist(dist.eucl)

Interpretasi : Berdasarkan heatmap jarak euclidean, dapat dilihat bahwa observasi 2 dan observasi 3 memiliki jarak paling dekat, sehingga keduanya merupakan observasi yang paling mirip. Observasi 1 juga memilik jarak yang cukup dekat dengan observasi 2 dan observasi 3, sedangkan observasi 4 memiliki jarak yang masih berhubungan dengan kelompok lain, sedangangkan kelompok 5, memiliki jarak yang paling jauh dengan observasi lainnya, sehingga dapat dianggap sebagai observasi yang paling berbeda.

6.2.2 Jarak Manhattan

dist.man <- dist(data, method = "manhattan"); dist.man
##      Obs1 Obs2 Obs3 Obs4
## Obs2    5               
## Obs3    6    5          
## Obs4   11    6    7     
## Obs5    7   10    9   12
fviz_dist(dist.man)

Interpretasi : Berdasarkan heatmap dapat dilihat bahwa observasi 4 dan observasi 5 memiliki jarak yang paling jauh atau berbeda, sedangkan obsrvasi 2 memiliki jarak yang paling mirip dengan observasi 2 dan observasi 3. Lalu observasi 1 memiliki jarak yang sedang dengan observasi 3.

6.2.3 Jarak Chebyshev

dist.cheb <- dist(data, method = "maximum"); dist.cheb
##      Obs1 Obs2 Obs3 Obs4
## Obs2    3               
## Obs3    3    2          
## Obs4    5    3    4     
## Obs5    3    4    6    6
fviz_dist(dist.cheb)

Interpretasi : Berdasarkan jarak Chebyshev jarak antara observasi 2 dan observasi 3 memiliki jarak yang paling dekat atau paling mirip. Sedangkan observasi 3 memiliki jarak yang paling jauh dengan observasi 5, dan observasi 4 memiliki jarak yang sangat jauh dengan observasi 5. Sedangkan observasi 5 dengan observasi 1 dan observasi 2 dengan observasi 4 memiliki jarak yang sedang.

6.2.4 Jarak Mahalonabis

library(StatMatch)
## Warning: package 'StatMatch' was built under R version 4.5.1
## Loading required package: proxy
## Warning: package 'proxy' was built under R version 4.5.1
## 
## 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.5.1
## 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: dplyr
## Warning: package 'dplyr' was built under R version 4.5.1
## 
## 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
dist.mah <- mahalanobis.dist(data)
dist.mah_matrix <- as.matrix(dist.mah);dist.mah_matrix
##          Obs1     Obs2     Obs3     Obs4     Obs5
## Obs1 0.000000 1.332507 2.287704 2.790081 2.354976
## Obs2 1.332507 0.000000 2.703405 1.968805 2.671743
## Obs3 2.287704 2.703405 0.000000 2.561676 2.826774
## Obs4 2.790081 1.968805 2.561676 0.000000 2.604753
## Obs5 2.354976 2.671743 2.826774 2.604753 0.000000

6.2.5 Jarak Minskowski

# Fungsi jarak Minkowski untuk matriks data
minkowski_matrix <- function(data, q) {
  n <- nrow(data)
  D <- matrix(0, n, n)
  for (i in 1:n) {
    for (j in 1:n) {
      D[i, j] <- sum(abs(data[i, ] - data[j, ])^q)^(1/q)
    }
  }
  rownames(D) <- rownames(data)
  colnames(D) <- rownames(data)
  return(D)
}

# Hitung matriks jarak Minkowski untuk q = 3
dist.mink <- minkowski_matrix(data, q = 3)
dist.mink
##          Obs1     Obs2     Obs3     Obs4     Obs5
## Obs1 0.000000 3.072317 3.301927 5.818648 3.802952
## Obs2 3.072317 0.000000 2.571282 3.301927 5.142563
## Obs3 3.301927 2.571282 0.000000 4.179339 6.082202
## Obs4 5.818648 3.301927 4.179339 0.000000 6.993191
## Obs5 3.802952 5.142563 6.082202 6.993191 0.000000

7 Vektor Rata-rata

7.1 Pengertian dan Rumus

7.1.1 Matriks Rata-rata

Matriks rata-rata adalah vektor yang berisi nilai rata-rata dari setiap variabel dalam suatu dataset. Matriks ini merepresentasikan pusat (titik tengah) dari data. Jika \(X\) adalah matriks data berukuran \(m \times n\), maka vektor rata-rata:

\[ \bar{x} = \begin{bmatrix} \bar{x}_1 \\ \bar{x}_2 \\ \vdots \\ \bar{x}_p \end{bmatrix} = \frac{1}{n} \sum_{i=1}^n x_i \]

7.1.2 Matriks Kovarians

Matriks kovarians menggambarkan penyebaran dari data. Diagonal utama matriks berisi varians masing-masing variabel, sedangkan selain diagonal utama berisi kovarians antar variabel.

\[ S = \frac{1}{n-1} \sum_{i=1}^n (x_i - \bar{x})(x_i - \bar{x})^T \]

atau dalam bentuk matriks:\

\[ S = \begin{bmatrix} s_{11} & s_{12} & \cdots & s_{1p} \\ s_{21} & s_{22} & \cdots & s_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ s_{p1} & s_{p2} & \cdots & s_{pp} \end{bmatrix} \]

7.1.3 Matriks Korelasi

Matriks korelasi menunjukkan hubungan linier antar variabel dalam skala baku (antara -1 dan 1). Nilai diagonal utama selalu 1. $$ R = D  ^{-1} SD ^{-1}\ dengan D = (, , , ).

\atau secara elemen:\

r_{ij} = $$

7.1.4 Matriks Standardisasi

Matriks standardisasi adalah transformasi data ke dalam skala z-score sehingga setiap variabel memiliki rata-rata 0 dan varians 1. Digunakan agar variabel dengan skala berbeda dapat dibandingkan. Untuk data \(X\), matriks data terstandardisasi \(Z\):

\[ Z = (X - \mathbf{1}\bar{x}^T) D_s^{-1} \]

dengan \(\mathbf{1}\) adalah vektor satuan, dan

\[ D_s = \text{diag}(\sqrt{s_{11}}, \sqrt{s_{22}}, \dots, \sqrt{s_{pp}}) \]

7.2 Contoh dan Implementasi diberikan data sebagai berikut berat badan

(BB) dan Tinggi Badan (TB) anak-anak sebagai berikut :

Books <- c(12, 5, 20, 8, 15)
StudyHours <- c(10, 6, 15, 12, 9)
AssignmentScore <- c(80, 70, 90, 85, 75)
data_b <- as.matrix(cbind(Books, StudyHours, AssignmentScore)); data_b
##      Books StudyHours AssignmentScore
## [1,]    12         10              80
## [2,]     5          6              70
## [3,]    20         15              90
## [4,]     8         12              85
## [5,]    15          9              75

7.2.0.1 Matriks Rata-Rata

vecMeans = as.matrix(colMeans(data_b)); vecMeans
##                 [,1]
## Books           12.0
## StudyHours      10.4
## AssignmentScore 80.0
vecRata = matrix(c(mean(Books), mean(StudyHours), mean(AssignmentScore)), nrow=3, ncol=1); vecRata
##      [,1]
## [1,] 12.0
## [2,] 10.4
## [3,] 80.0

7.2.1 Matriks Kovarians

varkov = cov(data_b); varkov
##                 Books StudyHours AssignmentScore
## Books           34.50      14.25           28.75
## StudyHours      14.25      11.30           26.25
## AssignmentScore 28.75      26.25           62.50

7.2.2 Matriks Korelasi

korel = cor(data_b); korel
##                     Books StudyHours AssignmentScore
## Books           1.0000000  0.7217156       0.6191392
## StudyHours      0.7217156  1.0000000       0.9877569
## AssignmentScore 0.6191392  0.9877569       1.0000000

7.2.3 Matriks Standardisasi (akar dari variansi masing-masing variabel)

n = nrow(data_b);n
## [1] 5
u = matrix(1,n,1); u
##      [,1]
## [1,]    1
## [2,]    1
## [3,]    1
## [4,]    1
## [5,]    1
xbar = cbind((1/n)*t(u)%*%data_b); xbar
##      Books StudyHours AssignmentScore
## [1,]    12       10.4              80
D = data_b - u %*% xbar; D
##      Books StudyHours AssignmentScore
## [1,]     0       -0.4               0
## [2,]    -7       -4.4             -10
## [3,]     8        4.6              10
## [4,]    -4        1.6               5
## [5,]     3       -1.4              -5
S = (1/(n-1))*t(D)%*%D; S
##                 Books StudyHours AssignmentScore
## Books           34.50      14.25           28.75
## StudyHours      14.25      11.30           26.25
## AssignmentScore 28.75      26.25           62.50
Ds = diag(sqrt(diag(S))); Ds
##         [,1]     [,2]     [,3]
## [1,] 5.87367 0.000000 0.000000
## [2,] 0.00000 3.361547 0.000000
## [3,] 0.00000 0.000000 7.905694
R = solve(Ds) %*% S %*% solve(Ds); R
##           [,1]      [,2]      [,3]
## [1,] 1.0000000 0.7217156 0.6191392
## [2,] 0.7217156 1.0000000 0.9877569
## [3,] 0.6191392 0.9877569 1.0000000