Pendahuluan

Matriks adalah suatu himpunan bilangan atau variabel yang disusun dalam bentuk baris dan kolom (lajur) dalam bentuk persegi panjang yang di tempatkan di antara dua tanda kurung biasa ( ) atau siku [ ]. Untuk mempermudah perhitungan, analisis, dan interpretasi data, diperlukan dekomposisi matriks yaitu proses memecah sebuah matriks menjadi beberapa matriks lain yang lebih sederhana. Dekomposisi data memiliki dua jenis yaitu eigen decomposition dan singular value decomposistion (SVD). Selain itu, jarak antar objek observasi juga penting untuk mengetahui perbedaan antar objek. Beberapa ukuran jarak yang dapat dipakai yaitu Euclidean, Manhattan, Chebyshev, dan Mahalonobis.

#Operasi Matriks

##Pengertian

###Penjumlahan

Penjumlahan dalam matriks yaitu operasi yang dilakukan menjumlahkan elemen-elemen matriks X dan Y dengan posisi yang sama. \[ (A + B)_{ij} = a_{ij} + b_{ij} \]

###Pengurangan

Pengurangan dalam matriks yaitu operasi yang dilakukan dengan mengurangkan elemen-elemen pada posisi yang sama dari dua matriks yang berordo sama. \[ (A - B)_{ij} = a_{ij} - b_{ij} \]

Perkalian

Perkalian dalam matriks yaitu operasi yang dilakukan dengan mengalikan baris matriks pertama dengan kolom matriks kedua (dot product). \[ (AB)_{ij} = \sum_{k=1}^n a_{ik} b_{kj} \]

Transpose

Transpose dalam matriks yaitu operasi yang dilakukan dengan Menukar 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} \]

Invers

Invers dalam matriks matriks lain yang berfungsi sebagai kebalikan dari matriks asal, sehingga ketika keduanya dikalikan akan menghasilkan matriks identitas. \[ A^{-1} = \frac{1}{\det(A)} \cdot \text{adj}(A) \]

Determinan

Determinan adalah bilangan skalar yang dihitung dari elemen-elemen matriks persegi, digunakan untuk mengetahui sifat matriks, misalnya apakah matriks dapat diinvers. \[ \det(A) = \begin{vmatrix} a & b \\ c & d \end{vmatrix} = ad - bc \\det(A) = \begin{vmatrix} a & b & c \\ d & e & f \\ g & h & i \end{vmatrix} = a(ei - fh) - b(di - fg) + c(dh - eg) \]

##Contoh misalkan,

library(plyr)
## Warning: package 'plyr' was built under R version 4.5.1
X = matrix(c(6.5,4.2,7.9,
             5.4,7.0,6.5,
             7.3,6.7,8.2), nrow = 3, ncol = 3)

Y = matrix(c(7.3,6.7,8.5,
             9.9,7.6,5.1,
             5.4,8.2,6.2), nrow = 3, ncol = 3, byrow = TRUE)

X; Y
##      [,1] [,2] [,3]
## [1,]  6.5  5.4  7.3
## [2,]  4.2  7.0  6.7
## [3,]  7.9  6.5  8.2
##      [,1] [,2] [,3]
## [1,]  7.3  6.7  8.5
## [2,]  9.9  7.6  5.1
## [3,]  5.4  8.2  6.2

Penjumlahan

X + Y
##      [,1] [,2] [,3]
## [1,] 13.8 12.1 15.8
## [2,] 14.1 14.6 11.8
## [3,] 13.3 14.7 14.4

Pengurangan

X-Y
##      [,1] [,2] [,3]
## [1,] -0.8 -1.3 -1.2
## [2,] -5.7 -0.6  1.6
## [3,]  2.5 -1.7  2.0

Perkalian Matriks (Dot Products)

X %*% Y
##        [,1]   [,2]   [,3]
## [1,] 140.33 144.45 128.05
## [2,] 136.14 136.28 112.94
## [3,] 166.30 169.57 151.14
Y %*% X
##        [,1]   [,2]   [,3]
## [1,] 142.74 141.57 167.88
## [2,] 136.56 139.81 165.01
## [3,] 118.52 126.86 145.20

Transpose

t(X)
##      [,1] [,2] [,3]
## [1,]  6.5  4.2  7.9
## [2,]  5.4  7.0  6.5
## [3,]  7.3  6.7  8.2
t(Y)
##      [,1] [,2] [,3]
## [1,]  7.3  9.9  5.4
## [2,]  6.7  7.6  8.2
## [3,]  8.5  5.1  6.2

Invers

solve(X)   # inv(X)
##            [,1]        [,2]       [,3]
## [1,] -0.9532659 -0.21818432  1.0269117
## [2,] -1.2726272  0.30077775  0.8871911
## [3,]  1.9271801 -0.02821942 -1.5706518
solve(Y)   # inv(Y)
##             [,1]         [,2]        [,3]
## [1,]  0.03460614  0.183869620 -0.19869150
## [2,] -0.22095696 -0.004178855  0.30636231
## [3,]  0.26209256 -0.154617635 -0.07084465

Determinan

det(X)
## [1] -14.529
det(Y)
## [1] 153.152

#Eigen Value dan Eigen Vector

##Pengertian

###Eigen Value

Eigen Value adalah bilangan skalar khusus yang menunjukkan seberapa besar suatu vektor berubah ketika dikalikan dengan matriks tertentu. \[ A v = \lambda v \] untuk mencari eigen value, digunakan rumus : \[ \det(A - \lambda I) = 0 \]

Eigen Vector

Eigen vector adalah vektor khusus yang arahnya tidak berubah ketika dikalikan dengan suatu matriks.

\[ A v = \lambda v \]

Contoh

misalkan,

X = matrix(c(6.5,4.2,7.9,
             5.4,7.0,6.5,
             7.3,6.7,8.2), nrow = 3, ncol = 3)

Y = matrix(c(7.3,6.7,8.5,
             9.9,7.6,5.1,
             5.4,8.2,6.2), nrow = 3, ncol = 3, byrow = TRUE)

X; Y
##      [,1] [,2] [,3]
## [1,]  6.5  5.4  7.3
## [2,]  4.2  7.0  6.7
## [3,]  7.9  6.5  8.2
##      [,1] [,2] [,3]
## [1,]  7.3  6.7  8.5
## [2,]  9.9  7.6  5.1
## [3,]  5.4  8.2  6.2
eigX = eigen(X)
eigY = eigen(Y)

Eigen Value

eigvalX = eigX$values; eigvalX
## [1] 20.0531503  2.0077192 -0.3608695
eigvalY = eigY$values; eigvalY
## [1] 21.7100594+0.000000i -0.3050297+2.638443i -0.3050297-2.638443i

Eigen Vektor

eigvecX = eigX$vectors; eigvecX
##            [,1]       [,2]       [,3]
## [1,] -0.5564231  0.3933822 -0.4838008
## [2,] -0.5140912 -0.8381189 -0.4218863
## [3,] -0.6527661  0.3778984  0.7667781
eigvecY = eigY$vectors; eigvecY
##              [,1]                  [,2]                  [,3]
## [1,] 0.5937358+0i  0.3354349-0.4098673i  0.3354349+0.4098673i
## [2,] 0.6073585+0i -0.6278092+0.0000000i -0.6278092+0.0000000i
## [3,] 0.5278196+0i  0.3219694+0.4708328i  0.3219694-0.4708328i

Singular Value Decompoasition (SDV)

Pengertian

Value Decomposition adalah metode dekomposisi (pemfaktoran) matriks yang memecah sebuah matriks A berukuran m x n menjadi tiga matriks lain: \[ A \in \mathbb{R}^{m \times n} \] dapat dituliskan sebagai: \[ A = UDV^T \]

dengan : \[ U \in \mathbb{R}^{m \times m}, U^TU = I_m\ (ortogonal)\\V \in \mathbb{R}^{n \times n}\, \ V^TV = I_n\ (ortogonal) \\D \in \mathbb{R}^{m \times n}\\ diagonal\ dengan\ elemen\ singular\ value: \ D = \begin{bmatrix} \ D_1 & 0 & \cdots & 0 \\ 0 & \ D_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & \ D_r \end{bmatrix} \]

Contoh

misalkan, matriks A :

A <- matrix(c(7, -4, 9,
              -3, 5, -6,
              8, 2, -1,
              -7, 4, 10), 
            nrow = 4, ncol = 3, byrow = TRUE); A
##      [,1] [,2] [,3]
## [1,]    7   -4    9
## [2,]   -3    5   -6
## [3,]    8    2   -1
## [4,]   -7    4   10

Singular Value Decomposition

svd_result <- svd(A)
singular_value <- svd_result$d
U <- svd_result$u; U
##             [,1]       [,2]       [,3]
## [1,] -0.75689121  0.2921765 0.01905592
## [2,]  0.51080035 -0.1386821 0.45484505
## [3,] -0.06505582  0.4961913 0.78823880
## [4,] -0.40245054 -0.8057260 0.41404401
V <- svd_result$v; V
##            [,1]       [,2]      [,3]
## [1,] -0.3010887  0.8794667 0.3686244
## [2,]  0.2551159 -0.2981833 0.9197840
## [3,] -0.9188370 -0.3709785 0.1345863
singular_value
## [1] 15.058462 13.725243  5.904272

Konsep Jarak

Pengertian

Jarak Euclidean

Jarak Euclidean adalah jarak lurus terpendek antara dua titik dalam ruang \(p\) dimensi. \[ d_{\text{Euclidean}}(x,y) = \sqrt{\sum_{i=1}^p (x_i - y_i)^2} \]

Jarak Manhattan

Jarak Manhattan adalah jarak yang dihitung sebagai jumlah selisih absolut tiap koordinat. \[ d_{\text{Manhattan}}(x,y) = \sum_{i=1}^p |x_i - y_i| \]

###Jarak Chebyshev

Jarak Chebyshev adalah jarak yang ditentukan oleh selisih terbesar antar koordinat dari dua titik. \[ d_{\text{Chebyshev}}(x,y) = \max_{i=1,\dots,p} |x_i - y_i| \]

###Jarak Mahalanobis

Jarak Mahalanobis adalah jarak yang menghitung selisih antar titik dengan mempertimbangkan varians dan korelasi antar variabel.

\[ d_{\text{Mahalanobis}}(x,y) = \sqrt{(x - y)^T S^{-1} (x - y)} \]

dengan \(S\) adalah matriks kovarians dari data.

catatan: - \(q=1\) ⟶ Jarak Manhattan
- \(q=2\) ⟶ Jarak Euclidean
- \(q \to \infty\) ⟶ Jarak Chebyshev

##Contoh

Misalkan terdapat matriks berisikan data mahasiswa dan nilai sebagai berikut :

data <- matrix(c(
  80, 75, 85, 
  70, 88, 82,   
  92, 85, 89,   
  65, 70, 68    
), nrow = 4, byrow = TRUE)

colnames(data) <- c("Kalkulus", "ADM", "Stokastik")
rownames(data) <- paste("Mahasiswa", 1:4, sep = "")

data
##            Kalkulus ADM Stokastik
## Mahasiswa1       80  75        85
## Mahasiswa2       70  88        82
## Mahasiswa3       92  85        89
## Mahasiswa4       65  70        68

Jarak Euclidean

library(factoextra)
## Warning: package 'factoextra' was built under R version 4.5.1
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
dist.eucl <- dist(data, method = "euclidean"); dist.eucl
##            Mahasiswa1 Mahasiswa2 Mahasiswa3
## Mahasiswa2   16.67333                      
## Mahasiswa3   16.12452   23.28089           
## Mahasiswa4   23.21637   23.34524   37.34970
fviz_dist(dist.eucl)

Jarak Manhattan

dist.man <- dist(data, method = "manhattan"); dist.man
##            Mahasiswa1 Mahasiswa2 Mahasiswa3
## Mahasiswa2         26                      
## Mahasiswa3         26         32           
## Mahasiswa4         37         37         63
fviz_dist(dist.man)

Jarak Chebyshev

dist.cheb <- dist(data, method = "maximum"); dist.cheb
##            Mahasiswa1 Mahasiswa2 Mahasiswa3
## Mahasiswa2         13                      
## Mahasiswa3         12         22           
## Mahasiswa4         17         18         27
fviz_dist(dist.cheb)

Jarak Mahalonabis

library(StatMatch)
## Warning: package 'StatMatch' was built under R version 4.5.1
## Loading required package: proxy
## Warning: package 'proxy' was built under R version 4.5.1
## 
## Attaching package: 'proxy'
## The following objects are masked from 'package:stats':
## 
##     as.dist, dist
## The following object is masked from 'package:base':
## 
##     as.matrix
## Loading required package: survey
## Warning: package 'survey' was built under R version 4.5.1
## Loading required package: grid
## Loading required package: Matrix
## Loading required package: survival
## 
## Attaching package: 'survey'
## The following object is masked from 'package:graphics':
## 
##     dotchart
## Loading required package: lpSolve
## Loading required package: dplyr
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:plyr':
## 
##     arrange, count, desc, failwith, id, mutate, rename, summarise,
##     summarize
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
dist.mah <- mahalanobis.dist(data); dist.mah
##            Mahasiswa1 Mahasiswa2 Mahasiswa3 Mahasiswa4
## Mahasiswa1    0.00000    2.44949    2.44949    2.44949
## Mahasiswa2    2.44949    0.00000    2.44949    2.44949
## Mahasiswa3    2.44949    2.44949    0.00000    2.44949
## Mahasiswa4    2.44949    2.44949    2.44949    0.00000
dist.mah_matrix <- as.matrix(dist.mah);dist.mah_matrix
##            Mahasiswa1 Mahasiswa2 Mahasiswa3 Mahasiswa4
## Mahasiswa1    0.00000    2.44949    2.44949    2.44949
## Mahasiswa2    2.44949    0.00000    2.44949    2.44949
## Mahasiswa3    2.44949    2.44949    0.00000    2.44949
## Mahasiswa4    2.44949    2.44949    2.44949    0.00000

###Interpretasi

Berdasarkan perhitungan dari keempat jarak, didapatkan hasil bahwa mahasiswa 1 dan mahasiswa 2 memiliki nilai yang paling mirip, sedangkan mahasiswa 3 dan mahasiswa 4 memiliki nilai yang paling berbeda. Melalui Chebyshev, didapatkan hasil bahwa kalkulus adalah mata kuliah yang paling membedakan mahasiswa.

Vektor Rata-rata

Pengertian dan Rumus

Matriks Rata-rata

Matriks rata-rata adalah matriks (atau vektor kolom) yang berisi nilai rata-rata dari setiap variabel pada data. Jika \(X\) adalah matriks data berukuran \(m \times n\), maka vektor rata-rata:

\[ \bar{x} = \begin{bmatrix} \bar{x}_1 \\ \bar{x}_2 \\ \vdots \\ \bar{x}_p \end{bmatrix} = \frac{1}{n} \sum_{i=1}^n x_i \]

Matriks Kovarians

Matriks kovarians adalah matriks yang berisi nilai varians tiap variabel pada diagonal utama dan kovarians antar variabel pada elemen-elemen lainnya. Kovarians menunjukkan bagaimana dua variabel berubah bersama-sama.

\[ S = \frac{1}{n-1} \sum_{i=1}^n (x_i - \bar{x})(x_i - \bar{x})^T \]

atau dalam bentuk matriks:\

\[ S = \begin{bmatrix} s_{11} & s_{12} & \cdots & s_{1p} \\ s_{21} & s_{22} & \cdots & s_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ s_{p1} & s_{p2} & \cdots & s_{pp} \end{bmatrix} \]

Matriks Korelasi

Matriks korelasi adalah matriks yang berisi nilai korelasi antar variabel dengan nilainya berada di antara (-1) sampai 1 yang menunjukkan kekuatan dan arah hubungan antar variabel. $$ R = D  ^{-1} SD ^{-1}\ dengan D = (, , , ).

\atau secara elemen:\

r_{ij} = $$

Matriks Standardisasi

Matriks standardisasi adalah matriks yang digunakan untuk menyusun data agar setiap variabel memiliki skala yang sama, biasanya dengan cara membagi data dengan akar variansnya. Untuk data \(X\), matriks data terstandardisasi \(Z\):

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

dengan \(\mathbf{1}\) adalah vektor satuan, dan

\[ D_s = \text{diag}(\sqrt{s_{11}}, \sqrt{s_{22}}, \dots, \sqrt{s_{pp}}) \]

Contoh dan Implementasi

Misalkan, terdapat data jumlah penjualan minuman yang terjual di 6 toko yang berbeda dengan data sebagai berikut :

TehBotol   <- c(120, 150, 100, 90, 130, 160)
KopiABC <- c(80,  95,  110, 85,  100, 120)
JusBuavita    <- c(60,  75,  70,  65,  85,  95)

minuman <- as.matrix(cbind(TehBotol, KopiABC, JusBuavita)); minuman
##      TehBotol KopiABC JusBuavita
## [1,]      120      80         60
## [2,]      150      95         75
## [3,]      100     110         70
## [4,]       90      85         65
## [5,]      130     100         85
## [6,]      160     120         95
rownames(minuman) <- paste("Toko", 1:6, sep="")

Matriks Rata-Rata

vecMeans = as.matrix(colMeans(minuman)); vecMeans
##                 [,1]
## TehBotol   125.00000
## KopiABC     98.33333
## JusBuavita  75.00000
vecRata = matrix(c(mean(TehBotol), mean(KopiABC), mean(JusBuavita)), nrow=3, ncol=1); vecRata
##           [,1]
## [1,] 125.00000
## [2,]  98.33333
## [3,]  75.00000

Matriks Kovarians

varkov = cov(minuman); varkov
##            TehBotol  KopiABC JusBuavita
## TehBotol        750 190.0000        260
## KopiABC         190 226.6667        160
## JusBuavita      260 160.0000        170

Matriks Korelasi

korel = cor(minuman); korel
##             TehBotol   KopiABC JusBuavita
## TehBotol   1.0000000 0.4608177  0.7281456
## KopiABC    0.4608177 1.0000000  0.8150827
## JusBuavita 0.7281456 0.8150827  1.0000000

Matriks Standardisasi (akar dari variansi masing-masing variabel)

n = nrow(minuman); n
## [1] 6
u = matrix(1,n,1); u
##      [,1]
## [1,]    1
## [2,]    1
## [3,]    1
## [4,]    1
## [5,]    1
## [6,]    1
xbar = cbind((1/n)*t(u)%*%minuman); xbar
##      TehBotol  KopiABC JusBuavita
## [1,]      125 98.33333         75
D = minuman - u %*% xbar; D
##       TehBotol    KopiABC JusBuavita
## Toko1       -5 -18.333333        -15
## Toko2       25  -3.333333          0
## Toko3      -25  11.666667         -5
## Toko4      -35 -13.333333        -10
## Toko5        5   1.666667         10
## Toko6       35  21.666667         20
S = (1/(n-1))*t(D)%*%D; S
##            TehBotol  KopiABC JusBuavita
## TehBotol        750 190.0000        260
## KopiABC         190 226.6667        160
## JusBuavita      260 160.0000        170
Ds = diag(sqrt(diag(S))); Ds
##          [,1]     [,2]    [,3]
## [1,] 27.38613  0.00000  0.0000
## [2,]  0.00000 15.05545  0.0000
## [3,]  0.00000  0.00000 13.0384
R = solve(Ds) %*% S %*% solve(Ds); R
##           [,1]      [,2]      [,3]
## [1,] 1.0000000 0.4608177 0.7281456
## [2,] 0.4608177 1.0000000 0.8150827
## [3,] 0.7281456 0.8150827 1.0000000

###Interpretasi

Berdasarkan perhitungan yang telah dilakukan, didapatkan hasil bahwa Teh Botol merupakan produk minuman yang paling laris, sedangkan Jus Buavita merupakan produk minuman yang paling sedikit terjual. Toko 6 merupakan toko dengan penjualan terbanyak, sedangkan toko 4 merupakan toko dengan penjualan terendah. Penjualan minuman produk Kopi ABC dan Jus Buavita memiliki pola penjualan yang paling mirip.