Operasi Matriks dan Aplikasinya

1. Operasi Matriks Dasar

Pada bagian ini dijelaskan operasi-operasi dasar pada matriks, mulai dari penjumlahan, pengurangan, perkalian, transpose, determinan, hingga invers. Disertakan contoh soal dan interpretasi dari setiap operasi.


a. Penjumlahan Matriks

Definisi & Rumus:

Jika dua matriks \(A, B \in \mathbb{R}^{m \times n}\), maka penjumlahan didefinisikan sebagai:

\[ C = A + B, \quad c_{ij} = a_{ij} + b_{ij} \]

Contoh:

A <- matrix(c(4,7,2,9), nrow=2, byrow=TRUE)
B <- matrix(c(1,3,5,6), nrow=2, byrow=TRUE)

C <- A - B
C
##      [,1] [,2]
## [1,]    3    4
## [2,]   -3    3

Interpretasi:
Penjumlahan matriks menggabungkan elemen yang bersesuaian. Cocok untuk menggabungkan data berukuran sama (misalnya menambahkan dua tabel nilai yang ukurannya sama).


b. Pengurangan Matriks

Definisi & Rumus:

\[ C = A - B, \quad c_{ij} = a_{ij} - b_{ij} \]

Contoh:

A <- matrix(c(4,7,2,9), nrow=2, byrow=TRUE)
B <- matrix(c(1,3,5,6), nrow=2, byrow=TRUE)

C <- A - B
C
##      [,1] [,2]
## [1,]    3    4
## [2,]   -3    3

Interpretasi:
Pengurangan matriks menghitung selisih elemen. Misalnya, selisih nilai antara dua kelompok data dengan ukuran sama.


c. Perkalian Matriks

Definisi & Rumus:

Jika \(A \in \mathbb{R}^{m \times n}\), \(B \in \mathbb{R}^{n \times p}\), maka:

\[ C = A \times B, \quad c_{ij} = \sum_{k=1}^{n} a_{ik} b_{kj} \]

Contoh:

A <- matrix(c(1,2,3,4), nrow=2, byrow=TRUE)
B <- matrix(c(2,0,1,2), nrow=2, byrow=TRUE)

C <- A %*% B
C
##      [,1] [,2]
## [1,]    4    4
## [2,]   10    8

Interpretasi: Perkalian matriks digunakan dalam transformasi linier. Contoh aplikasinya adalah rotasi, proyeksi, atau sistem persamaan linier.


d. Transpose

Definisi & Rumus:

Transpose mengubah baris menjadi kolom:

\[ (A^T)_{ij} = a_{ji} \]

Contoh:

A <- matrix(c(1,2,3,4,5,6), nrow=2, byrow=TRUE)
t(A)
##      [,1] [,2]
## [1,]    1    4
## [2,]    2    5
## [3,]    3    6

Interpretasi:
Transpose sering digunakan untuk menyesuaikan dimensi dalam perkalian matriks atau mengubah orientasi data.


e. Determinan

Definisi & Rumus:

Determinan adalah sebuah bilangan skalar yang diperoleh dari suatu matriks bujur sangkar. Nilainya menggambarkan sifat penting dari transformasi linier yang direpresentasikan oleh matriks tersebut. Secara sederhana, determinan dapat dipandang sebagai faktor pengali luas (pada matriks 2×2) atau faktor pengali volume (pada matriks 3×3 dan seterusnya) setelah suatu ruang ditransformasi oleh matriks.

Untuk matriks \(2 \times 2\):

\[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \quad \det(A) = ad - bc \]

Untuk matriks \(3 \times 3\) (aturan Sarrus):

\[ X = \begin{bmatrix} x_{11} & x_{12} & x_{13} \\ x_{21} & x_{22} & x_{23} \\ x_{31} & x_{32} & x_{33} \end{bmatrix} \]

\[ \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:

A <- matrix(c(2,3,1,4), nrow=2, byrow=TRUE)
det(A)
## [1] 5

Interpretasi:
Determinan menyatakan “skala” transformasi linier. Jika \(\det(A)=0\), maka matriks singular (tidak dapat dibalik). Nilai skalar tunggal yang menunjukkan apakah matriks bisa diinvers. Determinan ≠ 0 → matriks non-singular (punya solusi unik).
Determinan = 0 → matriks singular (ada baris/kolom yang bergantung, tidak bisa diinvers).


f. Invers

Definisi & Rumus:

Matriks balikan yang digunakan untuk mencari solusi sistem persamaan linear.

Invers dari \(A\) adalah \(A^{-1}\) yang memenuhi:

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

Untuk matriks \(2 \times 2\):

\[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \quad A^{-1} = \frac{1}{ad-bc} \begin{bmatrix} d & -b \\ -c & a \end{bmatrix}, \quad ad-bc \neq 0 \]

Contoh:

A <- matrix(c(2,1,5,3), nrow=2, byrow=TRUE)
solve(A)
##      [,1] [,2]
## [1,]    3   -1
## [2,]   -5    2

Interpretasi:
Invers digunakan untuk menyelesaikan sistem persamaan linier \(AX = B\). Jika invers ada, maka solusi unik adalah \(X = A^{-1}B\).


2. Eigen Value dan Eigen Vector

a. Eigen Value (\(\lambda\))

Definisi & Rumus:

Eigen value adalah bilangan skalar yang menunjukkan seberapa besar variasi (informasi) data yang dapat dijelaskan oleh suatu arah tertentu (eigen vector).

Dalam analisis multivariat (misalnya PCA), eigen value menggambarkan proporsi keragaman data yang dapat dijelaskan oleh masing-masing komponen utama.

contoh

X <- matrix(c(4,2,1,3), nrow=2, byrow=TRUE)
eigX <- eigen(X)
eigX$values
## [1] 5 2

Interpretasi:

\(\lambda\) besar → komponen tersebut menjelaskan variasi yang lebih besar.

Jumlah semua eigen value = total varians data.

Rasio \(\dfrac{\lambda_i}{\sum \lambda}\) sering dipakai untuk menentukan berapa banyak komponen yang penting dipertahankan.

b. Eigen Vector (\(v\))

Definisi & Rumus:

Eigen vector adalah vektor arah yang tidak berubah arahnya setelah dikalikan oleh matriks \(A\), hanya skalanya yang berubah dengan faktor \(\lambda\).

Dalam konteks PCA, eigen vector adalah arah sumbu baru yang memaksimalkan variasi data.

contoh

eig_vectors <- eigX$vectors
eig_vectors
##           [,1]       [,2]
## [1,] 0.8944272 -0.7071068
## [2,] 0.4472136  0.7071068

Interpretasi:

Menentukan orientasi/arah komponen utama.

Setiap eigen vector memiliki panjang 1 (ternormalisasi) dan saling ortogonal (tegak lurus).

Jika data dua dimensi, eigen vector bisa divisualisasikan sebagai sumbu baru yang “diputar” untuk menjelaskan variasi terbesar.

c. Hubungan Rumus

Persamaan dasar:

𝐴𝑣=𝜆𝑣 Av=λv

\(A\) : matriks simetris (misalnya matriks kovarians/korelasi).

\(v\) : eigen vector (arah/komponen).

\(\lambda\) : eigen value (besar variasi pada arah tersebut).

Artinya, ketika matriks \(A\) dikalikan dengan \(v\), hasilnya adalah kelipatan skalar dari \(v\) itu sendiri.

contoh

eigX = eigen(X)
eigX$values
## [1] 5 2
eigX$vectors
##           [,1]       [,2]
## [1,] 0.8944272 -0.7071068
## [2,] 0.4472136  0.7071068

Interpretasi: Eigen value besar → komponen tersebut menjelaskan variasi lebih banyak.


3. Singular Value Decomposition (SVD)

Definisi & Rumus: Matriks \(A_{m \times n}\) dapat diuraikan menjadi: \[ A = UDV^T \]
dengan \(U\) dan \(V\) matriks ortogonal, \(D\) diagonal berisi singular values.

contoh

A <- matrix(c(5,-3,6,
              2,-4,8,
              -2,5,-1,
              7,3,9), 4, 3, byrow=TRUE)
svd_result <- svd(A)
svd_result$d
## [1] 16.07076  7.41936  3.11187

Interpretasi:

Singular value besar menandakan dimensi informasi penting; jumlah singular value non-nol sama dengan rank matriks. Aproksimasi rangk-rendah menggunakan beberapa singular value terbesar seringkali cukup untuk merekonstruksi matriks dengan error kecil — dasar pemampatan data. Dalam konteks PCA, SVD pada matriks data (setelah distandardisasi) memberikan principal components dan varians terkait. ————————————————————————

4. Konsep Jarak

Definisi & Rumus:

Matriks jarak menyatakan ketidakmiripan atau kedekatan antar pasangan objek (observasi) dalam ruang berdimensi \(p\). Pilihan metrik jarak memengaruhi hasil clustering, dimensi reduksi, dan algoritma lain yang bergantung pada kedekatan.

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 soal konsep jarak

Data:

data <- matrix(c(
  190,130,95,
  210,140,110,
  185,125,100,
  200,135,105,
  195,128,97,
  215,145,115,
  205,138,108,
  180,120,90
), ncol=3, byrow=TRUE)

colnames(data) <- c("Cholesterol","BloodPressure","BloodSugar")
rownames(data) <- paste("Pasien",1:8)
data
##          Cholesterol BloodPressure BloodSugar
## Pasien 1         190           130         95
## Pasien 2         210           140        110
## Pasien 3         185           125        100
## Pasien 4         200           135        105
## Pasien 5         195           128         97
## Pasien 6         215           145        115
## Pasien 7         205           138        108
## Pasien 8         180           120         90

konsep jarak euclidean

data.scaled <- scale(data)
dist.eucl <- dist(data.scaled, method="euclidean")
dist.eucl
##           Pasien 1  Pasien 2  Pasien 3  Pasien 4  Pasien 5  Pasien 6  Pasien 7
## Pasien 2 2.6952015                                                            
## Pasien 3 0.9363604 2.9665763                                                  
## Pasien 4 1.5591625 1.1733587 1.8127877                                        
## Pasien 5 0.5294179 2.4375408 0.9603667 1.3301556                              
## Pasien 6 3.6079693 0.9363604 3.8602883 2.0833666 3.3715631                    
## Pasien 7 2.1894680 0.5294179 2.4476655 0.6498493 1.9499394 1.4347371          
## Pasien 8 1.5661628 4.1667331 1.3895998 3.0095852 1.7626750 5.0910970 3.6564485

konsep jarak manhattan

dist.man <- dist(data.scaled, method="manhattan")
dist.man
##           Pasien 1  Pasien 2  Pasien 3  Pasien 4  Pasien 5  Pasien 6  Pasien 7
## Pasien 2 4.6092062                                                            
## Pasien 3 1.5999574 5.0235741                                                  
## Pasien 4 2.6010005 2.0082057 3.0153684                                        
## Pasien 5 0.8849319 4.2034058 1.5315221 2.1952000                              
## Pasien 6 6.2091636 1.5999574 6.6235315 3.6081631 5.8033632                    
## Pasien 7 3.7242742 0.8849319 4.1386422 1.1232738 3.3184738 2.4848894          
## Pasien 8 2.6071201 7.2163263 2.1927522 5.2081206 3.0129205 8.8162837 6.3313943

konsep jarak Chebyshev

# Contoh data
data.scaled <- scale(iris[,1:4])  # normalisasi biar sebanding

# Hitung jarak Chebyshev
dist.cheb <- dist(data.scaled, method="maximum")
dist.cheb[1:5]   # tampilkan 5 jarak pertama
## [1] 1.1471408 0.6882845 0.9177126 0.2294282 0.9177126

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.

6. Vektor Rata-Rata, Kovarians, dan Korelasi

a. Vektor Rata-Rata (\(\bar{x}\))

Definisi & Rumus: Vektor rata-rata adalah sekumpulan nilai rata-rata dari setiap variabel dalam suatu data multivariat. Jika terdapat \(p\) variabel, maka \(\bar{x}\) berbentuk vektor berdimensi \(p\).Vektor rata-rata: \(\bar{x} = \frac{1}{n}\sum x_i\)

# Data contoh
BB = c(6.2,11.5,8.7,10.1,7.8,6.9,12.0,3.1,14.8,9.4)   # Berat Badan
PM = c(61,73,68,70,64,60,76,49,84,71)                # Panjang Moncong
RTB = c(115,138,127,123,131,120,143,95,160,128)      # Rentang Tubuh

lizard <- cbind(BB,PM,RTB)

# Vektor rata-rata
mean_vector <- colMeans(lizard)
mean_vector
##     BB     PM    RTB 
##   9.05  67.60 128.00

Interpretasi:

Interpretasi:

Hasil perhitungan memberikan vektor rata-rata:

\[ \bar{x} = [9.05, 67.60, 128.00] \]

yang berarti:
- Rata-rata berat badan (BB) kadal dalam sampel adalah 9.05 gram, artinya secara umum kadal dalam data ini cenderung memiliki berat sekitar 9 gram.
- Rata-rata panjang moncong (PM) adalah 67.60 mm, sehingga rata-rata ukuran moncong kadal berada di kisaran 68 mm.
- Rata-rata rentang tubuh (RTB) adalah 128 mm, menunjukkan bahwa secara umum panjang tubuh kadal sekitar 128 mm.

Interpretasi ini penting karena vektor rata-rata memberikan titik pusat (lokasi sentral) dari distribusi data multivariat.
Dengan kata lain, jika kita ingin menggambarkan profil “kadal rata-rata” pada dataset ini, maka karakteristiknya adalah berat 9.05 gram, panjang moncong 67.60 mm, dan rentang tubuh 128 mm.

b. Matriks Kovarians (\(S\))

Definisi & Rumus: Kovarians mengukur arah dan kekuatan hubungan linier antara dua variabel, sekaligus menyimpan varians di diagonalnya. Matriks kovarians \(S\) berukuran \(p \times p\) (untuk \(p\) variabel), dengan:

Diagonal (\(s_{ii}\)) = varians dari variabel ke-\(i\).

Off-diagonal (\(s_{ij}\)) = kovarians antara variabel ke-\(i\) dan ke-\(j\).

Kovarians: \(S = \frac{1}{n-1} (X - \bar{X})(X - \bar{X})^T\)

# Matriks kovarians
cov_matrix <- cov(lizard)
cov_matrix
##           BB        PM       RTB
## BB  10.98056  31.80000  54.96667
## PM  31.80000  94.04444 160.22222
## RTB 54.96667 160.22222 300.66667

Interpretasi:

\(s_{ij} > 0\) → variabel \(i\) dan \(j\) cenderung meningkat bersama.

\(s_{ij} < 0\) → variabel \(i\) naik, variabel \(j\) cenderung turun.

\(s_{ij} \approx 0\) → hubungan linier lemah atau tidak ada.

Nilai kovarians bergantung pada skala (satuan), sehingga sulit dibandingkan langsung antar variabel.

c. Matriks Korelasi (\(R\))

Definisi & Rumus: Korelasi adalah ukuran hubungan linier yang sudah dinormalisasi, sehingga nilainya berada pada rentang [-1, 1]. Matriks korelasi \(R\) diperoleh dengan membagi kovarians dengan akar varians masing-masing variabel.

Korelasi: \(R = D^{-1} S D^{-1}\), dengan \(D =\) matriks akar varians diagonal.

# Matriks korelasi
cor_matrix <- cor(lizard)
cor_matrix
##            BB        PM       RTB
## BB  1.0000000 0.9895743 0.9566313
## PM  0.9895743 1.0000000 0.9528259
## RTB 0.9566313 0.9528259 1.0000000

Interpretasi:

\(r_{ij} = 1\) → hubungan positif sempurna.

\(r_{ij} = -1\) → hubungan negatif sempurna.

\(r_{ij} = 0\) → tidak ada hubungan linier.

Karena sudah distandardisasi, matriks korelasi lebih cocok dipakai untuk membandingkan kekuatan hubungan antar variabel dengan skala berbeda.

##d. Matriks Standarisasi 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).

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

\(X\) = matriks data asli \((n \times p)\)

\(\bar{x}\) = vektor rata-rata tiap variabel

\(\mathbf{1}\) = vektor satuan \((n \times 1)\)

\(D_s\) = matriks diagonal berisi standar deviasi tiap variabel

Contoh soal

# Data contoh
BB = c(6.2,11.5,8.7,10.1,7.8,6.9,12.0,3.1,14.8,9.4)   # Berat Badan
PM = c(61,73,68,70,64,60,76,49,84,71)                 # Panjang Moncong
RTB = c(115,138,127,123,131,120,143,95,160,128)       # Rentang Tubuh

lizard <- cbind(BB,PM,RTB)

# Matriks standarisasi (Z)
Z <- scale(lizard)
Z[1:5,]   # tampilkan 5 data pertama
##              BB         PM         RTB
## [1,] -0.8600678 -0.6805771 -0.74972279
## [2,]  0.7393566  0.5568358  0.57670984
## [3,] -0.1056224  0.0412471 -0.05767098
## [4,]  0.3168671  0.2474826 -0.28835492
## [5,] -0.3772227 -0.3712239  0.17301295

*interpretasi Nilai negatif berarti observasi berada di bawah rata-rata pada variabel tersebut. Contoh: Individu pertama pada variabel BB = -0.75 artinya berat badan kadal pertama lebih rendah dari rata-rata.

Nilai positif berarti observasi berada di atas rata-rata. Contoh: Individu kedua memiliki nilai PM = 0.63 → moncongnya lebih panjang dari rata-rata.

Besarnya nilai (misalnya +2 atau -1.5) menunjukkan berapa kali standar deviasi data tersebut menjauh dari rata-rata.

Contoh soal

BB = c(6.2,11.5,8.7,10.1,7.8,6.9,12.0,3.1,14.8,9.4)
PM = c(61,73,68,70,64,60,76,49,84,71)
RTB = c(115,138,127,123,131,120,143,95,160,128)
lizard = cbind(BB,PM,RTB)

colMeans(lizard)
##     BB     PM    RTB 
##   9.05  67.60 128.00
cov(lizard)
##           BB        PM       RTB
## BB  10.98056  31.80000  54.96667
## PM  31.80000  94.04444 160.22222
## RTB 54.96667 160.22222 300.66667
cor(lizard)
##            BB        PM       RTB
## BB  1.0000000 0.9895743 0.9566313
## PM  0.9895743 1.0000000 0.9528259
## RTB 0.9566313 0.9528259 1.0000000

Interpretasi:
- Kovarians positif → variabel meningkat bersama-sama.
- Korelasi tinggi → hubungan linier kuat antar variabel.