Operasi matriks digunakan untuk memanipulasi dan menganalisis data multivariat. Beberapa operasi dasar: penjumlahan, pengurangan, perkalian matriks, perkalian skalar, transpose, invers, dan determinan.
# Input data matriks
X <- matrix(c(6.5,8.2,7.9,
5.4,7.0,6.7,
8.1,6.9,9.2), nrow=3, ncol=3)
Y <- matrix(c(7.3,6.8,8.5,
8.9,7.6,6.1,
9.4,8.0,7.2), nrow=3, ncol=3, byrow=TRUE)
# Penjumlahan & Pengurangan
X + Y
## [,1] [,2] [,3]
## [1,] 13.8 12.2 16.6
## [2,] 17.1 14.6 13.0
## [3,] 17.3 14.7 16.4
X - Y
## [,1] [,2] [,3]
## [1,] -0.8 -1.4 -0.4
## [2,] -0.7 -0.6 0.8
## [3,] -1.5 -1.3 2.0
Y - X
## [,1] [,2] [,3]
## [1,] 0.8 1.4 0.4
## [2,] 0.7 0.6 -0.8
## [3,] 1.5 1.3 -2.0
# Perkalian Matriks & Elemen
X %*% Y
## [,1] [,2] [,3]
## [1,] 171.65 150.04 146.51
## [2,] 187.02 164.16 162.08
## [3,] 203.78 178.24 174.26
Y %*% X
## [,1] [,2] [,3]
## [1,] 170.36 143.97 184.25
## [2,] 168.36 142.13 180.65
## [3,] 183.58 155.00 197.58
X * Y
## [,1] [,2] [,3]
## [1,] 47.45 36.72 68.85
## [2,] 72.98 53.20 42.09
## [3,] 74.26 53.60 66.24
2 * X
## [,1] [,2] [,3]
## [1,] 13.0 10.8 16.2
## [2,] 16.4 14.0 13.8
## [3,] 15.8 13.4 18.4
# Transpose, Invers, Determinan
t(X)
## [,1] [,2] [,3]
## [1,] 6.5 8.2 7.9
## [2,] 5.4 7.0 6.7
## [3,] 8.1 6.9 9.2
solve(X)
## [,1] [,2] [,3]
## [1,] 8.3848639 2.118136 -8.9709275
## [2,] -9.6585141 -1.933549 9.9538533
## [3,] -0.1661283 -0.410706 0.5629903
det(X)
## [1] 2.167
Interpretasi:
- Penjumlahan dan pengurangan dilakukan elemen demi elemen.
- %*% digunakan untuk perkalian matriks.
- solve() mencari invers (hanya untuk matriks persegi
nonsingular).
- det() menghitung determinan, berguna untuk mengetahui
sifat matriks (mis. singular/tidak).
A <- matrix(21:40, nrow=4, ncol=5)
A[,2] # Kolom ke-2
## [1] 25 26 27 28
A[3,] # Baris ke-3
## [1] 23 27 31 35 39
A[3,2] # Elemen (3,2)
## [1] 27
A[c(1,3),2]# Elemen (1,2) dan (3,2)
## [1] 25 27
A[,1:3] # Kolom 1-3
## [,1] [,2] [,3]
## [1,] 21 25 29
## [2,] 22 26 30
## [3,] 23 27 31
## [4,] 24 28 32
A[2:4,] # Baris 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
Interpretasi: Pemanggilan komponen matriks mempermudah ekstraksi data tertentu.
eigX <- eigen(X)
eigX$values # Eigen values
## [1] 22.0140019 0.4816027 0.2043953
eigX$vectors # Eigen vectors
## [,1] [,2] [,3]
## [1,] 0.5268942 0.5218595 0.61121520
## [2,] 0.5752916 -0.8360039 -0.78978922
## [3,] 0.6256373 0.1695881 0.05146821
SVD memecah matriks A menjadi tiga matriks U, Σ, dan Vᵀ. Berguna dalam reduksi dimensi dan kompresi data.
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 # Singular values
## [1] 16.07076 7.41936 3.11187
svd_result$u # U matrix
## [,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
svd_result$v # V matrix
## [,1] [,2] [,3]
## [1,] -0.5341591 -0.17494276 -0.8270847
## [2,] 0.1490928 -0.98251336 0.1115295
## [3,] -0.8321330 -0.06373793 0.5509011
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.4.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.4.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
set.seed(321)
ss <- sample(1:50, 15)
df <- USArrests[ss, ]
df.scaled <- scale(df)
# Euclidean
dist.eucl <- dist(df.scaled, method = "euclidean")
fviz_dist(dist.eucl)
# Chebyshev
dist.cheb <- dist(df.scaled, method = "maximum")
fviz_dist(dist.cheb)
# Manhattan
dist.man <- dist(df.scaled, method = "manhattan")
fviz_dist(dist.man)
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 <- as.matrix(cbind(BB,PM,RTB))
# Matriks Rata-Rata
vecMeans <- as.matrix(colMeans(lizard))
vecMeans
## [,1]
## BB 9.05
## PM 67.60
## RTB 128.00
# Kovarians dan Korelasi
varkov <- cov(lizard)
korel <- cor(lizard)
varkov
## BB PM RTB
## BB 10.98056 31.80000 54.96667
## PM 31.80000 94.04444 160.22222
## RTB 54.96667 160.22222 300.66667
korel
## 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: Matriks rata-rata, kovarians, dan korelasi digunakan untuk memahami penyebaran dan hubungan antar variabel.