R Markdown ini akan membahas mengenai konsep matriks, mulai dari operasi dasar hingga konsep lanjutan seperti jarak Mahalanobis. Setiap bagian mencakup pengertian, contoh, interpretasi, sintaks R, dan rumus.
Matriks adalah array dua dimensi yang dapat dibuat dalam R
menggunakan fungsi matrix()
. Anda dapat menentukan elemen,
dimensi (baris dan kolom), pengisian berdasarkan baris atau kolom, dan
nama dimensi untuk mempermudah interpretasi.
Berikut adalah beberapa cara membuat matriks dengan contoh berbeda: 1. Matriks \(A\) berukuran \(4 \times 5\) dengan elemen berurutan: \[ A = \begin{bmatrix} 21 & 25 & 29 & 33 & 37 \\ 22 & 26 & 30 & 34 & 38 \\ 23 & 27 & 31 & 35 & 39 \\ 24 & 28 & 32 & 36 & 40 \end{bmatrix} \] 2. Matriks \(B\) berukuran \(3 \times 4\), diisi per baris: \[ B = \begin{bmatrix} 4 & 7 & 2 & 8 \\ 5 & 9 & 6 & 3 \\ 1 & 10 & 12 & 11 \end{bmatrix} \] 3. Matriks \(C\) berukuran \(2 \times 2\) dengan nama baris dan kolom: \[ C = \begin{bmatrix} R1: 15 & 9 \\ R2: 27 & 18 \end{bmatrix} \text{ dengan kolom } C1, C2 \]
Membuat matriks dengan struktur yang jelas (termasuk nama dimensi) memudahkan pengelolaan data, seperti dalam analisis statistik atau visualisasi.
# Matriks A (4x5)
A <- matrix(21:40, nrow=4, ncol=5); A
## [,1] [,2] [,3] [,4] [,5]
## [1,] 21 25 29 33 37
## [2,] 22 26 30 34 38
## [3,] 23 27 31 35 39
## [4,] 24 28 32 36 40
# Matriks B (3x4, byrow=TRUE)
b <- c(4,7,2,8,5,9,6,3,1,10,12,11)
B <- matrix(b, nrow=3, ncol=4, byrow=TRUE); B
## [,1] [,2] [,3] [,4]
## [1,] 4 7 2 8
## [2,] 5 9 6 3
## [3,] 1 10 12 11
# Matriks C (2x2 dengan nama dimensi)
sel <- c(15,9,27,18)
nama_kolom <- c("C1", "C2")
nama_baris <- c("R1", "R2")
C <- matrix(sel, nrow=2, ncol=2, byrow=TRUE, dimnames=list(nama_baris, nama_kolom)); C
## C1 C2
## R1 15 9
## R2 27 18
Matriks dibentuk sebagai: \[ A = [a_{ij}]
\text{ untuk } i=1,\dots,n \text{ dan } j=1,\dots,m \] dengan
elemen diatur berdasarkan parameter byrow
(per baris atau
kolom).
Pemanggilan komponen matriks adalah cara untuk mengakses elemen, baris, kolom, atau submatriks tertentu menggunakan indeks atau nama (jika ada).
Menggunakan matriks \(A\) di atas: - Kolom 2: \(\begin{bmatrix} 25 \\ 26 \\ 27 \\ 28 \end{bmatrix}\) - Baris 3: \(\begin{bmatrix} 23 & 27 & 31 & 35 & 39 \end{bmatrix}\) - Elemen (3,2): \(27\) - Submatriks (baris 1 dan 3, kolom 2): \(\begin{bmatrix} 25 \\ 27 \end{bmatrix}\) - Kolom 1-3: \(\begin{bmatrix} 21 & 25 & 29 \\ 22 & 26 & 30 \\ 23 & 27 & 31 \\ 24 & 28 & 32 \end{bmatrix}\) - Baris 2-4: \(\begin{bmatrix} 22 & 26 & 30 & 34 & 38 \\ 23 & 27 & 31 & 35 & 39 \\ 24 & 28 & 32 & 36 & 40 \end{bmatrix}\)
Pemanggilan komponen memungkinkan analisis data spesifik, seperti mengambil subset data untuk perhitungan atau visualisasi.
# Matriks A
A <- matrix(21:40, nrow=4, ncol=5); A
## [,1] [,2] [,3] [,4] [,5]
## [1,] 21 25 29 33 37
## [2,] 22 26 30 34 38
## [3,] 23 27 31 35 39
## [4,] 24 28 32 36 40
# Kolom 2
A[,2]
## [1] 25 26 27 28
# Baris 3
A[3,]
## [1] 23 27 31 35 39
# Elemen (3,2)
A[3,2]
## [1] 27
# Submatriks (baris 1 dan 3, kolom 2)
A[c(1,3),2]
## [1] 25 27
# Kolom 1-3
A[,1:3]
## [,1] [,2] [,3]
## [1,] 21 25 29
## [2,] 22 26 30
## [3,] 23 27 31
## [4,] 24 28 32
# Baris 2-4
A[2:4,]
## [,1] [,2] [,3] [,4] [,5]
## [1,] 22 26 30 34 38
## [2,] 23 27 31 35 39
## [3,] 24 28 32 36 40
Indeks matriks: \(A[i,j]\) untuk elemen pada baris \(i\), kolom \(j\). Untuk submatriks, gunakan rentang indeks \(A[i_1:i_2, j_1:j_2]\).
Matriks adalah array dua dimensi yang digunakan untuk merepresentasikan data linier. Operasi matriks meliputi penjumlahan, pengurangan, perkalian elemen-wise, dan perkalian matriks.
Penjumlahan matriks adalah operasi yang menjumlahkan elemen-elemen dari dua matriks pada posisi yang sama untuk menghasilkan matriks baru dengan dimensi yang sama.
Misalkan matriks: - \[ A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \] - \[ B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} \]
Hasil penjumlahan: \[ A + B = \begin{bmatrix} 1+5 & 2+6 \\ 3+7 & 4+8 \end{bmatrix} = \begin{bmatrix} 6 & 8 \\ 10 & 12 \end{bmatrix} \]
Penjumlahan matriks berguna untuk menggabungkan data dari dua sumber dengan struktur serupa, seperti menjumlahkan total penjualan dari dua cabang toko.
# Membuat matriks
A <- matrix(c(1,2,3,4), nrow=2)
B <- matrix(c(5,6,7,8), nrow=2)
# Penjumlahan
A + B
## [,1] [,2]
## [1,] 6 10
## [2,] 8 12
\[ C_{ij} = A_{ij} + B_{ij} \]
Pengurangan matriks adalah operasi yang mengurangkan elemen-elemen dari dua matriks pada posisi yang sama untuk menghasilkan matriks baru dengan dimensi yang sama.
Menggunakan matriks yang sama: - \[ A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \] - \[ B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} \]
Hasil pengurangan: \[ A - B = \begin{bmatrix} 1-5 & 2-6 \\ 3-7 & 4-8 \end{bmatrix} = \begin{bmatrix} -4 & -4 \\ -4 & -4 \end{bmatrix} \]
Pengurangan matriks digunakan untuk membandingkan dua set data, seperti menghitung selisih penjualan antara dua periode.
# Membuat matriks
A <- matrix(c(1,2,3,4), nrow=2)
B <- matrix(c(5,6,7,8), nrow=2)
# Pengurangan
A - B
## [,1] [,2]
## [1,] -4 -4
## [2,] -4 -4
\[ C_{ij} = A_{ij} - B_{ij} \]
Perkalian matriks adalah operasi yang menghasilkan matriks baru dengan mengalikan baris matriks pertama dengan kolom matriks kedua secara berurutan. Operasi ini berbeda dari perkalian elemen-wise.
Menggunakan matriks: - \[ A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \] - \[ B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} \]
Hasil perkalian: \[ A \times B = \begin{bmatrix} 1 \cdot 5 + 2 \cdot 7 & 1 \cdot 6 + 2 \cdot 8 \\ 3 \cdot 5 + 4 \cdot 7 & 3 \cdot 6 + 4 \cdot 8 \end{bmatrix} = \begin{bmatrix} 19 & 22 \\ 43 & 50 \end{bmatrix} \]
Perkalian matriks sering digunakan untuk transformasi linier, seperti rotasi dalam grafika komputer, atau dalam perhitungan statistik seperti regresi linier.
# Membuat matriks
A <- matrix(c(1,2,3,4), nrow=2)
B <- matrix(c(5,6,7,8), nrow=2)
# Perkalian matriks
A %*% B
## [,1] [,2]
## [1,] 23 31
## [2,] 34 46
\[ C_{ij} = \sum_{k=1}^m A_{ik} B_{kj} \] di mana \(A\) adalah matriks \(n \times m\), \(B\) adalah matriks \(m \times p\), dan \(C\) adalah matriks \(n \times p\).
Perkalian matriks dengan skalar adalah operasi yang mengalikan setiap elemen matriks dengan suatu bilangan skalar, menghasilkan matriks baru dengan dimensi yang sama.
Misalkan skalar \(k = 2\) dan matriks: - \[ A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \]
Hasil perkalian: \[ kA = 2 \cdot \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} = \begin{bmatrix} 2 \cdot 1 & 2 \cdot 2 \\ 2 \cdot 3 & 2 \cdot 4 \end{bmatrix} = \begin{bmatrix} 2 & 4 \\ 6 & 8 \end{bmatrix} \]
Perkalian skalar digunakan untuk menskalakan nilai-nilai dalam matriks, seperti mengubah satuan atau memperbesar nilai dalam analisis data.
# Membuat matriks
A <- matrix(c(1,2,3,4), nrow=2)
k <- 2
# Perkalian dengan skalar
k * A
## [,1] [,2]
## [1,] 2 6
## [2,] 4 8
\[ C_{ij} = k \cdot A_{ij} \]
Transpose matriks membalik baris dan kolom, sehingga \(A_{ij}\) menjadi \(A_{ji}\).
Untuk matriks \(A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}\), transpose adalah: \[ A^T = \begin{bmatrix} 1 & 3 \\ 2 & 4 \end{bmatrix} \]
Transpose berguna untuk mengubah orientasi data, misalnya dalam perhitungan kovarian atau transformasi linier.
A <- matrix(c(1,2,3,4), nrow=2)
t(A) # Transpose
## [,1] [,2]
## [1,] 1 2
## [2,] 3 4
\[ (A^T)_{ij} = A_{ji} \]
Invers matriks \(A^{-1}\) adalah matriks yang memenuhi \(A A^{-1} = I\), di mana \(I\) adalah matriks identitas. Hanya matriks persegi non-singular yang memiliki invers.
Untuk \(A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}\), inversnya: \[ A^{-1} \approx \begin{bmatrix} -2 & 1 \\ 1.5 & -0.5 \end{bmatrix} \]
Invers digunakan untuk menyelesaikan sistem persamaan linier: \(AX = B \rightarrow X = A^{-1}B\).
A <- matrix(c(1,2,3,4), nrow=2)
solve(A) # Invers
## [,1] [,2]
## [1,] -2 1.5
## [2,] 1 -0.5
Untuk matriks 2x2 \(A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}\): \[ A^{-1} = \frac{1}{ad - bc} \begin{bmatrix} d & -b \\ -c & a \end{bmatrix} \]
Determinan adalah nilai skalar yang menunjukkan sifat matriks, seperti apakah matriks singular (det = 0).
Untuk \(A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}\): \[ \det(A) = 1 \cdot 4 - 2 \cdot 3 = -2 \]
A <- matrix(c(1,2,3,4), nrow=2)
det(A)
## [1] -2
Untuk 2x2: \[ \det(A) = ad - bc \]
Nilai eigen \(\lambda\) dan vektor eigen \(v\) memenuhi persamaan \(Av = \lambda v\). Mereka menggambarkan sifat transformasi linier.
Untuk \(A = \begin{bmatrix} 1 & 2 \\ 2 & 1 \end{bmatrix}\), nilai eigen: \(\lambda_1 = 3\), \(\lambda_2 = -1\).
A <- matrix(c(1,2,2,1), nrow=2)
eigen(A) # Nilai dan vektor eigen
## eigen() decomposition
## $values
## [1] 3 -1
##
## $vectors
## [,1] [,2]
## [1,] 0.7071068 -0.7071068
## [2,] 0.7071068 0.7071068
Cari \(\lambda\) dari: \[ \det(A - \lambda I) = 0 \]
SVD memfaktorkan matriks \(A = U \Sigma V^T\), di mana \(U\) dan \(V\) ortogonal, \(\Sigma\) adalah matriks diagonal berisi nilai singular.
SVD sering digunakan untuk kompresi data atau PCA.
Nilai singular menunjukkan pentingnya dimensi dalam data.
A <- matrix(c(1,2,3,4), nrow=2)
svd(A)
## $d
## [1] 5.4649857 0.3659662
##
## $u
## [,1] [,2]
## [1,] -0.5760484 -0.8174156
## [2,] -0.8174156 0.5760484
##
## $v
## [,1] [,2]
## [1,] -0.4045536 0.9145143
## [2,] -0.9145143 -0.4045536
\[ A = U \Sigma V^T \]
Jarak mengukur seberapa jauh dua titik dalam ruang. Berikut adalah jenis-jenis jarak yang umum:
Pengertian: Jarak garis lurus berdasarkan teorema
Pythagoras.
Contoh: Untuk titik \((1,2)\) dan \((3,4)\):
\[ d = \sqrt{(3-1)^2 + (4-2)^2} = \sqrt{8}
\]
Interpretasi: Jarak fisik standar, sering digunakan
dalam analisis geometris.
Sintaks R:
dist(matrix(c(1,2,3,4), nrow=2), method="euclidean")
## 1
## 2 1.414214
Rumus:
\[ d = \sqrt{\sum_{i=1}^n (x_i - y_i)^2}
\]
Pengertian: Jarak total absolut (city block
distance).
Contoh: Untuk titik di atas: \(|3-1| + |4-2| = 4\).
Interpretasi: Berguna untuk data berbasis grid atau
kategorik.
Sintaks R:
dist(matrix(c(1,2,3,4), nrow=2), method="manhattan")
## 1
## 2 2
Rumus:
\[ d = \sum_{i=1}^n |x_i - y_i| \]
Pengertian: Jarak maksimum antar koordinat.
Contoh: Untuk titik di atas: \(\max(|3-1|, |4-2|) = 2\).
Interpretasi: Digunakan dalam analisis seperti gerakan
catur (king move).
Sintaks R:
dist(matrix(c(1,2,3,4), nrow=2), method="maximum")
## 1
## 2 1
Rumus:
\[ d = \max_{i} |x_i - y_i| \]
Pengertian: Jarak yang mempertimbangkan kovarian
antar variabel.
Contoh: Bergantung pada matriks kovarian \(S\).
Interpretasi: Mengukur jarak statistik, cocok untuk
data multivariate.
Sintaks R:
x <- c(1,2); y <- c(3,4); S <- diag(2) # Kovarian identitas
mahalanobis(rbind(x,y), center=colMeans(rbind(x,y)), cov=S)
## x y
## 2 2
Rumus:
\[ d = \sqrt{(x - y)^T S^{-1} (x - y)}
\]
```
Vektor rata-rata adalah rata-rata elemen per kolom dari matriks data.
Untuk data \(\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}\), vektor rata-rata: \(\begin{bmatrix} 2 \\ 3 \end{bmatrix}\).
Merepresentasikan pusat data dalam ruang fitur.
data <- matrix(c(1,2,3,4), nrow=2)
colMeans(data)
## [1] 1.5 3.5
\[ \bar{x}_j = \frac{1}{n} \sum_{i=1}^n x_{ij} \]
Matriks rata-rata adalah matriks di mana setiap baris adalah vektor rata-rata, digunakan untuk centering data.
Untuk data di atas, matriks rata-rata: \(\begin{bmatrix} 2 & 3 \\ 2 & 3 \end{bmatrix}\).
Digunakan untuk menghilangkan rata-rata dari data sebelum analisis seperti PCA.
data <- matrix(c(1,2,3,4), nrow=2)
mean_vec <- colMeans(data)
mean_matrix <- matrix(rep(mean_vec, each=nrow(data)), nrow=nrow(data))
mean_matrix
## [,1] [,2]
## [1,] 1.5 3.5
## [2,] 1.5 3.5
\[ M = 1_n \bar{x}^T \] (1_n adalah vektor kolom berisi 1)
Matriks kovarian mengukur variasi bersama antar variabel dalam data.
Untuk data centered, kovarian dihitung dari produk silang.
data <- matrix(c(1,2,3,4), nrow=2)
cov(data)
## [,1] [,2]
## [1,] 0.5 0.5
## [2,] 0.5 0.5
\[ S = \frac{1}{n-1} X^T X \quad (\text{X centered}) \]
Matriks standardisasi adalah data yang diskalakan ke rata-rata 0 dan deviasi standar 1 per kolom.
Z-score: \(Z_{ij} = \frac{X_{ij} - \bar{x}_j}{\sigma_j}\).
Membuat variabel sebanding, berguna untuk algoritma seperti clustering.
data <- matrix(c(1,2,3,4), nrow=2)
scale(data)
## [,1] [,2]
## [1,] -0.7071068 -0.7071068
## [2,] 0.7071068 0.7071068
## attr(,"scaled:center")
## [1] 1.5 3.5
## attr(,"scaled:scale")
## [1] 0.7071068 0.7071068
\[ Z_{ij} = \frac{X_{ij} - \bar{x}_j}{\sigma_j} \]
Matriks korelasi adalah matriks kovarian yang dinormalisasi, dengan nilai antara -1 dan 1.
Diagonal selalu 1, off-diagonal menunjukkan korelasi linier.
Mengukur hubungan linier antar variabel.
data <- matrix(c(1,2,3,4), nrow=2)
cor(data)
## [,1] [,2]
## [1,] 1 1
## [2,] 1 1
\[ R_{ij} = \frac{S_{ij}}{\sqrt{S_{ii} S_{jj}}} \]