Matriks adalah susunan bilangan, simbol, atau ekspresi yang disusun secara baris (rows) dan kolom (columns) membentuk suatu persegi panjang atau persegi. Setiap bilangan atau elemen dalam matriks disebut entri matriks.
Secara umum, sebuah matriks dilambangkan dengan huruf kapital (misalnya 𝐴,𝐵, atau 𝑀), sedangkan elemennya ditulis dengan notasi \(𝑎_{𝑖𝑗}\), yaitu elemen pada baris ke-𝑖dan kolom ke-𝑗. Contoh matriks A, berordo 3 x 3 sebagai berikut.
\[ A = \begin{bmatrix} a & b & c \\ d & e & f \\ g & h & i \end{bmatrix} \]
Matriks dibuat dengan fungsi matrix(). Inti dari pembuatan matriks adalah memberi sebuah vektor data (dengan c(…)) lalu tentukan ukuran matriks (nrow, ncol). Dalam menginput matriks, terdapat 2 cara penginputan, yaitu dapat berdasarkan kolom atau berdasarkan baris. Berikut contoh penginputan matriks berdasarkan kolom
# input data #
cat("Matriks X =\n")
## Matriks X =
X = matrix(c(1,2,3,
4,5,6,
7,8,9), nrow = 3, ncol = 3); X
## [,1] [,2] [,3]
## [1,] 1 4 7
## [2,] 2 5 8
## [3,] 3 6 9
Terlihat, elemen matriks X [1,2,3] disusun menjadi elemen di kolom 1, yang artinya matriks tersebut disusun berdasarkan kolom. Selanjutnya, untuk menyusun matriks berdasarkan baris, digunakan byrow = TRUE. Berikut contoh matriks yang disusun berdasarkan baris.
cat("Matriks Y =\n")
## Matriks Y =
Y = matrix(c(1,2,3,
4,5,6,
7,8,9), nrow = 3, ncol = 3, byrow = TRUE); Y
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
## [3,] 7 8 9
Terlihat bahwa elemen mattriks Y [1,2,3] disusun menjadi elemen di baris 1.
Operasi matriks adalah serangkaian aturan atau prosedur yang digunakan untuk melakukan perhitungan matematis terhadap satu atau lebih matriks. Operasi ini bertujuan untuk mengolah, mengkombinasikan, atau memanipulasi data yang disajikan dalam bentuk matriks sehingga dapat memberikan informasi baru atau menyelesaikan permasalahan tertentu.
Dalam matematika dan komputasi, operasi matriks sangat penting karena matriks digunakan untuk merepresentasikan berbagai macam permasalahan, mulai dari sistem persamaan linear, transformasi geometri, statistika, hingga pembelajaran mesin.
Penjumlahan matriks adalah salah satu operasi dasar dalam aljabar matriks, yaitu menggabungkan dua matriks dengan cara menjumlahkan elemen-elemen yang posisinya bersesuaian. Agar dua matriks dapat dijumlahkan, keduanya harus memiliki ordo yang sama (jumlah baris dan kolom sama). Jika syarat ini tidak terpenuhi, maka penjumlahan tidak dapat dilakukan.
Misalkan diberikan dua matriks berikut:
\[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \quad B = \begin{bmatrix} e & f \\ g & h \end{bmatrix} \]
Maka penjumlahan keduanya adalah:
\[ A + B = \begin{bmatrix} a+e & b+f \\ c+g & d+h \end{bmatrix} \] Contoh penjumlahan matriks:
# Definisi matriks A
A <- matrix(c(1, 3,
4, 2), nrow = 2, ncol = 2, byrow = TRUE)
# Definisi matriks B
B <- matrix(c(2, 5,
7, 1), nrow = 2, ncol = 2, byrow = TRUE)
# Tampilkan A dan B
cat("Matriks A =\n")
## Matriks A =
print(A)
## [,1] [,2]
## [1,] 1 3
## [2,] 4 2
cat("\nMatriks B =\n")
##
## Matriks B =
print(B)
## [,1] [,2]
## [1,] 2 5
## [2,] 7 1
# Operasi penjumlahan
C <- A + B
# Tampilkan hasil penjumlahan
cat("\nHasil C = A + B =\n")
##
## Hasil C = A + B =
print(C)
## [,1] [,2]
## [1,] 3 8
## [2,] 11 3
Pengurangan matriks adalah operasi aljabar yang dilakukan dengan cara mengurangkan elemen-elemen dari dua matriks yang posisinya sama. Sama seperti penjumlahan, pengurangan hanya dapat dilakukan jika kedua matriks memiliki ordo yang sama (jumlah baris dan kolom sama). Jika syarat ini tidak terpenuhi, maka operasi pengurangan tidak valid.
Misalkan diberikan dua matriks berikut:
\[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \quad B = \begin{bmatrix} e & f \\ g & h \end{bmatrix} \]
Maka hasil pengurangannya adalah:
\[ A - B = \begin{bmatrix} a-e & b-f \\ c-g & d-h \end{bmatrix} \]
# Definisi matriks A
A <- matrix(c(8, 3,
4, 2), nrow = 2, ncol = 2, byrow = TRUE)
# Definisi matriks B
B <- matrix(c(2, 5,
7, 1), nrow = 2, ncol = 2, byrow = TRUE)
# Tampilkan A dan B
cat("Matriks A =\n")
## Matriks A =
print(A)
## [,1] [,2]
## [1,] 8 3
## [2,] 4 2
cat("\nMatriks B =\n")
##
## Matriks B =
print(B)
## [,1] [,2]
## [1,] 2 5
## [2,] 7 1
# Operasi pengurangan matriks
C <- A - B
# Tampilkan hasil pengurangan
cat("\nHasil C = A - B =\n")
##
## Hasil C = A - B =
print(C)
## [,1] [,2]
## [1,] 6 -2
## [2,] -3 1
Perkalian matriks adalah salah satu operasi dasar dalam aljabar linear yang memiliki aturan khusus. Tidak seperti penjumlahan atau pengurangan matriks yang hanya bisa dilakukan jika ukurannya sama, perkalian matriks 𝐴×𝐵 hanya dapat dilakukan jika jumlah kolom matriks pertama sama dengan jumlah baris matriks kedua.
Misalnya, jika 𝐴 berukuran 𝑚×𝑛 dan 𝐵 berukuran 𝑛×𝑝, maka hasil kali 𝐶=𝐴×𝐵 akan berupa matriks berukuran 𝑚×𝑝.
Perkalian matriks hanya dapat dilakukan apabila jumlah kolom matriks pertama sama dengan jumlah baris matriks kedua. Misalkan kita memiliki matriks:
\[ A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix}, \quad B = \begin{bmatrix} 7 & 8 \\ 9 & 10 \\ 11 & 12 \end{bmatrix} \]
Maka hasil perkaliannya adalah matriks
\[ (C = A \times B). \] Rumus umum:
\[ C_{ij} = \sum_{k=1}^{n} A_{ik} \cdot B_{kj} \]
# Definisi matriks A (2x3) dan B (3x2)
A <- matrix(c(1,2,3,4,5,6), nrow = 2, byrow = TRUE)
B <- matrix(c(7,8,9,10,11,12), nrow = 3, byrow = TRUE)
# Menampilkan matriks
cat("Matriks A =\n")
## Matriks A =
print(A)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
cat("\nMatriks B =\n")
##
## Matriks B =
print(B)
## [,1] [,2]
## [1,] 7 8
## [2,] 9 10
## [3,] 11 12
# Perkalian matriks
C <- A %*% B
cat("\nHasil C = A %*% B =\n")
##
## Hasil C = A %*% B =
print(C)
## [,1] [,2]
## [1,] 58 64
## [2,] 139 154
Perkalian antar elemen matriks (element-wise multiplication) adalah operasi perkalian di mana setiap elemen matriks pertama dikalikan dengan elemen pada posisi yang sama di matriks kedua.
Syarat utama agar operasi ini bisa dilakukan adalah kedua matriks harus memiliki ukuran yang sama.Jika kita punya dua matriks𝐴 dan 𝐵 berukuran 𝑚×𝑛, maka hasil perkalian antar elemen 𝐶 juga akan berukuran 𝑚×𝑛.
\[ C_{ij} = A_{ij} \times B_{ij} \]
Misalnya, kita memiliki dua matriks berikut:
\[ A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix}, \quad B = \begin{bmatrix} 7 & 8 & 9 \\ 10 & 11 & 12 \end{bmatrix} \]
Maka hasil perkalian antar elemennya adalah:
# Definisi matriks A dan B dengan ukuran sama (2x3)
A <- matrix(c(1,2,3,4,5,6), nrow = 2, byrow = TRUE)
B <- matrix(c(7,8,9,10,11,12), nrow = 2, byrow = TRUE)
# Menampilkan matriks
cat("Matriks A =\n")
## Matriks A =
print(A)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
cat("\nMatriks B =\n")
##
## Matriks B =
print(B)
## [,1] [,2] [,3]
## [1,] 7 8 9
## [2,] 10 11 12
# Perkalian antar elemen
C <- A * B
cat("\nHasil C = A * B =\n")
##
## Hasil C = A * B =
print(C)
## [,1] [,2] [,3]
## [1,] 7 16 27
## [2,] 40 55 72
Selain perkalian antar elemen, kita juga bisa melakukan perkalian antara sebuah skalar (bilangan biasa) dengan sebuah matriks. Hasilnya adalah matriks baru dengan setiap elemen dikalikan oleh skalar tersebut.
\[ C_{ij} = k \times A_{ij} \]
Misalnya kita punya matriks \(A\) sebagai berikut:
\[ A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix}, \quad k = 3 \]
Maka hasil perkalian skalar adalah:
# Definisi matriks A
A <- matrix(c(1,2,3,4,5,6), nrow = 2, byrow = TRUE)
# Skalar
k <- 3
# Perkalian skalar dengan matriks
C <- k * A
# Tampilkan hasil
cat("Matriks A =\n")
## Matriks A =
print(A)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
cat("\nSkalar k =", k, "\n")
##
## Skalar k = 3
cat("\nHasil C = k * A =\n")
##
## Hasil C = k * A =
print(C)
## [,1] [,2] [,3]
## [1,] 3 6 9
## [2,] 12 15 18
Transpose dari sebuah matriks adalah operasi yang menghasilkan matriks baru dengan menukar posisi baris menjadi kolom, dan kolom menjadi baris.Secara formal, jika diberikan matriks 𝐴 berukuran 𝑚×𝑛, maka transpose-nya, dilambangkan dengan \(A^T\), adalah matriks berukuran 𝑛×𝑚 yang elemennya memenuhi:
\[ (A^T)_{ij} = A_{ji} \]
Artinya, elemen pada baris ke-\((i)\) dan kolom ke-\((j)\) di \((A^T)\) diambil dari baris ke-\((j)\) dan kolom ke-\((i)\) pada matriks \((A)\).
Jika diberikan matriks:
\[ A = \begin{bmatrix} a & b & c \\ d & e& f \end{bmatrix} \]
Maka transpose \((A^T)\) adalah:
\[ A^T = \begin{bmatrix} a & d \\ b & e \\ c & f \end{bmatrix} \]
# Definisi matriks A
A <- matrix(c(1,2,3,
4,5,6), nrow = 2, byrow = TRUE)
# Operasi transpose
AT <- t(A)
# Menampilkan dengan keterangan
cat("Matriks A =\n")
## Matriks A =
print(A)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
cat("\nHasil Transpose A^T =\n")
##
## Hasil Transpose A^T =
print(AT)
## [,1] [,2]
## [1,] 1 4
## [2,] 2 5
## [3,] 3 6
Determinan adalah suatu nilai skalar yang dapat dihitung dari sebuah matriks persegi. Determinan digunakan untuk mengetahui sifat-sifat matriks, misalnya apakah matriks tersebut memiliki invers (invers hanya ada jika determinan tidak sama dengan nol).
Secara umum, untuk matriks \(A\), determinan ditulis dengan notasi:
\[ \det(A) \quad \text{atau} \quad |A| \]
Jika diberikan matriks:
\[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix} \]
maka:
\[ \det(A) = ad - bc \] Contoh:
# Definisikan matriks A
A <- matrix(c(5, 6,
2, 3),
nrow = 2, ncol = 2, byrow = FALSE)
# Tampilkan matriks A
cat("Matriks A:\n")
## Matriks A:
print(A)
## [,1] [,2]
## [1,] 5 2
## [2,] 6 3
# Hitung determinan
det_A <- det(A)
# Tampilkan hasil determinan
cat("Determinan dari A adalah:\n")
## Determinan dari A adalah:
print(det_A)
## [1] 3
Jika A adalah matriks persegi berukuran \((n \times n)\), maka invers dari matriks A (ditulis \((A^{-1})\)) didefinisikan sebagai matriks yang memenuhi:
\[ A \cdot A^{-1} = A^{-1} \cdot A = I_n \]
dengan \((I_n)\) adalah matriks identitas ordo \((n \times n)\).
Jika diberikan matriks:
\[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix} \]
maka invers \(A^{-1}\) diberikan oleh:
\[ A^{-1} = \frac{1}{ad - bc} \begin{bmatrix} d & -b \\ -c & a \end{bmatrix}, \quad \text{dengan } ad - bc \neq 0 \]
Contoh
# Definisikan matriks A
A <- matrix(c(2, 5,
1, 3),
nrow = 2, ncol = 2, byrow = FALSE)
# Tampilkan matriks A
cat("Matriks A:\n")
## Matriks A:
print(A)
## [,1] [,2]
## [1,] 2 1
## [2,] 5 3
# Hitung invers matriks
A_inv <- solve(A)
# Tampilkan hasil invers
cat("Invers dari A (A^-1):\n")
## Invers dari A (A^-1):
print(A_inv)
## [,1] [,2]
## [1,] 3 -1
## [2,] -5 2
# Verifikasi A * A^-1 = I
cat("Hasil perkalian A %*% A^-1:\n")
## Hasil perkalian A %*% A^-1:
print(A %*% A_inv)
## [,1] [,2]
## [1,] 1 2.220446e-16
## [2,] 0 1.000000e+00
cat("Hasil perkalian A^-1 %*% A:\n")
## Hasil perkalian A^-1 %*% A:
print(A_inv %*% A)
## [,1] [,2]
## [1,] 1.000000e+00 0
## [2,] 1.776357e-15 1
Pemanggilan komponen matriks adalah proses mengambil sebagian isi
dari matriks, baik berupa baris, kolom, maupun elemen tertentu, dengan
menggunakan indeks.
Dalam R, indeks matriks dituliskan dengan notasi:
\[ A[i, j] \]
Contoh Matriks Misalkan kita punya matriks A:
# Definisikan matriks A
A <- matrix(c(1:12), nrow = 4, ncol = 3, byrow = TRUE)
# Tampilkan matriks A
cat("Matriks A:\n")
## Matriks A:
print(A)
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
## [3,] 7 8 9
## [4,] 10 11 12
cat("Kolom ke-2 dari A:\n")
## Kolom ke-2 dari A:
print(A[,2])
## [1] 2 5 8 11
cat("Baris ke-3 dari A:\n")
## Baris ke-3 dari A:
print(A[3,])
## [1] 7 8 9
cat("Elemen pada baris ke-3, kolom ke-2:\n")
## Elemen pada baris ke-3, kolom ke-2:
print(A[3,2])
## [1] 8
cat("Elemen (1,2) dan (3,2):\n")
## Elemen (1,2) dan (3,2):
print(A[c(1,3),2])
## [1] 2 8
cat("Kolom 1 hingga 3:\n")
## Kolom 1 hingga 3:
print(A[,1:3])
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
## [3,] 7 8 9
## [4,] 10 11 12
cat("Baris 2 hingga 4:\n")
## Baris 2 hingga 4:
print(A[2:4,])
## [,1] [,2] [,3]
## [1,] 4 5 6
## [2,] 7 8 9
## [3,] 10 11 12
Nilai eigen (eigenvalue) dan vektor eigen
(eigenvector) merupakan konsep penting dalam aljabar
linear.
- Nilai Eigen (\(\lambda\)) adalah skalar yang menunjukkan
“besarnya variasi” atau informasi yang dapat dijelaskan oleh suatu
komponen.
- Vektor Eigen (\(v\))
adalah vektor yang menunjukkan arah atau komponen yang menjelaskan
variasi tersebut.
Secara umum, jika \(A\) adalah matriks persegi berordo \(n \times n\), maka nilai dan vektor eigen didefinisikan dengan persamaan:
\[
A v = \lambda v
\] dengan: - \(A\): matriks
persegi
- \(v\): vektor eigen (tidak nol)
- \(\lambda\): nilai eigen
Pentingnya Nilai dan Vektor Eigen
Nilai dan vektor eigen sangat berguna dalam berbagai analisis data
multivariat, misalnya: - Principal Component Analysis
(PCA) → mengurangi dimensi data.
- Factor Analysis → menemukan faktor-faktor penyebab
laten.
- Studi dinamika sistem → analisis stabilitas.
Contoh
Misalkan kita definisikan matriks \(X\) dan \(Y\):
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, byrow = FALSE)
# Definisikan matriks Y
Y <- matrix(c(6.5, 8.2, 7.9,
5.4, 7.0, 6.7,
8.1, 6.9, 9.2),
nrow = 3, ncol = 3, byrow = TRUE)
# Tampilkan matriks
cat("Matriks X:\n")
## Matriks X:
print(X)
## [,1] [,2] [,3]
## [1,] 6.5 5.4 8.1
## [2,] 8.2 7.0 6.9
## [3,] 7.9 6.7 9.2
cat("Matriks Y:\n")
## Matriks Y:
print(Y)
## [,1] [,2] [,3]
## [1,] 6.5 8.2 7.9
## [2,] 5.4 7.0 6.7
## [3,] 8.1 6.9 9.2
Menghitung Nilai dan Vektor Eigen
# Cari eigenvalue dan eigenvector dari X
eigX <- eigen(X)
# Cari eigenvalue dan eigenvector dari Y
eigY <- eigen(Y)
# Tampilkan hasil
cat("Eigen dari X:\n")
## Eigen dari X:
print(eigX)
## eigen() decomposition
## $values
## [1] 22.0140019 0.4816027 0.2043953
##
## $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
cat("Eigen dari Y:\n")
## Eigen dari Y:
print(eigY)
## eigen() decomposition
## $values
## [1] 22.0140019 0.4816027 0.2043953
##
## $vectors
## [,1] [,2] [,3]
## [1,] -0.5877156 -0.5263753 -0.6237168
## [2,] -0.4964624 -0.3570747 -0.2383316
## [3,] -0.6388392 0.7716390 0.7444296
# Eigenvalue dari X dan Y
eigvalX <- eigX$values
eigvalY <- eigY$values
cat("Eigenvalue dari X:\n")
## Eigenvalue dari X:
print(eigvalX)
## [1] 22.0140019 0.4816027 0.2043953
cat("Eigenvalue dari Y:\n")
## Eigenvalue dari Y:
print(eigvalY)
## [1] 22.0140019 0.4816027 0.2043953
# Eigenvector dari X dan Y
eigvecX <- eigX$vectors
eigvecY <- eigY$vectors
cat("Eigenvector dari X:\n")
## Eigenvector dari X:
print(eigvecX)
## [,1] [,2] [,3]
## [1,] 0.5268942 0.5218595 0.61121520
## [2,] 0.5752916 -0.8360039 -0.78978922
## [3,] 0.6256373 0.1695881 0.05146821
cat("Eigenvector dari Y:\n")
## Eigenvector dari Y:
print(eigvecY)
## [,1] [,2] [,3]
## [1,] -0.5877156 -0.5263753 -0.6237168
## [2,] -0.4964624 -0.3570747 -0.2383316
## [3,] -0.6388392 0.7716390 0.7444296
Singular Value Decomposition (SVD) adalah metode dekomposisi matriks yang memecah sebuah matriks \(A\) berukuran \(m \times n\) menjadi tiga buah matriks, yaitu:
\[ A = U \Sigma V^T \]
dengan: - \(U\): matriks ortogonal
berukuran \(m \times m\) (left singular
vectors)
- \(\Sigma\): matriks diagonal
berukuran \(m \times n\) yang berisi
nilai singular (singular values)
- \(V\): matriks ortogonal berukuran
\(n \times n\) (right singular
vectors)
Kegunaan SVD - Reduksi dimensi data (misalnya dalam
PCA).
- Kompresi citra (image compression).
- Pemodelan teks (Latent Semantic Analysis).
- Analisis sistem linier.
Contoh Misalkan kita punya matriks \(A\):
# Definisikan matriks A
A <- matrix(c(5, -3, 6,
2, -4, 8,
-2, 5, -1,
7, 3, 9),
nrow = 4, ncol = 3, byrow = TRUE)
cat("Matriks A:\n")
## Matriks A:
print(A)
## [,1] [,2] [,3]
## [1,] 5 -3 6
## [2,] 2 -4 8
## [3,] -2 5 -1
## [4,] 7 3 9
Dekomposisi SVD
# Lakukan SVD
svd_result <- svd(A)
# Ambil komponen SVD
singular_value <- svd_result$d
U <- svd_result$u
V <- svd_result$v
# Tampilkan hasil
cat("Singular Value:\n")
## Singular Value:
print(singular_value)
## [1] 16.07076 7.41936 3.11187
cat("Matriks U:\n")
## Matriks U:
print(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
cat("Matriks V:\n")
## Matriks V:
print(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
Matriks jarak (distance matrix) adalah representasi
dalam bentuk matriks yang menunjukkan jarak antar objek dalam suatu
dataset.
Setiap elemen dalam matriks ini menyatakan jarak antara dua titik
(baris) dalam data.
Matriks jarak banyak digunakan dalam: - Analisis
clustering (misalnya K-Means, Hierarchical Clustering).
- Analisis multivariat (misalnya Multidimensional
Scaling).
- Penghitungan jarak antar lokasi (misalnya GPS).
adalah jarak lurus standar antara dua titik dalam ruang. \[ d(x,y) = \sqrt{\sum_{i=1}^n (x_i - y_i)^2} \]
Contoh
# Atur seed untuk replikasi
set.seed(321)
# Ambil sampel data dari dataset USArrests
ss <- sample(1:50, 15)
df <- USArrests[ss, ]
# Standardisasi data
df.scaled <- scale(df)
cat("Data hasil standardisasi:\n")
## Data hasil standardisasi:
print(df.scaled)
## 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
# Hitung jarak Euclidean
dist.eucl <- dist(df.scaled, method = "euclidean")
cat("Matriks jarak (Euclidean):\n")
## Matriks jarak (Euclidean):
print(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
# Visualisasi matriks jarak
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
fviz_dist(dist.eucl)
adalah ukuran jarak yang ditentukan oleh selisih terbesar antar koordinat dua titik.
Berbeda dengan Euclidean yang menghitung jarak lurus, Chebyshev hanya fokus pada dimensi dengan selisih paling besar.
Secara matematis, jarak Chebyshev antara dua titik \(x = (x_1, x_2, ..., x_n)\) dan \(y = (y_1, y_2, ..., y_n)\) didefinisikan sebagai:
\[ d_{\text{Chebyshev}}(x,y) = \max_{i} |x_i - y_i| \]
| ::: {style=“text-align: justify;”} Aplikasi |
| - Langkah Raja pada papan catur:
pergerakan terjauh dari satu petak ke petak lain ditentukan oleh jarak
Chebyshev. - Quality Control multivariat: mengevaluasi dimensi produk (misalnya panjang, lebar, tinggi) dengan fokus pada dimensi terburuk. |
Contoh :::
# Gunakan data yang sudah discale sebelumnya
set.seed(321)
ss <- sample(1:50, 15)
df <- USArrests[ss, ]
df.scaled <- scale(df)
# Hitung jarak Chebyshev
dist.cheb <- dist(df.scaled, method = "maximum")
cat("Matriks jarak (Chebyshev):\n")
## Matriks jarak (Chebyshev):
print(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
# Visualisasi matriks jarak
library(factoextra)
fviz_dist(dist.cheb)
(sering juga disebut city block distance atau taxicab
distance) adalah ukuran jarak antara dua titik yang dihitung
sebagai jumlah dari nilai absolut selisih
koordinat-koordinatnya.
Nama “Manhattan” berasal dari tata kota Manhattan yang berbentuk grid,
di mana jalur pergerakan hanya dapat dilakukan lurus ke arah
utara-selatan atau timur-barat (tidak bisa diagonal).
Secara matematis, jarak Manhattan antara dua titik \(p = (p_1, p_2, ..., p_n)\) dan \(q = (q_1, q_2, ..., q_n)\) didefinisikan sebagai: \[ d_{Manhattan}(p, q) = \sum_{i=1}^n |p_i - q_i| \]
Contoh Aplikasi - Gudang / tata kota grid: Mengukur jarak antar titik di kota atau gudang dengan jalur lurus (tanpa jalan diagonal). - Natural Language Processing (NLP): Mengukur jarak antar dokumen berdasarkan frekuensi kata (jumlah selisih absolut). - Clustering: Digunakan pada beberapa algoritma untuk menentukan jarak antar objek yang lebih cocok dengan data grid.
Contoh
# Data sampel
set.seed(321)
ss <- sample(1:50, 15)
df <- USArrests[ss, ]
# Standarisasi data
df.scaled <- scale(df)
# 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
# Visualisasi matriks jarak Manhattan
library(factoextra)
fviz_dist(dist.man)
adalah ukuran jarak antar titik yang mempertimbangkan: 1.
Skala (varians) setiap variabel, dan
2. Korelasi antar variabel.
Berbeda dengan jarak Euclidean atau Manhattan yang menganggap semua
dimensi independen dan berskala sama, Mahalanobis mengoreksi dengan
menggunakan kovarians antar variabel.
Dengan demikian, ia dapat mendeteksi perbedaan yang lebih relevan pada
data multivariat.
Secara matematis, jarak Mahalanobis antara titik \(x\) dan rata-rata \(\mu\) didefinisikan sebagai: \[ D_M(x, \mu) = \sqrt{(x - \mu)^T S^{-1} (x - \mu)} \]
dengan \(S\) adalah matriks kovarians.
Contoh Aplikasi - Deteksi anomali: Misalnya dalam
transaksi keuangan, titik data yang jauh (berjarak Mahalanobis besar)
bisa dianggap anomali.
- Analisis Diskriminan: Untuk memisahkan kelompok
dengan varians dan korelasi berbeda.
- Kualitas produk: Mengecek apakah suatu produk masuk
ke dalam variasi wajar dari proses produksi.
Contoh
# Library
library(StatMatch)
## Warning: package 'StatMatch' was built under R version 4.4.3
## Loading required package: proxy
## Warning: package 'proxy' was built under R version 4.4.3
##
## 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.4.3
## 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
# Data sampel
set.seed(321)
ss <- sample(1:50, 15)
df <- USArrests[ss, ]
# Standarisasi data
df.scaled <- scale(df)
# 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
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
Jarak Minkowski adalah ukuran jarak antara dua titik dalam ruang
vektor yang merupakan bentuk umum dari berbagai jarak lain.
Secara matematis:
\[ D(x, y) = \left( \sum_{i=1}^n |x_i - y_i|^p \right)^{\frac{1}{p}} \] ::: {style=“text-align: justify;”} dengan: - \(p\) adalah parameter yang menentukan jenis jarak - \(x_i, y_i\) adalah komponen ke-\(i\) dari vektor \(x\) dan \(y\).
Hubungan dengan jarak lain: - Jika \(p = 1\) → Jarak Manhattan
- Jika \(p = 2\) → Jarak
Euclidean
- Jika \(p \to \infty\) → Jarak
Chebyshev
Contoh :::
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)
}
# Hitung jarak dengan berbagai p
d1 <- minkowski_distance(p1, p2, 1) # Manhattan
d2 <- minkowski_distance(p1, p2, 2) # Euclidean
d3 <- minkowski_distance(p1, p2, 3) # p=3
d_inf <- max(abs(p1 - p2)) # Chebyshev (p -> ∞)
d1; d2; d3; d_inf
## [1] 13.38098
## [1] 7.726871
## [1] 6.435156
## [1] 4.531493
# Contoh penggunaan dengan p = 1 (Manhattan), p = 2 (Euclidean), p = 3 (Minkowski umum)
dist_p1 <- minkowski_distance(p1, p2, p = 1);dist_p1
## [1] 13.38098
dist_p2 <- minkowski_distance(p1, p2, p = 2);dist_p2
## [1] 7.726871
dist_p3 <- minkowski_distance(p1, p2, p = 3);dist_p3
## [1] 6.435156
dist_inf <- max(abs(p1 - p2));dist_inf
## [1] 4.531493
Vektor rata-rata adalah vektor yang setiap elemennya merupakan nilai
rata-rata dari masing-masing variabel (kolom) dalam sebuah matriks
data.
Konsep ini sangat penting dalam statistika multivariat,
karena digunakan sebagai representasi pusat data (titik tengah dari
sekumpulan observasi).
Jika terdapat \(n\) observasi dengan \(p\) variabel, maka vektor rata-rata dituliskan sebagai: \[ \bar{X} = \begin{bmatrix} \bar{x}_1 \\ \bar{x}_2 \\ \vdots \\ \bar{x}_p \end{bmatrix} = \begin{bmatrix} \frac{1}{n}\sum_{i=1}^n x_{i1} \\ \frac{1}{n}\sum_{i=1}^n x_{i2} \\ \vdots \\ \frac{1}{n}\sum_{i=1}^n x_{ip} \end{bmatrix} \]
dengan: - \(\bar{x}_j\) = rata-rata
variabel ke-\(j\) (kolom ke-\(j\)),
- \(n\) = jumlah observasi,
- \(p\) = jumlah variabel.
| ::: {style=“text-align: justify;”} Contoh Data |
| Misalkan data berat badan (BB), panjang moncong (PM), dan rata-rata total badan (RTB) dari 10 ekor kadal sebagai berikut: ::: |
| ``` r # Input data kadal 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) |
| # Gabungkan ke dalam matriks lizard <- as.matrix(cbind(BB, PM, RTB)) cat(“Matriks Data Kadal:”) ``` |
## Matriks Data Kadal: |
r print(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 |
| ``` r # Hitung vektor rata-rata tiap kolom mean_vector <- colMeans(lizard) |
| cat(“Vektor rata-rata:”) ``` |
## Vektor rata-rata: |
r print(mean_vector) |
## BB PM RTB ## 9.05 67.60 128.00 |
| ## Matriks Rata-rata ::: {style=“text-align: justify;”}
Matriks rata-rata adalah matriks yang dibentuk dari vektor
rata-rata setiap variabel. Jika vektor rata-rata \(\bar{X}\) memiliki dimensi \(p \times 1\), maka matriks rata-rata umumnya dituliskan sebagai representasi kolom tunggal dari rata-rata tiap variabel. |
| Matriks ini sering digunakan dalam analisis multivariat sebagai titik acuan pusat data, dan menjadi dasar dalam perhitungan matriks kovarians dan matriks korelasi. ::: |
Rumus Umum Misalkan terdapat \(n\) observasi dan \(p\) variabel. Vektor rata-rata dituliskan: \[ \bar{X} = \begin{bmatrix} \bar{x}_1 \\ \bar{x}_2 \\ \vdots \\ \bar{x}_p \end{bmatrix} \]
Maka matriks rata-rata adalah:
\[ M = \begin{bmatrix} \bar{x}_1 \\ \bar{x}_2 \\ \vdots \\ \bar{x}_p \end{bmatrix} \]
dengan \(\bar{x}_j = \frac{1}{n}\sum_{i=1}^n x_{ij}\).
Contoh
# Data kadal
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))
cat("Matriks Data Kadal:\n")
## Matriks Data Kadal:
print(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
# Hitung vektor rata-rata (kolom)
vecMeans <- as.matrix(colMeans(lizard))
cat("\nMatriks Rata-Rata (cara 1 - colMeans):\n")
##
## Matriks Rata-Rata (cara 1 - colMeans):
print(vecMeans)
## [,1]
## BB 9.05
## PM 67.60
## RTB 128.00
# Cara lain: manual
vecRata <- matrix(c(mean(BB), mean(PM), mean(RTB)), nrow = 3, ncol = 1)
cat("\nMatriks Rata-Rata (cara 2 - manual):\n")
##
## Matriks Rata-Rata (cara 2 - manual):
print(vecRata)
## [,1]
## [1,] 9.05
## [2,] 67.60
## [3,] 128.00
Matriks kovarians adalah matriks yang berisi kovarians antar pasangan
variabel.
Kovarians sendiri mengukur arah dan kekuatan hubungan
linear antara dua variabel.
Matriks kovarians penting dalam analisis multivariat karena menggambarkan struktur variabilitas data.
Rumus Umum
Misalkan terdapat matriks data \(X\) berukuran \(n \times p\), maka matriks kovarians dituliskan: \[ S = \frac{1}{n-1} (X - \mathbf{1}\bar{X}^T)^T (X - \mathbf{1}\bar{X}^T) \]
atau secara elemen:
\[ s_{ij} = \frac{1}{n-1} \sum_{k=1}^n (x_{ki} - \bar{x}_i)(x_{kj} - \bar{x}_j) \]
dengan: - \(s_{ij}\) = kovarians
antara variabel \(i\) dan \(j\),
- \(\bar{x}_i\) = rata-rata variabel
ke-\(i\),
- \(n\) = jumlah observasi.
Contoh
# Data kadal
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))
cat("Matriks Data Kadal:\n")
## Matriks Data Kadal:
print(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
# Hitung matriks kovarians
varkov <- cov(lizard)
cat("\nMatriks Kovarians:\n")
##
## Matriks Kovarians:
print(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 persegi yang berisi nilai koefisien korelasi antar variabel dalam suatu data multivariat. Korelasi mengukur keeratan hubungan linear antar variabel dengan nilai yang berada pada interval [-1, 1].
Matriks ini sering digunakan untuk: - Mengetahui hubungan antar
variabel sebelum melakukan analisis multivariat.
- Menentukan apakah ada multikolinearitas antar variabel.
- Menjadi dasar dalam analisis faktor atau analisis komponen utama
(PCA).
Rumus Korelasi (Pearson) Untuk dua variabel \(X\) dan \(Y\) dengan rata-rata \(\bar{X}\) dan \(\bar{Y}\): \[ r_{XY} = \frac{\text{Cov}(X,Y)}{\sigma_X \sigma_Y} \;=\; \frac{\sum_{i=1}^n (X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum_{i=1}^n (X_i - \bar{X})^2 \cdot \sum_{i=1}^n (Y_i - \bar{Y})^2}} \]
Sintaks R
# Matriks Korelasi
korel = cor(lizard)
korel
Matriks standardisasi adalah bentuk transformasi dari matriks
kovarians menjadi matriks korelasi.
Standardisasi dilakukan dengan membagi kovarians dengan akar
varians masing-masing variabel, sehingga setiap variabel berada
dalam skala baku (mean = 0, variansi = 1).
Tujuan: - Menyamakan skala antar variabel (agar variabel dengan skala
besar tidak mendominasi analisis).
- Menghasilkan matriks korelasi yang dapat digunakan
untuk analisis multivariat seperti PCA atau Analisis Faktor.
Rumus Misalkan \(S\) adalah matriks
kovarians dengan diagonal utama berisi varians.
Bentuk standardisasi dinyatakan sebagai:
\[ R = D_s^{-1} S D_s^{-1} \]
dengan
\[ D_s = \text{diag}(\sqrt{\sigma_{11}}, \sqrt{\sigma_{22}}, \dots, \sqrt{\sigma_{pp}}) \]
yaitu matriks diagonal berisi akar varians masing-masing variabel.
Sintaks R
# Matriks Standardisasi (akar dari variansi masing-masing variabel)
n = nrow(lizard); n
u = matrix(1, n, 1); u
xbar = cbind((1/n) * t(u) %*% lizard); xbar
D = lizard - u %*% xbar; D
S = (1/(n-1)) * t(D) %*% D; S # Matriks kovarians
# Matriks diagonal dari akar varians
Ds = diag(sqrt(diag(S))); Ds
# Matriks standardisasi = matriks korelasi
R = solve(Ds) %*% S %*% solve(Ds); R