1. Operasi Matriks Dasar

Penjelasan dan Rumus

Matriks merupakan susunan bilangan dalam bentuk baris dan kolom. Dalam R, kita dapat melakukan operasi dasar seperti penjumlahan, pengurangan, perkalian, transpose, invers, dan determinan.

  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} \]

  1. 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} \]

  1. 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} \]

  1. 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} \]

  1. Untuk perkalian dengan skalar:

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

  1. 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} \]

  1. Invers Matriks

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

Jika matriks dapat diinvers, maka:

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

  1. 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} \]

Contoh Implementasi

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

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

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

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

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

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

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

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

Determinan

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

Interpretasi

  • Penjumlahan Matriks
    → Menunjukkan kombinasi total dari dua data/variabel pada posisi yang sama.

  • Pengurangan Matriks
    → Menunjukkan selisih / perbedaan antar data/variabel pada posisi yang sama.

  • Perkalian Matriks
    → Menunjukkan hubungan antar dimensi: baris dari matriks pertama berinteraksi dengan kolom matriks kedua → kombinasi linear.

  • Transpose Matriks
    → Mengubah sudut pandang data: baris jadi kolom, kolom jadi baris.

  • Invers Matriks
    → Menunjukkan cara “membalikkan” efek suatu transformasi sehingga kembali ke kondisi awal.

  • Determinan Matriks
    → Menggambarkan besaran perubahan skala (volume/ruang) akibat transformasi & menandai apakah matriks bisa dibalik (inversibel).

2. Eigen Value dan Eigen Vector

Penjelasan

1. Eigen (nilai eigen / eigenvalue)
Eigenvalue adalah suatu skalar (bilangan) yang menunjukkan seberapa besar suatu vektor berubah arah atau skala ketika dikenakan transformasi linier (misalnya matriks).

2. Vektor Eigen (eigenvector)
Eigenvector adalah vektor bukan nol yang arahannya tidak berubah ketika dikenakan transformasi linier, hanya skala panjangnya saja yang bisa berubah oleh suatu faktor (yaitu eigenvalue tadi).

Rumus

Jika \(A\) adalah matriks berukuran \(n \times n\), maka eigenvalue dan eigenvector didefinisikan sebagai:

\[ A v = \lambda v \]

dengan: \(A\) = matriks persegi (\(n \times n\))
\(v\) = eigenvector (\(v \neq 0\))
\(\lambda\) = eigenvalue (skalar)

Persamaan karakteristik untuk mencari eigenvalue:

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

Setelah nilai \(\lambda\) diperoleh, eigenvector dicari dengan menyelesaikan:

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

Contoh Implementasi

eigX = eigen(X)
eigX$values
## [1] 22.11121957  0.54996598  0.03881445
eigX$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

Interpretasi

  • Eigenvalue (\(\lambda\))
    → Menunjukkan seberapa besar skala/perubahan panjang vektor ketika dikenakan transformasi linier.
    → Besarnya nilai menggambarkan faktor regangan atau penyusutan sepanjang arah tertentu.
    → Tanda positif/negatif menunjukkan arah: positif = arah tetap, negatif = arah berbalik.

  • Eigenvector (\(v\))
    → Menunjukkan arah vektor yang tidak berubah meskipun dikenakan transformasi.
    → Menjadi “sumbu utama” transformasi: arah tetap, hanya panjangnya yang dikali faktor eigenvalue.
    → Mewakili arah dominan dari suatu sistem (misalnya dalam PCA: arah varians terbesar).

3. Dekomposisi Singular Value (SVD)

Penjelasan

Dekomposisi Singular Value (Singular Value Decomposition / SVD) adalah suatu cara untuk memecah sebuah matriks \(A\) berukuran \(m \times n\) menjadi hasil kali dari tiga matriks lain

Rumus

\[ A = U \Sigma V^T \] - \(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.

Contoh Implementasi

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
  • 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
  • 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

Interpretasi

  • Singular values menunjukkan kontribusi setiap komponen.
  • Digunakan dalam PCA dan reduksi dimensi.

4. Konsep Jarak

Penjelasan

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

a. Euclidean: Jarak lurus antar dua titik

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

b. Manhattan: Jumlah perbedaan absolut

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

c. Chebyshev: Perbedaan maksimum

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

d. Mahalanobis: Mempertimbangkan varians dan korelasi antar variabel

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

Contoh Implementasi

Diberikan tiga titik data sederhana:

  • A = (1, 2)
  • B = (4, 6)
  • C = (2, 3)

Hitung matriks jarak antara A, B, dan C menggunakan berbagai metode.

# Data
data <- matrix(c(1,2,
                 4,6,
                 2,3), 
               ncol = 2, byrow = TRUE)
rownames(data) <- c("A", "B", "C")
colnames(data) <- c("X1", "X2")
data
##   X1 X2
## A  1  2
## B  4  6
## C  2  3
# Euclidean Distance
euclidean <- dist(data, method = "euclidean")
euclidean
##          A        B
## B 5.000000         
## C 1.414214 3.605551
# Manhattan Distance
manhattan <- dist(data, method = "manhattan")
manhattan
##   A B
## B 7  
## C 2 5
# Chebyshev Distance
chebyshev <- dist(data, method = "maximum")
chebyshev
##   A B
## B 4  
## C 1 3
# Mahalanobis Distance
cov_mat <- cov(data)               # Matriks kovarians
mahalanobis_dist <- dist(scale(data, center = TRUE, scale = FALSE) %*% solve(chol(cov_mat)))
mahalanobis_dist
##   A B
## B 2  
## C 2 2

Interpretasi

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

5. Vektor Rata-Rata, Kovarians, dan Korelasi

  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} \]

  1. 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) \]

  1. 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) \]

  1. Matriks Standarisasi

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

Dengan keterangan:

Contoh Implementasi

# Data
X <- matrix(c(160,55,23,
              170,65,25,
              175,70,27,
              180,80,30,
              165,60,24),
            ncol = 3, byrow = TRUE)

colnames(X) <- c("Tinggi","Berat","Usia")
rownames(X) <- c("A","B","C","D","E")
X
##   Tinggi Berat Usia
## A    160    55   23
## B    170    65   25
## C    175    70   27
## D    180    80   30
## E    165    60   24
# 1. Pusat Data (Mean)
mean_vector <- colMeans(X)
mean_vector
## Tinggi  Berat   Usia 
##  170.0   66.0   25.8
# 2. Matriks Kovarians
cov_matrix <- cov(X)
cov_matrix
##        Tinggi Berat  Usia
## Tinggi  62.50  75.0 21.25
## Berat   75.00  92.5 26.50
## Usia    21.25  26.5  7.70
# 3. Matriks Korelasi
cor_matrix <- cor(X)
cor_matrix
##           Tinggi     Berat      Usia
## Tinggi 1.0000000 0.9863939 0.9686649
## Berat  0.9863939 1.0000000 0.9929552
## Usia   0.9686649 0.9929552 1.0000000
# 4. Matriks Standarisasi
Z <- scale(X, center = TRUE, scale = TRUE)
Z
##       Tinggi      Berat      Usia
## A -1.2649111 -1.1437255 -1.009050
## B  0.0000000 -0.1039750 -0.288300
## C  0.6324555  0.4159002  0.432450
## D  1.2649111  1.4556507  1.513575
## E -0.6324555 -0.6238503 -0.648675
## attr(,"scaled:center")
## Tinggi  Berat   Usia 
##  170.0   66.0   25.8 
## attr(,"scaled:scale")
##   Tinggi    Berat     Usia 
## 7.905694 9.617692 2.774887

Interpretasi

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