1 Aljabar Matriks: Fondasi Komputasi

1.1 Definisi Matriks

Secara formal, matriks didefinisikan sebagai susunan bilangan, simbol, atau ekspresi dalam bentuk persegi panjang yang terdiri dari baris dan kolom (Anton & Rorres, 2014). Setiap item dalam matriks disebut sebagai entri atau elemen. Dimensi atau ukuran sebuah matriks, yang dikenal sebagai ordo, dinyatakan dalam format \(m \times n\), di mana \(m\) adalah jumlah baris dan \(n\) adalah jumlah kolom.

Contoh matriks \(\boldsymbol{A}\) dengan ordo \(2\times3\): \[ \boldsymbol{A} = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \end{bmatrix} \] Di dunia nyata, matriks merupakan struktur data fundamental dalam berbagai bidang seperti grafika komputer (untuk transformasi objek), ekonomi (dalam model input-output), dan yang paling relevan untuk kita, sebagai representasi data dalam statistika dan machine learning.

Untuk demonstrasi, kita akan membuat dua matriks 3x3 dari dataset data_akademik yang telah disiapkan.

# Mengambil 9 data pertama dari 3 kolom pertama 
X = matrix(as.matrix(data_akademik[1:3, 1:3]), nrow = 3, ncol = 3)
print("Matriks X (disusun per kolom):")
## [1] "Matriks X (disusun per kolom):"
X
##       [,1]  [,2]  [,3]
## [1,] 71.74 66.72 69.65
## [2,] 80.52 81.74 77.53
## [3,] 68.25 77.05 85.20

Secara default, R mengisi matriks berdasarkan kolom (column-wise). Jika kita ingin mengisinya berdasarkan baris (row-wise), kita perlu menambahkan argumen byrow = TRUE.

# Mengambil data baris 4-6 dari 3 kolom pertama
Y = matrix(as.matrix(data_akademik[4:6, 1:3]), nrow = 3, ncol = 3, byrow = TRUE)
print("Matriks Y (disusun per baris):")
## [1] "Matriks Y (disusun per baris):"
Y
##       [,1]  [,2]  [,3]
## [1,] 77.14 78.11 86.74
## [2,] 81.74 81.99 85.16
## [3,] 67.43 86.74 70.54

1.2 Operasi Dasar Matriks

Operasi aritmetika pada matriks memiliki aturan spesifik yang membedakannya dari aljabar skalar.

1.2.1 Penjumlahan dan Pengurangan

Operasi ini dilakukan secara element-wise (antar elemen yang bersesuaian). Syarat utamanya adalah kedua matriks harus memiliki ordo yang identik. \[ (\boldsymbol{A+B})_{ij} = a_{ij} + b_{ij} \]

# Penjumlahan Matriks
X + Y
##        [,1]   [,2]   [,3]
## [1,] 148.88 144.83 156.39
## [2,] 162.26 163.73 162.69
## [3,] 135.68 163.79 155.74
# Pengurangan Matriks
X - Y
##       [,1]   [,2]   [,3]
## [1,] -5.40 -11.39 -17.09
## [2,] -1.22  -0.25  -7.63
## [3,]  0.82  -9.69  14.66

1.2.2 Perkalian Matriks (Produk Matriks)

Perkalian matriks bukan operasi element-wise. Aturan perkalian matriks \(\boldsymbol{C} = \boldsymbol{A}\boldsymbol{B}\) adalah elemen \(c_{ij}\) (baris ke-i, kolom ke-j) dari matriks hasil merupakan dot product dari vektor baris ke-i dari \(\boldsymbol{A}\) dan vektor kolom ke-j dari \(\boldsymbol{B}\). \[ c_{ij} = \sum_{k=1}^{p} a_{ik}b_{kj} \] Syaratnya, jumlah kolom matriks pertama (\(\boldsymbol{A}_{m \times p}\)) harus sama dengan jumlah baris matriks kedua (\(\boldsymbol{B}_{p \times n}\)). Matriks hasilnya akan berordo \(m \times n\).

# Perkalian matriks di R menggunakan operator %*%
X %*% Y
##          [,1]     [,2]     [,3]
## [1,] 15684.22 17115.43 16817.71
## [2,] 18120.59 19716.23 19414.25
## [3,] 17307.91 19038.58 18491.59

1.2.3 Perkalian dengan Skalar dan Perkalian Hadamard

  • Perkalian Skalar: Mengalikan setiap elemen matriks dengan sebuah bilangan skalar.
  • Perkalian Hadamard (Element-wise): Mengalikan elemen-elemen yang bersesuaian dari dua matriks berordo sama. Di R, operasi ini menggunakan operator * standar.
# Perkalian dengan skalar 0.5
0.5 * X
##        [,1]   [,2]   [,3]
## [1,] 35.870 33.360 34.825
## [2,] 40.260 40.870 38.765
## [3,] 34.125 38.525 42.600
# Perkalian Hadamard
X * Y
##          [,1]     [,2]     [,3]
## [1,] 5534.024 5211.499 6041.441
## [2,] 6581.705 6701.863 6602.455
## [3,] 4602.098 6683.317 6010.008

1.3 Operasi Lanjutan Matriks

1.3.1 Transpos Matriks

Transpos dari matriks \(\boldsymbol{A}\), dinotasikan sebagai \(\boldsymbol{A}^T\) atau \(\boldsymbol{A}'\), adalah operasi “membalik” matriks di sepanjang diagonalnya. Baris menjadi kolom, dan kolom menjadi baris. Jika \(\boldsymbol{A}\) berordo \(m \times n\), maka \(\boldsymbol{A}^T\) berordo \(n \times m\).

t(X)
##       [,1]  [,2]  [,3]
## [1,] 71.74 80.52 68.25
## [2,] 66.72 81.74 77.05
## [3,] 69.65 77.53 85.20

1.3.2 Determinan Matriks

Determinan adalah sebuah nilai skalar khusus yang hanya dapat dihitung dari matriks persegi. Secara geometris, nilai absolut dari determinan merepresentasikan faktor penskalaan volume (atau area untuk matriks 2x2) dari suatu transformasi linear (Strang, 2016). Jika determinan sebuah matriks adalah nol, artinya transformasi tersebut “meratakan” ruang ke dimensi yang lebih rendah, dan matriks tersebut disebut singular. \[\det(\boldsymbol{A}) \text{ atau } |\boldsymbol{A}|\]

det(X)
## [1] 9940.019
det(Y)
## [1] 9933.545

Karena determinan kedua matriks tidak nol, keduanya memiliki invers.

1.3.3 Invers Matriks

Invers dari matriks persegi \(\boldsymbol{A}\), dinotasikan \(\boldsymbol{A}^{-1}\), adalah matriks yang jika dikalikan dengan \(\boldsymbol{A}\) akan menghasilkan matriks identitas \(\boldsymbol{I}\). \[\boldsymbol{A}\boldsymbol{A}^{-1} = \boldsymbol{A}^{-1}\boldsymbol{A} = \boldsymbol{I}\] Sebuah matriks hanya memiliki invers jika dan hanya jika determinannya tidak nol. Invers matriks sangat penting untuk menyelesaikan sistem persamaan linear.

# Mencari invers matriks di R dengan fungsi solve()
invX = solve(X)
invX
##             [,1]        [,2]         [,3]
## [1,]  0.09965388 -0.03199305 -0.052352956
## [2,] -0.15783485  0.13668338  0.004649468
## [3,]  0.06290843 -0.09798039  0.049470044
# Verifikasi: X %*% invX harus menghasilkan matriks identitas
round(X %*% invX, 10) # Dibulatkan untuk mengatasi eror presisi floating-point
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    1

2 Dekomposisi Matriks: Eigenvalue, Eigenvector, dan SVD

Dekomposisi matriks adalah proses memfaktorkan sebuah matriks menjadi produk dari beberapa matriks. Ini sangat berguna untuk menyederhanakan masalah dan memahami properti intrinsik dari matriks tersebut.

2.1 Eigenvalue dan Eigenvector

Dalam transformasi linear, eigenvector dari sebuah matriks adalah vektor non-nol yang arahnya tidak berubah setelah transformasi; ia hanya direntangkan atau disusutkan. Faktor penskalaan ini disebut eigenvalue (λ) yang bersesuaian (Lay, 2021). \[ \boldsymbol{A}v = \lambda v \] Di mana \(\boldsymbol{A}\) adalah matriks, \(v\) adalah eigenvector, dan \(\lambda\) adalah eigenvalue. Eigenvalue dan eigenvector merupakan “sidik jari” dari sebuah matriks, mengungkapkan informasi fundamental tentang sistem yang diwakilinya, terutama dalam analisis komponen utama (PCA) di mana mereka menunjukkan arah dan besaran varians data.

# Ekstraksi Eigenvalue
eigen_X_vals <- eigen(X)$values
eigen_X_vals
## [1] 226.321425+0.000000i   6.179287+2.395064i   6.179287-2.395064i
# Ekstraksi Eigenvector
eigen_X_vecs <- eigen(X)$vectors
eigen_X_vecs
##               [,1]                   [,2]                   [,3]
## [1,] -0.5290614+0i -0.03655836+0.2339942i -0.03655836-0.2339942i
## [2,] -0.6106275+0i  0.69614167+0.0000000i  0.69614167+0.0000000i
## [3,] -0.5892606+0i -0.64049119-0.2215130i -0.64049119+0.2215130i

Fakta menarik: Trace (jumlah diagonal) matriks sama dengan jumlah eigenvalue-nya, dan determinan matriks sama dengan produk eigenvalue-nya.

# Verifikasi Trace
sum(diag(X))
## [1] 238.68
sum(eigen_X_vals)
## [1] 238.68+0i
# Verifikasi Determinan
det(X)
## [1] 9940.019
prod(eigen_X_vals)
## [1] 9940.019+0i

2.2 Singular Value Decomposition (SVD)

SVD adalah salah satu dekomposisi matriks paling kuat dan umum, yang dapat diterapkan pada matriks dengan ordo apapun (tidak harus persegi). SVD menguraikan matriks \(\boldsymbol{A}\) menjadi tiga matriks: \[ \boldsymbol{A_{m\times n}} = \boldsymbol{U_{m\times m}} \boldsymbol{\Sigma_{m\times n}} \boldsymbol{V_{n\times n}^{T}} \] - \(\boldsymbol{U}\): Matriks ortogonal berisi left singular vectors. - \(\boldsymbol{\Sigma}\) (Sigma): Matriks diagonal berisi singular values, yang merupakan akar kuadrat dari eigenvalue \(\boldsymbol{A}^T\boldsymbol{A}\). - \(\boldsymbol{V}\): Matriks ortogonal berisi right singular vectors.

SVD sangat berguna dalam reduksi dimensi, kompresi data (misalnya gambar), dan sistem rekomendasi.

# SVD pada matriks X
svd_X <- svd(X)

# U
svd_X$u
##            [,1]       [,2]         [,3]
## [1,] -0.5300319 -0.3778163 -0.759158108
## [2,] -0.6106529 -0.4511036  0.650852260
## [3,] -0.5883615  0.8085545  0.008384676
# D (disajikan sebagai vektor singular values, yaitu diagonal dari Sigma)
svd_X$d
## [1] 226.578567  11.214362   3.911955
# V (V, bukan V transpose)
svd_X$v
##            [,1]        [,2]       [,3]
## [1,] -0.5620564 -0.73508908 -0.3791262
## [2,] -0.5764524  0.01944084  0.8168995
## [3,] -0.5931234  0.67769174 -0.4346707

Untuk merekonstruksi matriks asli, kita dapat mengalikan ketiga komponen ini:

# Rekonstruksi Matriks X
U <- svd_X$u
D <- diag(svd_X$d)
V_t <- t(svd_X$v)

reconstructed_X <- U %*% D %*% V_t
round(reconstructed_X, 5) == round(X, 5)
##      [,1] [,2] [,3]
## [1,] TRUE TRUE TRUE
## [2,] TRUE TRUE TRUE
## [3,] TRUE TRUE TRUE

3 Konsep Jarak dalam Ruang Multivariat

Metrik jarak digunakan untuk mengukur “kedekatan” atau “kemiripan” antara dua observasi (vektor) dalam ruang berdimensi-p. Pemilihan metrik jarak yang tepat sangat bergantung pada sifat data dan tujuan analisis. Dalam bagian ini, kita akan membahas lima konsep jarak yang umum digunakan.

Kita akan mengambil sampel 15 mahasiswa dari data akademik dan melakukan standarisasi (mengubah data sehingga memiliki mean=0 dan sd=1). Standarisasi penting agar variabel dengan skala besar tidak mendominasi perhitungan jarak.

library(factoextra)

set.seed(123)
sampel_ss <- sample(1:nrow(data_akademik), 15)
df <- data_akademik[sampel_ss, ]

# Standarisasi data
df.scaled <- scale(df)

3.1 Jarak Euclidean

Jarak Euclidean adalah jarak “garis lurus” yang paling intuitif antara dua titik. Ini merupakan kasus khusus dari Jarak Minkowski dengan p=2. \[ d(\boldsymbol{x}, \boldsymbol{y}) = \sqrt{\sum_{k=1}^{p} (x_k - y_k)^2} \] Jarak ini umum digunakan dalam algoritma clustering seperti K-Means.

dist.eucl <- dist(df.scaled, method = "euclidean")
fviz_dist(dist.eucl, lab_size = 8)

Heatmap menunjukkan jarak antar mahasiswa. Warna yang lebih gelap (biru) menandakan jarak yang jauh (profil akademik sangat berbeda), sedangkan warna terang (merah) menandakan jarak dekat (profil akademik mirip).

3.2 Jarak Manhattan (City Block)

Jarak Manhattan mengukur jarak dengan menjumlahkan perbedaan absolut antar koordinat. Ini seperti menavigasi kota dengan blok-blok persegi di mana perjalanan diagonal tidak memungkinkan. Ini adalah kasus khusus Jarak Minkowski dengan p=1. \[ d(\boldsymbol{x}, \boldsymbol{y}) = \sum_{k=1}^{p} |x_k - y_k| \] Jarak ini lebih tahan terhadap outlier dibandingkan Euclidean.

dist.man <- dist(df.scaled, method = "manhattan")
fviz_dist(dist.man, lab_size = 8)

3.3 Jarak Chebyshev

Jarak Chebyshev didefinisikan sebagai perbedaan absolut terbesar di sepanjang dimensi koordinat mana pun. Ini berguna ketika kita hanya peduli pada perbedaan maksimum tunggal. Ini adalah kasus khusus Jarak Minkowski dengan p menuju tak hingga (\(p \rightarrow \infty\)). \[ d(\boldsymbol{x}, \boldsymbol{y}) = \max_{k} (|x_k - y_k|) \]

dist.cheb <- dist(df.scaled, method = "maximum")
fviz_dist(dist.cheb, lab_size = 8)

3.4 Jarak Mahalanobis

Jarak Mahalanobis adalah metrik jarak statistik yang memperhitungkan korelasi antar variabel dan bersifat scale-invariant. Ini mengukur jarak dari suatu titik ke pusat distribusi (mean) dalam satuan standar deviasi (Johnson & Wichern, 2007). \[ D_M(\boldsymbol{x}) = \sqrt{(\boldsymbol{x}-\boldsymbol{\mu})^T \boldsymbol{S}^{-1} (\boldsymbol{x}-\boldsymbol{\mu})} \] Di mana \(\boldsymbol{\mu}\) adalah vektor rata-rata dan \(\boldsymbol{S}^{-1}\) adalah invers dari matriks kovarians. Jarak ini sangat efektif untuk deteksi outlier dalam data multivariat.

library(StatMatch)
dist.mah <- mahalanobis.dist(df.scaled)

# Menampilkan sebagian kecil dari matriks jarak
round(as.matrix(dist.mah)[1:6, 1:6], 2)
##      15   19   14    3   10   18
## 15 0.00 1.47 2.30 1.18 2.50 3.30
## 19 1.47 0.00 2.00 2.10 3.48 3.42
## 14 2.30 2.00 0.00 1.70 3.22 2.22
## 3  1.18 2.10 1.70 0.00 2.15 2.71
## 10 2.50 3.48 3.22 2.15 0.00 3.48
## 18 3.30 3.42 2.22 2.71 3.48 0.00

Nilai yang lebih kecil menunjukkan kemiripan profil akademik setelah memperhitungkan struktur korelasi data.

3.5 Jarak Minkowski

Jarak Minkowski adalah generalisasi dari metrik jarak. Ia menyatukan Jarak Euclidean dan Manhattan dalam satu formula dengan parameter \(p\) (juga disebut sebagai order). \[ d(\boldsymbol{x}, \boldsymbol{y}) = \left (\sum_{k=1}^{p} |x_k - y_k|^p\right)^{\frac{1}{p}} \] Kasus-kasus khususnya adalah: * Jika p = 1, menjadi Jarak Manhattan. * Jika p = 2, menjadi Jarak Euclidean. * Jika p \(\rightarrow \infty\), menjadi Jarak Chebyshev.

Fleksibilitas ini memungkinkan penyesuaian metrik jarak dengan karakteristik spesifik dari sebuah dataset (Tan et al., 2019).

# Menghitung Jarak Minkowski dengan p=3
dist.mink <- dist(df.scaled, method = "minkowski", p = 3)
fviz_dist(dist.mink, lab_size = 8)

Heatmap ini menunjukkan jarak dengan \(p=3\), yang memberikan bobot lebih pada perbedaan yang besar antar dimensi dibandingkan Jarak Euclidean.

4 Statistik Deskriptif Multivariat

4.1 Vektor Rata-rata

Vektor rata-rata (\(\boldsymbol{\bar{x}}\)) adalah generalisasi dari konsep rata-rata untuk data multivariat. Ini adalah sebuah vektor di mana setiap elemennya adalah rata-rata dari variabel yang bersesuaian di seluruh observasi. \[ \boldsymbol{\bar{x}} = \begin{bmatrix} \bar{x}_1 \\ \bar{x}_2 \\ \vdots \\ \bar{x}_p \end{bmatrix} \]

# Menggunakan seluruh dataset akademik
data_matrix <- as.matrix(data_akademik)
vektor_rata2 <- colMeans(data_matrix)
vektor_rata2
##   Nilai_Kalkulus Nilai_Statistika    Nilai_Aljabar     Lama_Belajar 
##          74.0436          76.7820          79.9352          14.1484

Vektor ini merepresentasikan “pusat” atau “titik tengah” dari sebaran data kita di ruang 4-dimensi.

4.2 Matriks Varians-Kovarians

Matriks Varians-Kovarians (\(\boldsymbol{S}\)) adalah fondasi dari analisis multivariat. - Elemen diagonal (\(s_{ii}\)) berisi varians dari setiap variabel, mengukur seberapa besar sebaran data pada variabel tersebut. - Elemen off-diagonal (\(s_{ij}\)) berisi kovarians antara variabel i dan j, mengukur bagaimana kedua variabel tersebut bergerak bersama. Kovarians positif berarti jika satu variabel naik, yang lain cenderung naik. \[ \boldsymbol{S} = \frac{1}{n-1}\sum_{i=1}^{n} (\boldsymbol{x}_i - \boldsymbol{\bar{x}})(\boldsymbol{x}_i - \boldsymbol{\bar{x}})^T \]

# Matriks Kovarians
matriks_kovarians <- cov(data_matrix)
matriks_kovarians
##                  Nilai_Kalkulus Nilai_Statistika Nilai_Aljabar Lama_Belajar
## Nilai_Kalkulus        73.059932       14.6466508     -1.731907    5.8932518
## Nilai_Statistika      14.646651       66.6507917      1.947027    0.9595867
## Nilai_Aljabar         -1.731907        1.9470267     71.125143   -0.0773830
## Lama_Belajar           5.893252        0.9595867     -0.077383   19.6935057

Misalnya, kovarians positif antara Nilai_Statistika dan Lama_Belajar (jika ada) menunjukkan bahwa mahasiswa yang belajar lebih lama cenderung memiliki nilai statistika yang lebih tinggi.

4.3 Matriks Korelasi

Matriks Korelasi (\(\boldsymbol{R}\)) adalah versi terstandarisasi dari matriks kovarians. Setiap elemennya adalah koefisien korelasi Pearson, yang nilainya berkisar antara -1 dan 1. Ini membuatnya lebih mudah diinterpretasikan daripada kovarians. \[ r_{ij} = \frac{s_{ij}}{\sqrt{s_{ii}}\sqrt{s_{jj}}} \]

# Matriks Korelasi
matriks_korelasi <- cor(data_matrix)
matriks_korelasi
##                  Nilai_Kalkulus Nilai_Statistika Nilai_Aljabar Lama_Belajar
## Nilai_Kalkulus       1.00000000       0.20989207  -0.024025551  0.155365237
## Nilai_Statistika     0.20989207       1.00000000   0.028278585  0.026486223
## Nilai_Aljabar       -0.02402555       0.02827858   1.000000000 -0.002067628
## Lama_Belajar         0.15536524       0.02648622  -0.002067628  1.000000000

Dari sini kita bisa melihat, misalnya, korelasi kuat dan positif (mendekati 1) antara Nilai_Aljabar dan Nilai_Kalkulus, yang sangat masuk akal secara intuitif.


5 Daftar Pustaka

  1. Anton, H., & Rorres, C. (2014). Elementary Linear Algebra: Applications Version (11th ed.). Wiley.
  2. Johnson, R. A., & Wichern, D. W. (2007). Applied Multivariate Statistical Analysis (6th ed.). Pearson Prentice Hall.
  3. Lay, D. C., Lay, S. R., & McDonald, J. J. (2021). Linear Algebra and Its Applications (6th ed.). Pearson.
  4. Leskovec, J., Rajaraman, A., & Ullman, J. D. (2020). Mining of Massive Datasets (3rd ed.). Cambridge University Press.
  5. Strang, G. (2016). Introduction to Linear Algebra (5th ed.). Wellesley-Cambridge Press.