Matriks merupakan susunan bilangan dalam bentuk baris dan kolom. Dalam R, kita dapat melakukan operasi dasar seperti penjumlahan, pengurangan, perkalian, transpose, invers, dan determinan.
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} \]
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} \]
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} \]
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} \]
\[ Z = c \times X,\quad z_{ij} = c \cdot x_{ij} \]
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} \]
Mencari matriks invers, hanya berlaku untuk matriks persegi dengan determinan tidak nol.
Jika matriks dapat diinvers, maka:
\[ X^{-1} \cdot X = I \]
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} \]
####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
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
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
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
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 * 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
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
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
det(X)
## [1] 0.472
det(Y)
## [1] -11.5
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).
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).
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 \]
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
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).
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
\[
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.
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
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
#### 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
Matriks jarak digunakan untuk mengukur kesamaan/ketidaksamaan antar objek. Matriks jarak digunakan untuk mengukur kedekatan atau kemiripan antar objek dalam ruang berdimensi \(p\).
\[ d(x,y) = \sqrt{\sum_{i=1}^p (x_i - y_i)^2} \]
\[ d(x,y) = \sum_{i=1}^p |x_i - y_i| \]
\[ d(x,y) = \max_i |x_i - y_i| \]
\[ d(x,y) = \sqrt{(x-y)^\top S^{-1} (x-y)} \]
Diberikan tiga titik data sederhana:
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
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} \]
Mengukur seberapa besar variabel berubah bersama.
\[ S = \frac{1}{n-1} (X - \mathbf{1}\bar{x}^\top)^\top (X - \mathbf{1}\bar{x}^\top) \]
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) \]
\[ Z = D_s^{-1} (X - \mathbf{1}\bar{x}^\top) \]
Dengan keterangan:
# 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
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”.
Matriks Kovarians Menggambarkan bagaimana variabel berubah bersama.→ Nilai diagonal = variansi masing-masing variabel.→ Nilai non-diagonal = arah hubungan antar variabel (positif = searah, negatif = berlawanan).
Matriks Korelasi Mengukur keeratan hubungan antar variabel dalam skala -1 sampai 1.→ Nilai mendekati 1 atau -1 = hubungan kuat.→ Nilai mendekati 0 = hubungan lemah.
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).