Matriks adalah kumpulan angka yang disusun dalam bentuk persegi
panjang dengan baris dan kolom. Jika matriks mempunyai \(m\) baris dan \(n\) kolom, maka disebut matriks berordo
\(m \times n\). Berikut adalah bentuk
umum matriks: \[
\mathbf{A} = \begin{bmatrix}
a_{11} & a_{12} & \cdots & a_{1n} \\
a_{21} & a_{22} & \cdots & a_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m1} & a_{m2} & \cdots & a_{mn}
\end{bmatrix}
\] Contoh :
\[
\mathbf{A} = \begin{bmatrix}
3 & 2 & 1 \\
0 & -4 & 5 \\
7 & 6 & 8 \\
\end{bmatrix}
\]
Pada software R, dalam menginput matriks dapat dilakukan dengan menggunakan syntax-syntax berikut.
# Membuat matriks dengan cara langsung
A <- matrix(c(3, 2, 1,
0, -4, 5,
7, 6, 8), nrow = 3, ncol = 3, byrow = TRUE); A
## [,1] [,2] [,3]
## [1,] 3 2 1
## [2,] 0 -4 5
## [3,] 7 6 8
# Membuat matriks dengan cara byrow
B <- matrix(c(5, 7, 1,
2, 0, 4,
3, 6, 8), nrow = 3, ncol = 3, byrow = TRUE); B
## [,1] [,2] [,3]
## [1,] 5 7 1
## [2,] 2 0 4
## [3,] 3 6 8
# Membuat matriks dengan vektor panjang
X <- matrix(11:30, nrow = 4, ncol = 5) ; X
## [,1] [,2] [,3] [,4] [,5]
## [1,] 11 15 19 23 27
## [2,] 12 16 20 24 28
## [3,] 13 17 21 25 29
## [4,] 14 18 22 26 30
# Membuat matriks dengan nama baris dan kolom
elemen <- c(10, 15, 20, 25)
kolom_nama <- c("C1", "C2")
baris_nama <- c("R1", "R2")
Y <- matrix(elemen, nrow=2, ncol=2,
byrow=TRUE, dimnames=list(baris_nama,
kolom_nama)) ; Y
## C1 C2
## R1 10 15
## R2 20 25
Dua matriks hanya bisa dijumlahkan jika ukurannya (ordo) sama. Operasi dilakukan dengan menjumlahkan elemen yang posisinya sesuai.
Rumus: \[ \boldsymbol{C} = \boldsymbol{A} + \boldsymbol{B} = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} + \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix} = \begin{bmatrix} a_{11}+b_{11} & a_{12}+b_{12} \\ a_{21}+b_{21} & a_{22}+b_{22} \end{bmatrix} \]
Berikut cara menjumlahan matriks di software R:
A + B
## [,1] [,2] [,3]
## [1,] 8 9 2
## [2,] 2 -4 9
## [3,] 10 12 16
Pengurangan matriks sama dengan penjumlahan, yang mana dapat dilakukan jika matriks tersebut memiliki ordo yang sama.
Rumus: \[ \boldsymbol{A} - \boldsymbol{B} = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} - \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix} = \begin{bmatrix} a_{11}-b_{11} & a_{12}-b_{12} \\ a_{21}-b_{21} & a_{22}-b_{22} \end{bmatrix} \]
Berikut cara pengurangan matriks di software R:
A - B
## [,1] [,2] [,3]
## [1,] -2 -5 0
## [2,] -2 -4 1
## [3,] 4 0 0
Perkalian matriks adalah operasi biner yang menghasilkan sebuah matriks dari dua matriks tertentu. Operasi ini memiliki aturan khusus yang membedakannya dari perkalian biasa. Secara umum, perkalian matriks dalam R terbagi menjadi tiga:
Perkalian matriks dilakukan dengan dot product baris dan
kolom.
Jika \(A\) berukuran \(m \times n\) dan \(B\) berukuran \(n
\times p\), maka hasil \(C = A \times
B\) berukuran \(m \times
p\).
Rumus umum: \[ c_{ij} = \sum_{k=1}^{n} a_{ik} \cdot b_{kj} \]
Contoh (2×2): \[ \begin{bmatrix} a & b\\ c & d \end{bmatrix} \begin{bmatrix} e & f\\ g & h \end{bmatrix} = \begin{bmatrix} ae+bg & af+bh\\ ce+dg & cf+dh \end{bmatrix} \]
Syntax R:
A %*% B
## [,1] [,2] [,3]
## [1,] 22 27 19
## [2,] 7 30 24
## [3,] 71 97 95
Setiap elemen pada posisi \((i,j)\)
dikalikan dengan elemen pada posisi yang sama di matriks lain.
Kedua matriks harus punya ordo yang sama.
Rumus: \[ \begin{bmatrix} a & b\\ c & d \end{bmatrix} \circ \begin{bmatrix} e & f\\ g & h \end{bmatrix} = \begin{bmatrix} ae & bf\\ cg & dh \end{bmatrix} \]
Syntax R:
A * B
## [,1] [,2] [,3]
## [1,] 15 14 1
## [2,] 0 0 20
## [3,] 21 36 64
Jika matriks \(A\) dikalikan konstanta \(k\), maka setiap elemen dikalikan \(k\).
Rumus: \[ k \cdot \begin{bmatrix} a & b\\ c & d \end{bmatrix} = \begin{bmatrix} ka & kb\\ kc & kd \end{bmatrix} \]
Syntax R:
3 * A # contoh k = 3
## [,1] [,2] [,3]
## [1,] 9 6 3
## [2,] 0 -12 15
## [3,] 21 18 24
Matriks transpose merupakan matriks yang diperoleh dengan menukar setiap baris sebuah matriks menjadi kolom, atau sebaliknya. Biasanya ditulis \(A^T\).
Rumus: \[ \boldsymbol{A}^T = \begin{bmatrix} a & c\\ b & d \end{bmatrix} \quad\text{jika }\; \boldsymbol{A}=\begin{bmatrix} a & b\\ c & d \end{bmatrix} \]
Contoh (R):
transA <- t(A); transA
## [,1] [,2] [,3]
## [1,] 3 0 7
## [2,] 2 -4 6
## [3,] 1 5 8
transB <- t(B); transB
## [,1] [,2] [,3]
## [1,] 5 2 3
## [2,] 7 0 6
## [3,] 1 4 8
Matriks invers adalah matriks kebalikan dari sebuah matriks persegi
\(\boldsymbol{A}\).
Jika \(\boldsymbol{A}\) memiliki
invers, maka berlaku:
\[ \boldsymbol{A} \cdot \boldsymbol{A}^{-1} = \boldsymbol{A}^{-1} \cdot \boldsymbol{A} = \boldsymbol{I} \]
dengan \(\boldsymbol{I}\) adalah matriks identitas.
Syarat:
- \(\boldsymbol{A}\) harus matriks
persegi (\(n \times n\))
- Determinan \(\det(\boldsymbol{A}) \neq
0\)
Rumus Invers (2×2):
Jika
\[
\boldsymbol{A} =
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix},
\] maka inversnya adalah:
\[ \boldsymbol{A}^{-1} = \frac{1}{ad-bc} \begin{bmatrix} d & -b \\ -c & a \end{bmatrix} \]
Contoh (R):
# Invers matriks
inv_A <- solve(A); inv_A
## [,1] [,2] [,3]
## [1,] 0.7045455 0.11363636 -0.1590909
## [2,] -0.3977273 -0.19318182 0.1704545
## [3,] -0.3181818 0.04545455 0.1363636
inv_B <- solve(B); inv_B
## [,1] [,2] [,3]
## [1,] 0.17647059 0.36764706 -0.2058824
## [2,] 0.02941176 -0.27205882 0.1323529
## [3,] -0.08823529 0.06617647 0.1029412
Determinan matriks adalah sebuah nilai skalar yang
dihitung dari elemen-elemen matriks persegi (n × n). Nilai determinan
digunakan untuk:
- Mengecek apakah matriks dapat dibalik (\(\det(A) \neq 0\))
- Menentukan sifat matriks (misalnya dalam sistem persamaan linear,
eigenvalue, dll.)
Rumus Determinan (2×2):
Jika
\[
\boldsymbol{A} =
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix},
\]
maka
\[
\det(\boldsymbol{A}) = ad - bc
\]
Rumus Determinan (3×3):
Jika
\[
\boldsymbol{A} =
\begin{bmatrix}
a & b & c \\
d & e & f \\
g & h & i
\end{bmatrix},
\]
maka
\[
\det(\boldsymbol{A}) =
a(ei - fh) - b(di - fg) + c(dh - eg)
\]
Contoh Manual (2×2):
Misalkan
\[
\boldsymbol{A} =
\begin{bmatrix}
3 & 2 \\
1 & 4
\end{bmatrix}
\]
\[ \det(\boldsymbol{A}) = (3)(4) - (2)(1) = 12 - 2 = 10 \]
Contoh (R):
# Determinan matriks
det(A)
## [1] -88
det(B)
## [1] -136
Dalam R, sebuah matriks \(\boldsymbol{A}\) diakses menggunakan indeks baris dan indeks kolom dengan format:
\[ A[\text{baris}, \text{kolom}] \]
Jika baris dikosongkan, maka semua baris
dipilih.
\[
A[,j] \quad \Rightarrow \quad \text{kolom ke-}j
\]
Jika kolom dikosongkan, maka semua kolom
dipilih.
\[
A[i,] \quad \Rightarrow \quad \text{baris ke-}i
\]
Jika baris dan kolom diisi angka tertentu, maka
elemen tunggal dipilih.
\[
A[i,j] \quad \Rightarrow \quad \text{elemen pada baris ke-}i \text{ dan
kolom ke-}j
\]
Kita juga bisa memanggil beberapa baris/kolom sekaligus dengan
vektor indeks atau rentang
indeks.
\[
A[c(i_1,i_2),j] \quad \Rightarrow \quad \text{elemen pada baris } i_1,
i_2 \text{ di kolom } j
\]
\[
A[i:p,] \quad \Rightarrow \quad \text{semua baris dari } i \text{ sampai
} p
\]
Contoh Matriks Misalkan:
\[ \boldsymbol{X} = \begin{bmatrix} 2 & 3 & -1 \\ 1 & -2 & 0 \\ 2 & 1 & 2 \end{bmatrix} \]
X <- matrix(c(2, 3, -1,
1, -2, 0,
2, 1, 2), nrow = 3, ncol = 3, byrow = TRUE); X
## [,1] [,2] [,3]
## [1,] 2 3 -1
## [2,] 1 -2 0
## [3,] 2 1 2
\[ X[,2] = \begin{bmatrix} 3 \\ -2 \\ 1 \end{bmatrix} \]
X[,2]
## [1] 3 -2 1
\[ X[3,] = \begin{bmatrix} 2 & 1 & 2 \end{bmatrix} \]
X[3,]
## [1] 2 1 2
\[ X[3,2] = 1 \]
X[3,2]
## [1] 1
\[ \{X[1,2], X[3,2]\} = \{3,1\} \]
X[c(1,3),2]
## [1] 3 1
\[ X[,1:3] = \begin{bmatrix} 2 & 3 & -1 \\ 1 & -2 & 0 \\ 2 & 1 & 2 \end{bmatrix} \]
X[,1:3]
## [,1] [,2] [,3]
## [1,] 2 3 -1
## [2,] 1 -2 0
## [3,] 2 1 2
\[ X[2:3,] = \begin{bmatrix} 1 & -2 & 0 \\ 2 & 1 & 2 \end{bmatrix} \]
X[2:3,]
## [,1] [,2] [,3]
## [1,] 1 -2 0
## [2,] 2 1 2
Nilai eigen (eigenvalue) dan vektor eigen (eigenvector) adalah konsep fundamental dalam aljabar linear yang menjelaskan bagaimana sebuah transformasi linear bekerja. Secara sederhana, ketika sebuah matriks dikalikan dengan vektor eigen-nya, hasilnya adalah vektor dengan arah yang sama tetapi panjangnya berubah (diperpanjang atau diperkecil), tanpa mengubah arah.
Eigen Value menunjukkan jumlah variasi (informasi) yang dapat dijelaskan oleh satu komponen. Sedangkan Eigen Vector menunjukkan jumlah variasi (informasi) yang dijelaskan dari satu atau beberapa komponen lainnya.
Eigen Value dan eigen vector ini sangat berguna dalam analisis data multivariat misalnya dalam Principal Komponen Analysis, Factor Analysis, dll.
Misalkan \(\mathbf{A}\) adalah matriks persegi berukuran \(n \times n\). Vektor tak nol \(\mathbf{x} \in \mathbb{R}^n\) dikatakan vektor eigen untuk \(\mathbf{A}\) jika terdapat skalar \(\lambda\) sedemikian sehingga: \[ \mathbf{A}\mathbf{x} = \lambda \mathbf{x} \]
Di sini: - \(\lambda\) disebut eigenvalue (nilai eigen), - \(\mathbf{x}\) disebut eigenvector (vektor eigen) yang bersesuaian dengan \(\lambda\).
\[ \ Ax = λx\]
Eigenvalue dicari melalui persamaan karakteristik berikut:
\[ \det(\mathbf{A} - \lambda \mathbf{I}) = 0 \]
dengan \(\mathbf{I}\) matriks identitas. Persamaan ini menghasilkan polinomial berderajat \(n\) dalam \(\lambda\), dan akarnya adalah eigenvalue.
Contoh manual (matriks 2x2):
Misalkan: \[ \mathbf{A} = \begin{bmatrix} 2 & 1 \\ 1 & 2 \end{bmatrix} \]
Bentuk persamaan karakteristik: \[ \det(\mathbf{A} - \lambda \mathbf{I}) = \det \begin{bmatrix} 2-\lambda & 1 \\ 1 & 2-\lambda \end{bmatrix} = 0 \]
Hitung determinan: \[ (2-\lambda)(2-\lambda) - (1)(1) = \lambda^2 - 4\lambda + 3 = 0 \]
Diperoleh: \[ \lambda_1 = 3, \quad \lambda_2 = 1 \]
Sehingga eigenvalue matriks \(A\) adalah 3 dan 1.
Implementasi di R:
# Hitung eigenvalue & eigenvector
eigA = eigen(A); eigA
## eigen() decomposition
## $values
## [1] 11.341618 -5.702302 1.360685
##
## $vectors
## [,1] [,2] [,3]
## [1,] -0.1850242 0.1776538 -0.7876126
## [2,] -0.3045191 -0.9315817 0.4202760
## [3,] -0.9343630 0.3171667 0.4505934
eigB = eigen(B); eigB
## eigen() decomposition
## $values
## [1] 12.162902 3.788523 -2.951425
##
## $vectors
## [,1] [,2] [,3]
## [1,] -0.4518863 -0.86066364 0.6251497
## [2,] -0.3448715 0.07705199 -0.7438756
## [3,] -0.8227165 0.50331013 0.2362984
# Eigenvalue
eigvalA = eigA$values; eigvalA
## [1] 11.341618 -5.702302 1.360685
eigvalB = eigB$values; eigvalB
## [1] 12.162902 3.788523 -2.951425
Setelah nilai eigen \(\lambda\) diperoleh, maka eigenvector didapat dengan menyelesaikan sistem linear:
\[ (\mathbf{A} - \lambda \mathbf{I}) \mathbf{v} = 0 \]
Contoh manual (lanjutan dari contoh pada eigen value):
Maka \(v_1 = v_2\), sehingga salah satu eigenvector adalah: \[ \mathbf{v}_1 = \begin{bmatrix} 1 \\ 1 \end{bmatrix} \]
Maka \(v_1 = -v_2\), sehingga salah satu eigenvector adalah: \[ \mathbf{v}_2 = \begin{bmatrix} 1 \\ -1 \end{bmatrix} \]
Implementasi di R:
# Eigenvector
eigvecA = eigA$vectors; eigvecA
## [,1] [,2] [,3]
## [1,] -0.1850242 0.1776538 -0.7876126
## [2,] -0.3045191 -0.9315817 0.4202760
## [3,] -0.9343630 0.3171667 0.4505934
eigvecB = eigB$vectors; eigvecB
## [,1] [,2] [,3]
## [1,] -0.4518863 -0.86066364 0.6251497
## [2,] -0.3448715 0.07705199 -0.7438756
## [3,] -0.8227165 0.50331013 0.2362984
Secara matematis:
Jika kita bayangkan matriks \(\mathbf{A}\) sebagai suatu transformasi
(misalnya rotasi, skala, atau regangan pada bidang), maka: - Arah yang
ditunjuk oleh eigenvector tetap sama setelah transformasi.
- Besar perubahan panjang pada arah tersebut ditentukan oleh nilai eigen
yang sesuai.
Konsep eigenvalue dan eigenvector muncul di berbagai bidang, misalnya:
Kesimpulan interpretasi:
- Eigenvalue besar → arah eigenvector yang bersesuaian
menjelaskan struktur dominan dari transformasi atau data.
- Eigenvalue kecil → arah eigenvector yang bersesuaian
kurang berpengaruh atau hanya menjelaskan variasi kecil.
- Dengan kata lain, nilai eigen = “besarnya pengaruh”,
sedangkan vektor eigen = “arah pengaruh”.
Singular Value Decomposition (SVD) adalah salah satu
faktorisasi matriks yang sangat penting dalam aljabar linear.
Setiap matriks \(\mathbf{A}\) berukuran
\(m \times n\) dapat diuraikan menjadi
tiga matriks:
\[ \mathbf{A} = \mathbf{U} \mathbf{D} \mathbf{V}^T \]
dengan:
- \(\mathbf{U}\) : matriks ortogonal
berukuran \(m \times m\) (kolomnya
disebut left singular vectors)
- \(\mathbf{D}\) : matriks diagonal
berukuran \(m \times n\) yang berisi
singular values (akar dari eigenvalue \(\mathbf{A}^T \mathbf{A}\))
- \(\mathbf{V}\) : matriks ortogonal
berukuran \(n \times n\) (kolomnya
disebut right singular vectors)
Intinya:
- Singular values (\(\sigma_i\))
mengukur “kekuatan” atau “kontribusi” masing-masing arah dalam
matriks.
- Vektor singular (\(U\) dan \(V\)) menunjukkan arah utama transformasi
data.
Contoh Perhitungan Manual Misalkan: \[ \mathbf{A} = \begin{bmatrix} 5 & -3 & 6 \\ 2 & -4 & 8 \\ -2 & 5 & -1 \\ 7 & 3 & 9 \end{bmatrix} \]
Implementasi SVD di R:
# Membuat matriks Y
Y <- matrix(c(5,-3,6,
2,-4,8,
-2,5,-1,
7,3,9),
nrow=4, ncol=3, byrow=TRUE)
Y
## [,1] [,2] [,3]
## [1,] 5 -3 6
## [2,] 2 -4 8
## [3,] -2 5 -1
## [4,] 7 3 9
# Melakukan dekomposisi SVD
svd_result <- svd(Y)
# Singular values
singular_value <- svd_result$d ; singular_value
## [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
Singular values (\(\sigma_i\)):
Menunjukkan seberapa besar kontribusi tiap dimensi dalam menjelaskan
variasi data. Jika satu singular value jauh lebih besar daripada yang
lain → sebagian besar informasi ada pada dimensi tersebut.
Matriks \(U\)
(left singular vectors):
Menunjukkan basis ortonormal untuk ruang kolom \(\mathbf{A}\). Dalam konteks data, ini bisa
dipandang sebagai representasi data pada dimensi baru.
Matriks \(V\)
(right singular vectors):
Menunjukkan basis ortonormal untuk ruang baris \(\mathbf{A}\).
Kesimpulan:
SVD adalah alat yang sangat kuat untuk reduksi dimensi,
kompresi, dan ekstraksi pola. Singular values memberi tahu kita
dimensi mana yang penting, sementara matriks \(U\) dan \(V\) menjelaskan arah utama dari struktur
data.
Matriks Jarak adalah matriks persegi yang berisi informasi tentang jarak pasangan antara setiap pasangan elemen dalam suatu himpunan. Nilai pada baris i dan kolom j menunjukkan jarak dari elemen ke-i ke elemen ke-j.
Dalam analisis data, kita sering perlu mengukur kemiripan
atau perbedaan antar objek. Salah satu cara adalah dengan
menghitung jarak antar vektor (data).
Jika terdapat dua vektor dalam ruang \(\mathbb{R}^n\):
\[ \mathbf{x} = (x_1, x_2, \dots, x_n), \quad \mathbf{y} = (y_1, y_2, \dots, y_n) \]
Maka distance metric \(d(\mathbf{x},\mathbf{y})\) digunakan untuk
mengukur jarak antara keduanya.
Kumpulan semua jarak antar pasangan data dapat disusun menjadi
matriks jarak.
Sebelum masuk ke matriks jarak, kita akan membuat terlebih dahulu dataset yang akan digunakan. Dalam contoh ini kita akan menggunakan syntax untuk melakukan random sampling.
library(factoextra) # Menggunakan library untuk visualisasi konsep jarak
set.seed(321) #salah satu metode untuk random sampling, angkanya bisa diubah sesuai keinginan
ss <- sample(1:50, 15) # ambil 15 data secara acak dari 1-50 observasi
df <- USArrests[ss, ]
df.scaled <- scale(df); df.scaled #standarisasi dilakukan jika satuan data frame berbeda-beda
## Murder Assault UrbanPop Rape
## Wyoming -0.3721741 -0.02296746 -0.3418930 -0.62039386
## Illinois 0.4221896 1.02244775 1.2520675 0.62633064
## Mississippi 1.6799322 1.14124493 -1.4507350 -0.39776448
## Kansas -0.5486994 -0.56943449 0.0739228 -0.26418686
## New York 0.5766492 1.08184634 1.4599754 0.93801176
## Kentucky 0.2677300 -0.64071280 -0.8963140 -0.51650015
## Oklahoma -0.4163054 -0.14176464 0.2125281 0.03265231
## Hawaii -0.7031590 -1.38913505 1.2520675 0.06233622
## Missouri 0.1132704 0.17898775 0.3511333 1.24969289
## New Mexico 0.6428462 1.45011760 0.3511333 1.82852926
## Louisiana 1.5254725 1.02244775 0.0739228 0.35917539
## South Dakota -1.0341439 -0.91394632 -1.3814324 -1.03596869
## Iowa -1.3871944 -1.27033787 -0.5498008 -1.25859806
## North Dakota -1.6961136 -1.40101477 -1.4507350 -1.85227639
## Texas 0.9296998 0.45222127 1.0441596 0.84896001
## attr(,"scaled:center")
## Murder Assault UrbanPop Rape
## 8.486667 162.933333 64.933333 19.780000
## attr(,"scaled:scale")
## Murder Assault UrbanPop Rape
## 4.531929 84.177081 14.429467 6.737655
Jarak Euclidean merupakan jarak garis lurus terpendek di antara dua titikdalam ruang Euclidean. Jarak Euclidean memiliki rumus sebagai berikut : \[ \ d_{ij} = \sqrt{(x_i-x_j)^t(x_i-x_j)}\]
Contoh Matematis Misalkan \(\mathbf{x} = (2,3)\) dan \(\mathbf{y} = (5,7)\).
\[ d_{E}(\mathbf{x},\mathbf{y}) = \sqrt{(2-5)^2 + (3-7)^2} = \sqrt{(-3)^2 + (-4)^2} = \sqrt{9+16} = \sqrt{25} = 5 \]
Implementasi di R: Menghitung jarak Euclidean
# Menghitung jarak Euclidean antar observasi
dist.eucl <- dist(df.scaled, method = "euclidean"); dist.eucl
## Wyoming Illinois Mississippi Kansas New York Kentucky
## Illinois 2.4122476
## Mississippi 2.6164146 3.1543527
## Kansas 0.7934567 2.3786048 3.1993198
## New York 2.7921742 0.4095812 3.3878156 2.7128511
## Kentucky 1.0532156 2.9515362 2.3433244 1.2948587 3.2757206
## Oklahoma 0.8659748 1.8685718 2.9986711 0.5547563 2.2043102 1.4993175
## Hawaii 2.2322175 2.7203365 4.4270510 1.4800030 2.9246694 2.5403456
## Missouri 2.0625111 1.4167282 3.0563398 1.8349434 1.5351057 2.3176129
## New Mexico 3.1109091 1.5775154 3.0617092 3.1551035 1.4705638 3.4011133
## Louisiana 2.4137967 1.6360410 1.7133330 2.6879097 1.7776353 2.4609320
## South Dakota 1.5765126 3.9457686 3.4644086 1.7515852 4.3067435 1.5082173
## Iowa 1.7426214 3.9154083 4.0958166 1.6038155 4.2724405 1.9508929
## North Dakota 2.5296038 4.8794481 4.4694938 2.6181473 5.2524274 2.5546862
## Texas 2.4496576 0.8218968 2.9692463 2.3259192 0.8377979 2.6949264
## Oklahoma Hawaii Missouri New Mexico Louisiana South Dakota
## Illinois
## Mississippi
## Kansas
## New York
## Kentucky
## Oklahoma
## Hawaii 1.6491638
## Missouri 1.3724911 2.3123720
## New Mexico 2.6268378 3.7154012 1.4937447
## Louisiana 2.2916633 3.5012381 1.8909275 1.7882330
## South Dakota 2.1588538 2.9115203 3.2767510 4.4281177 3.7902169
## Iowa 2.1130016 2.3395756 3.3845451 4.6758935 4.0922753 0.9964108
## North Dakota 3.0891779 3.4578871 4.3173165 5.5131433 4.8442635 1.1604313
## Texas 1.8768374 2.5920693 1.1756214 1.5867966 1.3643137 3.8935265
## Iowa North Dakota
## Illinois
## Mississippi
## Kansas
## New York
## Kentucky
## Oklahoma
## Hawaii
## Missouri
## New Mexico
## Louisiana
## South Dakota
## Iowa
## North Dakota 1.1298867
## Texas 3.9137858 4.8837032
dist() menghasilkan matrix
jarak antar semua pasangan baris dalam dataset.method = "euclidean" memastikan jarak
dihitung dengan rumus Euclidean.Hasil yang muncul adalah lower triangular matrix karena jarak antar titik bersifat simetris (\(d(x,y) = d(y,x)\)).
Visualisasi Jarak
# Visualisasi matriks jarak
fviz_dist(dist.eucl)
fviz_dist() dari package factoextra
menampilkan heatmap jarak antar observasi.Kesimpulan:
Jarak Euclidean adalah metrik paling umum untuk mengukur kemiripan antar
objek. Mudah dipahami karena sesuai intuisi jarak lurus dalam ruang
nyata, tetapi harus hati-hati terhadap skala data dan outlier.
Jarak Chebyshev adalah jarak yang ditentukan oleh
selisih terbesar di antara koordinat dua titik.
Dengan kata lain, ia mengukur sejauh mana perbedaan maksimum
antar dimensi.
Jarak Chebyshev memiliki rumus sebagai berikut : \[\ {d_{ij} = max(\lvert x_{li}-x_{lj} \rvert)}\]
Contoh Matematis
Misalkan \(\mathbf{x} = (2,3)\) dan \(\mathbf{y} = (5,7)\).
\[ d_{C}(\mathbf{x},\mathbf{y}) = \max\{|2-5|, |3-7|\} = \max\{3, 4\} = 4 \]
Implementasi di R:
# Hitung jarak Chebyshev (maximum distance)
dist.cheb <- dist(df.scaled, method = "maximum"); dist.cheb
## Wyoming Illinois Mississippi Kansas New York Kentucky
## Illinois 1.5939604
## Mississippi 2.0521063 2.7028025
## Kansas 0.5464670 1.5918822 2.2286315
## New York 1.8018683 0.3116811 2.9107104 1.6512808
## Kentucky 0.6399041 2.1483815 1.7819577 0.9702368 2.3562894
## Oklahoma 0.6530462 1.1642124 2.0962376 0.4276699 1.2474473 1.1088421
## Hawaii 1.5939604 2.4115828 2.7028025 1.1781447 2.4709814 2.1483815
## Missouri 1.8700867 0.9009342 1.8018683 1.5138797 1.1088421 1.7661930
## New Mexico 2.4489231 1.2021986 2.2262937 2.0927161 1.1088421 2.3450294
## Louisiana 1.8976467 1.1781447 1.5246578 2.0741719 1.3860526 1.6631605
## South Dakota 1.0395394 2.6334999 2.7140760 1.4553552 2.8414078 1.3018739
## Iowa 1.2473704 2.2927856 3.0671266 0.9944112 2.3521842 1.6549244
## North Dakota 1.3780473 2.7028025 3.3760458 1.5880895 2.9107104 1.9638436
## Texas 1.4693539 0.5702265 2.4948946 1.4783991 0.6296251 1.9404736
## Oklahoma Hawaii Missouri New Mexico Louisiana South Dakota
## Illinois
## Mississippi
## Kansas
## New York
## Kentucky
## Oklahoma
## Hawaii 1.2473704
## Missouri 1.2170406 1.5681228
## New Mexico 1.7958770 2.8392526 1.2711298
## Louisiana 1.9417780 2.4115828 1.4122022 1.4693539
## South Dakota 1.5939604 2.6334999 2.2856616 2.8644979 2.5596164
## Iowa 1.2912504 1.8018683 2.5082909 3.0871273 2.9126670 0.8316315
## North Dakota 1.8849287 2.7028025 3.1019693 3.6808057 3.2215862 0.8163077
## Texas 1.3460052 1.8413563 0.8164294 0.9978963 0.9702368 2.4255920
## Iowa North Dakota
## Illinois
## Mississippi
## Kansas
## New York
## Kentucky
## Oklahoma
## Hawaii
## Missouri
## New Mexico
## Louisiana
## South Dakota
## Iowa
## North Dakota 0.9009342
## Texas 2.3168942 2.7012364
Penjelasan:
- dist() = fungsi bawaan R untuk menghitung matriks
jarak.
- df.scaled = data yang sudah
distandardisasi (pakai scale()) supaya
semua variabel punya bobot yang seimbang.
- method = "maximum" → ini instruksi ke R untuk menghitung
Chebyshev distance, yaitu mengambil perbedaan
absolut terbesar antar dimensi untuk tiap pasangan
observasi.
- dist.cheb = hasil berupa matrix jarak
(lower triangular form) antar observasi.
Visualisasi Jarak
fviz_dist(dist.cheb)
Penjelasan:
- fviz_dist() berasal dari library
factoextra.
- Input dist.cheb akan divisualisasikan dalam bentuk
heatmap jarak:
- Warna gelap → jarak lebih kecil (observasi lebih mirip).
- Warna terang → jarak lebih besar (observasi lebih jauh).
Kesimpulan:
Jarak Chebyshev menekankan pada selisih terbesar antar
dimensi. Lebih tepat digunakan jika kita peduli pada perbedaan
maksimum (worst-case scenario) dibandingkan total perbedaan.
Jarak Manhattan (juga disebut Taxicab
Distance atau City Block Distance) adalah jumlah nilai
absolut dari selisih antar koordinat.
Nama “Manhattan” berasal dari cara menghitung jarak di jalan berbentuk
grid seperti kota Manhattan (hanya bisa jalan horizontal/vertikal, tidak
diagonal).
Jarak Manhattan memiliki rumus sebagai berikut :
\[\ {d}_{ij}=\sum_{l=1}^{p} \lvert x_{li}-x_{lj} \rvert\]
Contoh Matematis Misalkan \(\mathbf{x} = (2,3)\) dan \(\mathbf{y} = (5,7)\).
\[ d_{M}(\mathbf{x},\mathbf{y}) = |2-5| + |3-7| = | -3 | + | -4 | = 3 + 4 = 7 \]
Implementasi di R
# Hitung jarak Manhattan
dist.man <- dist(df.scaled, method = "manhattan"); dist.man
## Wyoming Illinois Mississippi Kansas New York Kentucky
## Illinois 4.6804639
## Mississippi 4.5477901 5.1034373
## Kansas 1.4950151 4.6314334 5.5975464
## New York 5.4139111 0.7334472 5.4091682 5.3648806
## Kentucky 1.9159642 5.1088324 3.8673166 2.1102578 5.8422796
## Oklahoma 1.3703957 3.6359252 5.4729270 0.9955082 4.3693724 2.8409781
## Hawaii 3.9738430 4.1009258 8.0763743 2.4788279 4.8343730 4.4465291
## Missouri 3.2505127 2.6766756 5.9782446 3.2014823 2.7867606 3.9878005
## New Mexico 5.6300548 2.7514592 5.3741207 5.5810243 2.4338278 6.0584233
## Louisiana 4.3384469 2.5485829 2.5548545 4.2894164 2.9731109 4.7668154
## South Dakota 3.0080629 7.6885267 5.4767741 3.0570933 8.4219740 2.5796943
## Iowa 3.1085028 7.7889667 7.2404771 3.1575333 8.5224139 3.3731605
## North Dakota 5.0427114 9.7231753 7.3728174 5.0917419 10.4566225 4.6143429
## Texas 4.6324690 1.5082739 5.1808752 4.5834386 1.4875431 5.0608376
## Oklahoma Hawaii Missouri New Mexico Louisiana
## Illinois
## Mississippi
## Kansas
## New York
## Kentucky
## Oklahoma
## Hawaii 2.6034473
## Missouri 2.2059740 4.4728430
## New Mexico 4.5855161 6.8523850 2.3795420
## Louisiana 3.5711187 6.1151982 3.4233902 3.0568606
## South Dakota 4.0526016 4.5379784 6.2585756 8.6381176 7.3465098
## Iowa 4.1530415 3.9256352 6.3590155 8.7385576 7.4469497
## North Dakota 6.0872501 5.6222495 8.2932241 10.6727662 9.3811583
## Texas 3.5879303 4.4687467 2.1834220 2.9573454 2.6260207
## South Dakota Iowa North Dakota
## Illinois
## Mississippi
## Kansas
## New York
## Kentucky
## Oklahoma
## Hawaii
## Missouri
## New Mexico
## Louisiana
## South Dakota
## Iowa 1.7637030
## North Dakota 2.0346485 1.9342086
## Texas 7.6405319 7.7409718 9.6751804
Penjelasan:
- dist() = fungsi bawaan R untuk menghitung matriks
jarak.
- df.scaled = data yang sudah
distandardisasi (pakai scale()) agar semua
variabel punya skala sama.
- method = "manhattan" → ini menginstruksikan R untuk
menghitung jarak Manhattan, yaitu jumlah selisih
absolut antar variabel.
- dist.man = hasilnya berupa matriks jarak
(dalam format segitiga bawah) antar observasi.
Visualisasi Jarak
fviz_dist(dist.man)
Penjelasan:
- fviz_dist() (dari package factoextra)
digunakan untuk menampilkan heatmap jarak.
- Warna gelap → jarak kecil (lebih mirip).
- Warna terang → jarak besar (lebih berbeda).
Kesimpulan:
Jarak Manhattan menghitung jarak dalam jalur grid, lebih sesuai untuk
kondisi nyata ketika pergerakan hanya bisa horizontal atau vertikal.
Cocok digunakan dalam data teks, logistik, dan masalah berdimensi
tinggi.
Jarak Mahalanobis adalah ukuran jarak yang memperhitungkan
distribusi data dan hubungan antar variabel
(kovarians).
- Pada jarak Euclidean, kita hanya menghitung selisih kuadrat antar
dimensi tanpa melihat apakah variabel saling berkorelasi.
- Tapi dalam kenyataan, banyak variabel saling berhubungan. Misalnya:
tinggi dan berat badan → biasanya berkorelasi positif.
Mahalanobis mengatasi hal ini dengan “menormalkan” jarak
menggunakan matriks kovarians.
Artinya, arah dengan varian besar (data menyebar lebar)
akan dianggap lebih “murah” jaraknya, sedangkan arah dengan
varian kecil (data rapat) akan dianggap lebih
“mahal”.
Jarak Mahalanobis memiliki rumus sebagai berikut : \[d_{ij}=\sqrt{\left(\ {y_i}-\ {y_j}\right)^t\ {S^{-1}}\left(\ {y_i}-\ {y_j}\right)}\]
Implementasi di R:
# Load library
library(StatMatch)
## Loading required package: proxy
##
## 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
## 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:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# Hitung jarak Mahalanobis
dist.mah <- mahalanobis.dist(df.scaled); dist.mah
## Wyoming Illinois Mississippi Kansas New York Kentucky
## Wyoming 0.000000 1.7186109 2.820779 1.4195095 1.8695558 2.867847
## Illinois 1.718611 0.0000000 3.658323 2.2905255 0.4722069 3.878642
## Mississippi 2.820779 3.6583235 0.000000 3.2139075 3.6566922 2.544477
## Kansas 1.419510 2.2905255 3.213907 0.0000000 2.1522535 2.048031
## New York 1.869556 0.4722069 3.656692 2.1522535 0.0000000 3.698342
## Kentucky 2.867847 3.8786421 2.544477 2.0480310 3.6983422 0.000000
## Oklahoma 1.146496 1.8980286 3.237573 0.6499978 1.7772007 2.505941
## Hawaii 3.466671 3.6449604 4.722203 2.2108491 3.3748818 2.753554
## Missouri 3.198071 3.6796400 3.956918 2.2592572 3.3618939 2.642756
## New Mexico 3.281318 3.5101406 4.057258 3.1016653 3.2869855 3.870023
## Louisiana 2.284940 2.5550539 1.688058 2.2700723 2.4136664 2.119635
## South Dakota 1.826205 3.3564158 3.087365 1.6274307 3.3404110 2.261154
## Iowa 1.327907 2.6329606 3.559587 1.1128197 2.6839965 2.621704
## North Dakota 1.582582 3.1919907 3.553572 1.9466491 3.3317039 3.040465
## Texas 2.540604 2.4769381 3.093919 1.7462066 2.1399545 2.108949
## Oklahoma Hawaii Missouri New Mexico Louisiana South Dakota
## Wyoming 1.1464956 3.466671 3.198071 3.281318 2.284940 1.826205
## Illinois 1.8980286 3.644960 3.679640 3.510141 2.555054 3.356416
## Mississippi 3.2375727 4.722203 3.956918 4.057258 1.688058 3.087365
## Kansas 0.6499978 2.210849 2.259257 3.101665 2.270072 1.627431
## New York 1.7772007 3.374882 3.361894 3.286985 2.413666 3.340411
## Kentucky 2.5059414 2.753554 2.642756 3.870023 2.119635 2.261154
## Oklahoma 0.0000000 2.705865 2.203038 2.660216 2.350208 1.672866
## Hawaii 2.7058650 0.000000 3.193764 4.645567 3.383255 3.551072
## Missouri 2.2030382 3.193764 0.000000 1.836797 3.256319 2.505784
## New Mexico 2.6602159 4.645567 1.836797 0.000000 3.676879 3.026024
## Louisiana 2.3502077 3.383255 3.256319 3.676879 0.000000 3.021642
## South Dakota 1.6728664 3.551072 2.505784 3.026024 3.021642 0.000000
## Iowa 1.3299426 2.790197 3.145245 3.792086 2.954252 1.518854
## North Dakota 1.9813596 3.780966 3.590548 3.950259 3.434074 1.304743
## Texas 1.9635201 2.082005 2.576037 3.501666 1.527269 3.090805
## Iowa North Dakota Texas
## Wyoming 1.327907 1.582582 2.540604
## Illinois 2.632961 3.191991 2.476938
## Mississippi 3.559587 3.553572 3.093919
## Kansas 1.112820 1.946649 1.746207
## New York 2.683996 3.331704 2.139954
## Kentucky 2.621704 3.040465 2.108949
## Oklahoma 1.329943 1.981360 1.963520
## Hawaii 2.790197 3.780966 2.082005
## Missouri 3.145245 3.590548 2.576037
## New Mexico 3.792086 3.950259 3.501666
## Louisiana 2.954252 3.434074 1.527269
## South Dakota 1.518854 1.304743 3.090805
## Iowa 0.000000 1.045923 2.734770
## North Dakota 1.045923 0.000000 3.563193
## Texas 2.734770 3.563193 0.000000
# Ubah ke bentuk matriks penuh
dist.mah_matrix <- as.matrix(dist.mah); dist.mah_matrix
## Wyoming Illinois Mississippi Kansas New York Kentucky
## Wyoming 0.000000 1.7186109 2.820779 1.4195095 1.8695558 2.867847
## Illinois 1.718611 0.0000000 3.658323 2.2905255 0.4722069 3.878642
## Mississippi 2.820779 3.6583235 0.000000 3.2139075 3.6566922 2.544477
## Kansas 1.419510 2.2905255 3.213907 0.0000000 2.1522535 2.048031
## New York 1.869556 0.4722069 3.656692 2.1522535 0.0000000 3.698342
## Kentucky 2.867847 3.8786421 2.544477 2.0480310 3.6983422 0.000000
## Oklahoma 1.146496 1.8980286 3.237573 0.6499978 1.7772007 2.505941
## Hawaii 3.466671 3.6449604 4.722203 2.2108491 3.3748818 2.753554
## Missouri 3.198071 3.6796400 3.956918 2.2592572 3.3618939 2.642756
## New Mexico 3.281318 3.5101406 4.057258 3.1016653 3.2869855 3.870023
## Louisiana 2.284940 2.5550539 1.688058 2.2700723 2.4136664 2.119635
## South Dakota 1.826205 3.3564158 3.087365 1.6274307 3.3404110 2.261154
## Iowa 1.327907 2.6329606 3.559587 1.1128197 2.6839965 2.621704
## North Dakota 1.582582 3.1919907 3.553572 1.9466491 3.3317039 3.040465
## Texas 2.540604 2.4769381 3.093919 1.7462066 2.1399545 2.108949
## Oklahoma Hawaii Missouri New Mexico Louisiana South Dakota
## Wyoming 1.1464956 3.466671 3.198071 3.281318 2.284940 1.826205
## Illinois 1.8980286 3.644960 3.679640 3.510141 2.555054 3.356416
## Mississippi 3.2375727 4.722203 3.956918 4.057258 1.688058 3.087365
## Kansas 0.6499978 2.210849 2.259257 3.101665 2.270072 1.627431
## New York 1.7772007 3.374882 3.361894 3.286985 2.413666 3.340411
## Kentucky 2.5059414 2.753554 2.642756 3.870023 2.119635 2.261154
## Oklahoma 0.0000000 2.705865 2.203038 2.660216 2.350208 1.672866
## Hawaii 2.7058650 0.000000 3.193764 4.645567 3.383255 3.551072
## Missouri 2.2030382 3.193764 0.000000 1.836797 3.256319 2.505784
## New Mexico 2.6602159 4.645567 1.836797 0.000000 3.676879 3.026024
## Louisiana 2.3502077 3.383255 3.256319 3.676879 0.000000 3.021642
## South Dakota 1.6728664 3.551072 2.505784 3.026024 3.021642 0.000000
## Iowa 1.3299426 2.790197 3.145245 3.792086 2.954252 1.518854
## North Dakota 1.9813596 3.780966 3.590548 3.950259 3.434074 1.304743
## Texas 1.9635201 2.082005 2.576037 3.501666 1.527269 3.090805
## Iowa North Dakota Texas
## Wyoming 1.327907 1.582582 2.540604
## Illinois 2.632961 3.191991 2.476938
## Mississippi 3.559587 3.553572 3.093919
## Kansas 1.112820 1.946649 1.746207
## New York 2.683996 3.331704 2.139954
## Kentucky 2.621704 3.040465 2.108949
## Oklahoma 1.329943 1.981360 1.963520
## Hawaii 2.790197 3.780966 2.082005
## Missouri 3.145245 3.590548 2.576037
## New Mexico 3.792086 3.950259 3.501666
## Louisiana 2.954252 3.434074 1.527269
## South Dakota 1.518854 1.304743 3.090805
## Iowa 0.000000 1.045923 2.734770
## North Dakota 1.045923 0.000000 3.563193
## Texas 2.734770 3.563193 0.000000
Penjelasan:
- mahalanobis.dist(df.scaled) menghitung jarak Mahalanobis
antar baris data dalam df.scaled.
- dist.mah adalah objek jarak (dist object).
- as.matrix(dist.mah) mengubah hasil ke matriks
penuh sehingga lebih mudah dibaca.
Kesimpulan Jarak Mahalanobis adalah ukuran jarak
yang memperhitungkan skala dan korelasi antar variabel,
sehingga lebih akurat untuk data multivariat.
Berbeda dengan Euclidean yang hanya melihat selisih mentah, Mahalanobis
menyesuaikan jarak dengan struktur distribusi data.
Hal ini membuatnya sangat berguna untuk deteksi outlier,
klasifikasi, dan analisis multivariat lainnya.
Jarak Minkowski adalah generalisasi dari beberapa jenis jarak
lain.
Dengan menambahkan parameter \(p\),
Minkowski mencakup:
- \(p = 1\) → Jarak
Manhattan,
- \(p = 2\) → Jarak
Euclidean,
- \(p \to \infty\) → Jarak
Chebyshev.
Dengan demikian, Minkowski adalah rumus umum yang bisa menurunkan berbagai ukuran jarak lain.
Rumus: \[
d_{ij} = \left( \sum_{k=1}^D |x_{ik} - x_{jk}|^p \right)^{\tfrac{1}{p}}
\] - Jika \(p = 1\) maka jarak
Manhattan (\(L_{1}\) norm)
- Jika \(p = 2\) maka jarak Euclidean
(\(L_{2}\) norm)
- Jika \(p \to \infty\) maka jarak
Chebyshev (\(L_{\infty}\) norm)
Implementasi di R
set.seed(123)
# Data random (5 observasi dengan 3 variabel)
data <- matrix(runif(15, min = 1, max = 10), nrow = 5, ncol = 3)
colnames(data) <- c("X1", "X2", "X3")
print("Data random:")
## [1] "Data random:"
print(data)
## X1 X2 X3
## [1,] 3.588198 1.410008 9.611500
## [2,] 8.094746 5.752949 5.080007
## [3,] 4.680792 9.031771 7.098136
## [4,] 8.947157 5.962915 6.153701
## [5,] 9.464206 5.109533 1.926322
# Tentukan dua titik yang akan dihitung jaraknya
p1 <- data[1, ]; p1
## X1 X2 X3
## 3.588198 1.410008 9.611500
p2 <- data[2, ]; p2
## X1 X2 X3
## 8.094746 5.752949 5.080007
# Fungsi jarak Minkowski
minkowski_distance <- function(x, y, p) {
sum(abs(x - y)^p)^(1/p)
}
# Contoh penggunaan
dist_p1 <- minkowski_distance(p1, p2, p = 1); dist_p1 # Manhattan
## [1] 13.38098
dist_p2 <- minkowski_distance(p1, p2, p = 2); dist_p2 # Euclidean
## [1] 7.726871
dist_p3 <- minkowski_distance(p1, p2, p = 3); dist_p3 # Minkowski umum
## [1] 6.435156
dist_inf <- max(abs(p1 - p2)); dist_inf # Chebyshev
## [1] 4.531493
Penjelasan:
- p1 dan p2 → dua titik observasi dari dataset
random.
- minkowski_distance() → fungsi untuk menghitung jarak
Minkowski dengan parameter \(p\).
- dist_p1 → hasil jarak Manhattan.
- dist_p2 → hasil jarak Euclidean.
- dist_p3 → hasil jarak Minkowski dengan \(p=3\).
- dist_inf → jarak Chebyshev (batas \(p \to \infty\)).
Kesimpulan Jarak Minkowski adalah rumus
umum yang meliputi Euclidean, Manhattan, dan Chebyshev.
Dengan mengatur parameter \(p\), kita
dapat menyesuaikan cara mengukur kedekatan antar observasi sesuai
kebutuhan aplikasi.
Fleksibilitas ini menjadikannya pilihan populer dalam machine
learning dan analisis data multivariat.
Vektor rata-rata merupakan vektor yang setiap elemennya merupakan nilai rata-rata dari elemen yang bersesuaian pada sekumpulan vektor. Rumus matematis:
\[ \bar{x}_j = \frac{1}{n} \sum_{i=1}^n x_{ij}, \quad \bar{x} = \begin{bmatrix} \bar{x}_1 \\ \bar{x}_2 \\ \vdots \\ \bar{x}_p \end{bmatrix} \] Sebelum masuk ke vektor rata-rata kita buat dulu dataset yang akan digunakan dalam contoh.
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)); lizard
## BB PM RTB
## [1,] 6.2 61 115
## [2,] 11.5 73 138
## [3,] 8.7 68 127
## [4,] 10.1 70 123
## [5,] 7.8 64 131
## [6,] 6.9 60 120
## [7,] 12.0 76 143
## [8,] 3.1 49 95
## [9,] 14.8 84 160
## [10,] 9.4 71 128
Matriks rata-rata adalah sebuah matriks tunggal yang merepresentasikan rata-rata dari sekumpulan matriks dengan syarat matriks tersebut harus memiliki dimensi yang sama. Rumus matematis: Jika \(\mathbf{1}_n\) adalah vektor kolom berisi \(1\) maka: \[ M = \mathbf{1}_n \bar{x}^T \]
Implementasi di R:
vecMeans = as.matrix(colMeans(lizard)); vecMeans
## [,1]
## BB 9.05
## PM 67.60
## RTB 128.00
vecRata = matrix(c(mean(BB), mean(PM), mean(RTB)), nrow=3, ncol=1); vecRata
## [,1]
## [1,] 9.05
## [2,] 67.60
## [3,] 128.00
Matriks kovarians adalah matriks persegi yang menggambarkan variabilitas dan hubungan linear antara setiap pasangan variabel dalam suatu dataset multidimensi. Secara sederhana, matriks ini menunjukkan bagaimana setiap variabel bervariasi dengan dirinya sendiri (varians) dan bagaimana setiap variabel bervariasi dengan variabel lainnya (kovarians). Ini merupakan generalisasi dari konsep varians ke dalam ruang vektor.
Implementasi di R:
varkov = cov(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
Matriks korelasi adalah matriks yang menggambarkan kekuatan dan arah hubungan linear antara setiap pasangan variabel dalam suatu dataset. Ini merupakan versi standarisasi dari matriks kovarians.
Implementasi R :
korel = cor(lizard); 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
Matriks standarisasi adalah sebuah matriks data di mana setiap kolomnya telah distandarisasi sehingga rata-ratanya 0 dan simpangan bakunya 1.Tujuannya adalah untuk membuat semua variabel dalam dataset berada pada skala yang sama sehingga tidak ada variabel yang mendominasi hanya karena memiliki skala nilai yang lebih besar.Proses ini juga dikenal sebagai normalisasi Z-score.
Implementasi di R :
n = nrow(lizard);n
## [1] 10
u = matrix(1,n,1); u
## [,1]
## [1,] 1
## [2,] 1
## [3,] 1
## [4,] 1
## [5,] 1
## [6,] 1
## [7,] 1
## [8,] 1
## [9,] 1
## [10,] 1
xbar = cbind((1/n)*t(u)%*%lizard); xbar
## BB PM RTB
## [1,] 9.05 67.6 128
D = lizard - u %*% xbar; D
## BB PM RTB
## [1,] -2.85 -6.6 -13
## [2,] 2.45 5.4 10
## [3,] -0.35 0.4 -1
## [4,] 1.05 2.4 -5
## [5,] -1.25 -3.6 3
## [6,] -2.15 -7.6 -8
## [7,] 2.95 8.4 15
## [8,] -5.95 -18.6 -33
## [9,] 5.75 16.4 32
## [10,] 0.35 3.4 0
S = (1/(n-1))*t(D)%*%D; S
## BB PM RTB
## BB 10.98056 31.80000 54.96667
## PM 31.80000 94.04444 160.22222
## RTB 54.96667 160.22222 300.66667
Ds = diag(sqrt(diag(S))); Ds
## [,1] [,2] [,3]
## [1,] 3.313692 0.000000 0.00000
## [2,] 0.000000 9.697651 0.00000
## [3,] 0.000000 0.000000 17.33974
R = solve(Ds) %*% S %*% solve(Ds); R
## [,1] [,2] [,3]
## [1,] 1.0000000 0.9895743 0.9566313
## [2,] 0.9895743 1.0000000 0.9528259
## [3,] 0.9566313 0.9528259 1.0000000