1 Definisi Matriks

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} \]

2 Input Matriks

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.

3 Operasi Matriks

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.

3.1 Penjumlahan Matriks

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

3.2 Pengurangan Matriks

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

3.3 Perkalian Matriks

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

3.4 Perkalian antar elemen

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

3.5 Transpose Matriks

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

3.6 Determinan Matriks

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

3.7 Invers Matriks

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

4 Memanggil Komponen Matriks

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
  1. Memanggil seluruh kolom ke-2
cat("Kolom ke-2 dari A:\n")
## Kolom ke-2 dari A:
print(A[,2])
## [1]  2  5  8 11
  1. Memanggil seluruh baris ke-3
cat("Baris ke-3 dari A:\n")
## Baris ke-3 dari A:
print(A[3,])
## [1] 7 8 9
  1. Memanggil elemen pada baris ke-3 dan kolom ke-2
cat("Elemen pada baris ke-3, kolom ke-2:\n")
## Elemen pada baris ke-3, kolom ke-2:
print(A[3,2])
## [1] 8
  1. Memanggil elemen pada posisi (1,2) dan (3,2)
cat("Elemen (1,2) dan (3,2):\n")
## Elemen (1,2) dan (3,2):
print(A[c(1,3),2])
## [1] 2 8
  1. Memanggil kolom 1 sampai 3
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
  1. Memanggil baris 2 sampai 4
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

5 Nilai dan Vektor Eigen

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

6 Dekomposisi Singular Value (SVD)

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

7 Matriks Jarak

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).

7.1 Jarak Euclidean

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)

7.2 Jarak Chebyshev

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)

7.3 Jarak Manhattan

(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)

7.4 Jarak Mahalanobis

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

7.5 Jarak Minkowski

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

8 Vektor Rata-rata

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

9 Matriks Kovarians

Matriks kovarians adalah matriks yang berisi kovarians antar pasangan variabel.
Kovarians sendiri mengukur arah dan kekuatan hubungan linear antara dua variabel.

  • Jika nilai kovarians positif → kedua variabel cenderung naik bersama.
  • Jika nilai kovarians negatif → ketika satu variabel naik, variabel lain cenderung turun.
  • Jika mendekati nol → hubungan linear sangat lemah atau tidak ada.

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

10 Matriks Korelasi

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].

  • Nilai mendekati 1 → hubungan linear positif yang kuat.
  • Nilai mendekati -1 → hubungan linear negatif yang kuat.
  • Nilai mendekati 0 → hubungan linear lemah atau tidak ada hubungan linear.

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

11 Matriks Standardisasi

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