💡 Dekomposisi Matriks dan Konsep Jarak

Penjelasan, Rumus, Contoh, Implementasi dari Praktikum 1

Disusun oleh Siti Qanita Nailah

Tanggal: 2025-09-11

1 MATRIKS

Matriks adalah sekumpulan bilangan yang disusun berdasarkan baris dan kolom, serta ditempatkan di dalam tanda kurung. Tanda kurungnya ini bisa berupa kurung biasa “( )” atau kurung siku “[ ]”. Suatu matriks diberi nama dengan huruf kapital, seperti A, B, C, dan seterusnya. Misalkan terdiri dari n baris dan p kolom, maka matriks tersebut berukuran (ordo) n × p. Berikut contoh matriks berukuran 2 x 2: \[ A = \begin{bmatrix} 4 & 5 \\ 6 & 7 \end{bmatrix} \]

1.1 OPERASI MATRIKS

Operasi matriks meliputi penjumlahan, pengurangan, perkalian (skalar maupun antarmatriks), dan transpose. Operasi ini penting untuk memanipulasi data multivariat yang biasanya berbentuk tabel (matriks). Menginput data dalam R

# input data #
X = matrix(c(1, 2, 3,
              4, 5, 6,
              7, 8, 10), nrow = 3, ncol = 3); X
##      [,1] [,2] [,3]
## [1,]    1    4    7
## [2,]    2    5    8
## [3,]    3    6   10

Matriks A merupakan matriks dengan ordo 3x3 yang terdiri dari 3 baris dan 3 kolom.

Pada syntax tersebut nrow melambangkan berapa baris yang diinginkan. Begitu juga dengan ncol, syntax ini melambangkan berapa kolom yang digunakan.

Dalam R kita bisa secara default matriks yang kita buat akan turun ke bawah terlebih dahulu yang berarti kita akan memasukkan elemen berdasarkan kolom. Jika kita ingin memasukkan baris terlebih dahulu maka gunakan syntax byrow =TRUE.

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

Matriks Y merupakan matriks dengan ordo 3x3 yang disusun berdasarkan barisnya terlebih dahulu.

1.1.1 Penjumlahan Matriks

Penjumlahan matriks adalah operasi dasar yang dilakukan dengan menggabungkan dua matriks berukuran sama melalui penjumlahan setiap elemen yang bersesuaian. Hasilnya merupakan matriks baru yang setiap elemennya merupakan hasil penjumlahan elemen-elemen yang bersesuaian. \[ (A + B)_{ij} = a_{ij} + b_{ij} \]

X + Y
##      [,1] [,2] [,3]
## [1,]    3    7    8
## [2,]    7    9   15
## [3,]    9   14   19

1.1.2 Pengurangan Matriks

Pengurangan matriks merupakan operasi aljabar linear di mana dua matriks berukuran sama dikurangkan elemen per elemennya. Sama seperti penjumlahan, pengurangan hanya dapat dilakukan pada matriks dengan ukuran identik. \[ (A - B)_{ij} = a_{ij} - b_{ij} \]

X - Y
##      [,1] [,2] [,3]
## [1,]   -1    1    6
## [2,]   -3    1    1
## [3,]   -3   -2    1
Y - X
##      [,1] [,2] [,3]
## [1,]    1   -1   -6
## [2,]    3   -1   -1
## [3,]    3    2   -1

1.1.3 Perkalian Matriks

Perkalian matriks adalah operasi yang menggabungkan dua matriks melalui kombinasi baris dan kolom. Jika matriks pertama memiliki jumlah kolom yang sama dengan jumlah baris matriks kedua, maka perkalian dapat dilakukan. Operasi ini tidak berlaku komutatif, artinya hasil AB tidak selalu sama dengan BA. Perkalian matriks digunakan untuk transformasi linear, sistem persamaan, dan representasi berbagai model matematika. \[ (AB)_{ij} = \sum_{k=1}^n a_{ik} b_{kj} \] Secara umum, perkalian matriks dalam R terbagi menjadi tiga: #### 1. Perkalian Baris dengan Kolom

X %*% Y
##      [,1] [,2] [,3]
## [1,]   64   75   92
## [2,]   77   90  109
## [3,]   96  113  135
Y %*% X
##      [,1] [,2] [,3]
## [1,]   11   29   48
## [2,]   34   82  137
## [3,]   49  118  196

1.1.3.1 2. Perkalian Antar Elemen Matriks

\[ C_{ij} = a_{ij} \times b_{ij}\\ perkalian\ dengan\ skalar\ ,\ (kA)_{ij} = k \cdot a_{ij} \] Misalkan ada matriks X dan Y, jika ingin mengalikan elemen X1 dengan Y1 maka hanya mengunakaan * saja.

X*Y
##      [,1] [,2] [,3]
## [1,]    2   12    7
## [2,]   10   20   56
## [3,]   18   48   90

1.1.3.2 3. Perkalian Skalar

2*Y
##      [,1] [,2] [,3]
## [1,]    4    6    2
## [2,]   10    8   14
## [3,]   12   16   18

1.1.4 Matriks Transpose

Transpose merupakan operasi yang mengubah baris menjadi kolom dan kolom menjadi baris. Transpose digunakan untuk mempermudah analisis simetri suatu matriks, menyusun ulang data, serta dalam perhitungan dot product atau operasi turunan aljabar linear lainnya. \[ X = \begin{bmatrix} x_{11} & x_{12} & x_{13} \\ x_{21} & x_{22} & x_{23} \\ x_{31} & x_{32} & x_{33} \end{bmatrix} ,\quad X^\top = \begin{bmatrix} x_{11} & x_{21} & x_{31} \\ x_{12} & x_{22} & x_{32} \\ x_{13} & x_{23} & x_{33} \end{bmatrix} \]

transX = t(X); transX
##      [,1] [,2] [,3]
## [1,]    1    2    3
## [2,]    4    5    6
## [3,]    7    8   10
transY = t(Y); transY
##      [,1] [,2] [,3]
## [1,]    2    5    6
## [2,]    3    4    8
## [3,]    1    7    9

1.1.5 Invers

Invers matriks adalah kebalikan dari sebuah matriks persegi, yaitu matriks yang apabila dikalikan dengan matriks asal akan menghasilkan matriks identitas. Tidak semua matriks memiliki invers, dan syarat utamanya adalah determinan matriks tidak bernilai nol. Invers banyak digunakan untuk menyelesaikan sistem persamaan linear. \[ A^{-1} = \frac{1}{\det(A)} \cdot \text{adj}(A) \] Invers dari matriks \(\boldsymbol{A}\) dilambangkan dengan \(\boldsymbol{A}^{-1}\), dan memenuhi: \[\boldsymbol{A} \times \boldsymbol{A}^{-1} = \boldsymbol{A}^{-1} \times \boldsymbol{A} = \boldsymbol{I}\] di mana \(\boldsymbol{I}\) adalah matriks identitas.

inv_X = solve(X); inv_X
##            [,1]       [,2] [,3]
## [1,] -0.6666667 -0.6666667    1
## [2,] -1.3333333  3.6666667   -2
## [3,]  1.0000000 -2.0000000    1
inv_Y = solve(Y); inv_Y
##             [,1]        [,2]       [,3]
## [1,]  0.60606061  0.57575758 -0.5151515
## [2,]  0.09090909 -0.36363636  0.2727273
## [3,] -0.48484848 -0.06060606  0.2121212

1.1.6 Matriks Determinan

Determinan matriks adalah nilai skalar tunggal yang dihitung dari unsur-unsur matriks persegi (matriks dengan jumlah baris dan kolom yang sama). Nilai ini dapat memberikan informasi tentang sifat matriks, seperti kemampuannya memiliki invers, dan berfungsi sebagai faktor skala volume dalam transformasi linear. Determinan memberikan informasi penting tentang matriks, seperti kebalikan (invertibilitas) dan sifat transformasi linear. Determinan matriks \(\boldsymbol{A}\) dilambangkan dengan \(\det(\boldsymbol{A})\) atau ∣\(\boldsymbol{A}\)∣. \[ \det(A) = \begin{vmatrix} a & b \\ c & d \end{vmatrix} = ad - bc \\det(A) = \begin{vmatrix} a & b & c \\ d & e & f \\ g & h & i \end{vmatrix} = a(ei - fh) - b(di - fg) + c(dh - eg) \]

det(X)
## [1] -3
det(Y)
## [1] -33

1.2 Memanggil Komponen Matriks

A <- matrix(22:40, nrow=4, ncol=5) ; A
## Warning in matrix(22:40, nrow = 4, ncol = 5): data length [19] is not a
## sub-multiple or multiple of the number of rows [4]
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   22   26   30   34   38
## [2,]   23   27   31   35   39
## [3,]   24   28   32   36   40
## [4,]   25   29   33   37   22

Pemanggilan entri matriks di R dapat dilakukan sebagai berikut: - Panggil seluruh entri matriks yang berada di kolom ke-2

A[,2]         # Kolom 2
## [1] 26 27 28 29
  • Panggil seluruh entri matriks yang berada di baris ke-3
A[3,]         # Baris 3
## [1] 24 28 32 36 40
  • Panggil entri matriks yang berada di baris ke-3 dan kolom ke-2
A[3,2]        # Sel(3, 2)
## [1] 28
  • Panggil entri matriks yang berada di baris ke-1 dan kolom- ke-2 serta baris ke-1 kolom ke-3
A[c(1,3),2]   # Sel(1,2) dan sel(3,2) baris ke-3 kolom ke-2 
## [1] 26 28
  • Panggil seluruh entri matriks yang berada di kolom ke-1, 2, dan 3
A[,1:3]       # kolom(1,2,3)
##      [,1] [,2] [,3]
## [1,]   22   26   30
## [2,]   23   27   31
## [3,]   24   28   32
## [4,]   25   29   33
  • Panggil seluruh entri matriks yang berada di baris ke-2, 3, dan 4
A[2:4,]       # baris(2,3,4)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   23   27   31   35   39
## [2,]   24   28   32   36   40
## [3,]   25   29   33   37   22

1.3 EIGEN DAN DEKOMPOSISI

Eigen mengacu pada pasangan nilai dan vektor khusus (eigenvalue dan eigenvector) yang memberikan pemahaman mendalam tentang sifat dasar suatu matriks. Konsep ini penting karena digunakan dalam berbagai metode analisis data. Dekomposisi matriks adalah proses memecah suatu matriks menjadi hasil kali beberapa matriks yang lebih sederhana, sehingga matriks tersebut lebih mudah dianalisis dan diterapkan dalam berbagai bidang seperti komputasi numerik, statistik, maupun machine learning.

1.3.1 Eigen Value dan Eigen Vector

1.3.1.1 Eigen Value

Eigen value adalah nilai skalar yang muncul dalam transformasi linier,eigen value menggambarkan seberapa besar suatu matriks dapat memperbesar atau memperkecil panjang vektor tertentu tanpa mengubah arahnya.

Eigen value sangat berguna dalam analisis data multivariat seperti Principal Component Analysis (PCA) untuk menentukan seberapa besar kontribusi tiap komponen utama. \[ A v = \lambda v \] untuk mencari eigen value, digunakan rumus :

\[ \det(A - \lambda I) = 0 \]

  • Mencari Eigen Value saja
eigX = eigen(X); eigX 
## eigen() decomposition
## $values
## [1] 16.7074933 -0.9057402  0.1982469
## 
## $vectors
##            [,1]       [,2]       [,3]
## [1,] -0.4524587 -0.9369032  0.1832951
## [2,] -0.5545326 -0.1249770 -0.8624301
## [3,] -0.6984087  0.3264860  0.4718233
eigY = eigen(Y); eigY
## eigen() decomposition
## $values
## [1] 15.816464 -1.909260  1.092797
## 
## $vectors
##            [,1]       [,2]        [,3]
## [1,] -0.1795517  0.5357058 -0.82409900
## [2,] -0.5565239 -0.7939282  0.06150967
## [3,] -0.8111980  0.2875714  0.56309627

1.3.1.2 Eigen Vector

Eigen vektor merupakan vektor khusus yang arahnya tidak berubah ketika dikalikan dengan suatu matriks, hanya panjangnya yang bertambah atau berkurang sesuai dengan eigen value yang terkait. Eigen vector banyak digunakan dalam PCA atau Factor Analysis untuk menentukan arah atau sumbu baru yang mewakili variasi terbesar pada data.

  • Mencari Eigen Vector saja
eigvecX = eigX$vectors; eigvecX
##            [,1]       [,2]       [,3]
## [1,] -0.4524587 -0.9369032  0.1832951
## [2,] -0.5545326 -0.1249770 -0.8624301
## [3,] -0.6984087  0.3264860  0.4718233
eigvecY = eigY$vectors; eigvecY
##            [,1]       [,2]        [,3]
## [1,] -0.1795517  0.5357058 -0.82409900
## [2,] -0.5565239 -0.7939282  0.06150967
## [3,] -0.8111980  0.2875714  0.56309627
  • Mencari Eigen Value dan Eigen Vector
eigX = eigen(X); eigX 
## eigen() decomposition
## $values
## [1] 16.7074933 -0.9057402  0.1982469
## 
## $vectors
##            [,1]       [,2]       [,3]
## [1,] -0.4524587 -0.9369032  0.1832951
## [2,] -0.5545326 -0.1249770 -0.8624301
## [3,] -0.6984087  0.3264860  0.4718233
eigY = eigen(Y); eigY
## eigen() decomposition
## $values
## [1] 15.816464 -1.909260  1.092797
## 
## $vectors
##            [,1]       [,2]        [,3]
## [1,] -0.1795517  0.5357058 -0.82409900
## [2,] -0.5565239 -0.7939282  0.06150967
## [3,] -0.8111980  0.2875714  0.56309627

1.3.2 Dekomposisi singular value (SVD)

Dekomposisi singular value (SVD) merupakan teknik pemfaktoran matriks menjadi tiga matriks (U, Σ, dan Vᵀ), yang banyak dimanfaatkan untuk kompresi data, pengenalan pola, atau mereduksi dimensi pada data besar.

  • Langkah-langkah dan contoh: Buat Matriks a terlebih dahulu yaitu: \[ \boldsymbol{a} = \begin{bmatrix} 2 & 5 & -1 \\ -4 & 3 & 6 \\ -7 & -2 & 4 \\ 1 & -3 & 8 \end{bmatrix} \]
a <- matrix(c(2,5,-1,-4,3,6,7,-2,4,1,-3,8), 4, 3, byrow=TRUE)
a
##      [,1] [,2] [,3]
## [1,]    2    5   -1
## [2,]   -4    3    6
## [3,]    7   -2    4
## [4,]    1   -3    8
  • Mencari SVD dari matriks a
svd_result <- svd(a)
singular_value <- svd_result$d ; singular_value
## [1] 11.213495  8.588523  5.873227
  • Mencari matriks U, untuk n < m
U <- svd_result$u ; U 
##            [,1]       [,2]       [,3]
## [1,]  0.1627455 -0.0335601 -0.8779175
## [2,] -0.3229368  0.7764528 -0.3147144
## [3,] -0.5437180 -0.6201328 -0.3167235
## [4,] -0.7573615  0.1069112  0.1729214
  • Mencari matriks V, untuk m < n
V <- svd_result$v ; V
##            [,1]       [,2]       [,3]
## [1,] -0.2627325 -0.8624242 -0.4326617
## [2,]  0.2857662  0.3587450 -0.8886167
## [3,] -0.9215798  0.3571085 -0.1521977

1.4 Matriks Jarak

Matriks jarak merupakan tabel yang menyajikan nilai jarak antar setiap pasangan objek dalam suatu dataset, sehingga dapat digunakan untuk melihat tingkat kedekatan, kesamaan, maupun perbedaan antar objek pada ruang data.Sebelum membahas perhitungan berbagai jenis matriks jarak, terlebih dahulu kita akan menyiapkan sebuah dataset.

Pada kasus ini, kita akan menggunakan random sampling dari dataset bawaan. Proses ini dilakukan agar analisis lebih fleksibel dan tidak selalu menggunakan data penuh.

library(factoextra) # Library untuk memvisualisasikan jarak antar data
set.seed(987) #Menentukan seed agar hasil sampling konsisten
ss <- sample(1:50, 15) # ambil 15 data secara acak dari 50 observasi
df <- USArrests[ss, ]
# Melakukan standardisasi data (penting bila skala antar variabel berbeda)
df.scaled <- scale(df) 
df.scaled
##                    Murder     Assault   UrbanPop        Rape
## Washington    -0.87419078 -0.41645232  0.5587028  0.74899841
## Missouri       0.29036177 -0.02229573  0.2762126  1.03235216
## New Hampshire -1.31672075 -1.46753657 -1.0420749 -1.61700540
## New York       0.77947384  0.88545886  1.7828270  0.73483072
## Virginia       0.17390651 -0.28506679 -0.3829312 -0.03022440
## Minnesota     -1.17697444 -1.28837449 -0.1004410 -0.85195027
## Iowa          -1.29342970 -1.47948071 -0.9479115 -1.36198702
## Illinois       0.61643648  0.82573816  1.5003368  0.43730929
## Idaho         -1.20026550 -0.71505580 -1.2304017 -0.95112409
## Louisiana      1.78098903  0.82573816 -0.1004410  0.18229091
## Alabama        1.26858591  0.67046435 -0.8537481  0.04061404
## Kentucky       0.45339913 -0.84644133 -1.4187285 -0.65360265
## Arizona        0.08074231  1.36322442  1.2178466  1.42904741
## Delaware      -0.43166081  0.69435263  0.4645394 -0.72444109
## New Mexico     0.84934699  1.25572717  0.2762126  1.58489197
## attr(,"scaled:center")
##     Murder    Assault   UrbanPop       Rape 
##   7.753333 179.866667  67.066667  20.913333 
## attr(,"scaled:scale")
##    Murder   Assault  UrbanPop      Rape 
##  4.293495 83.723070 10.619838  7.058315

1.4.1 Jarak Euclidean

Jarak Euclidean adalah ukuran jarak yang paling umum digunakan untuk menghitung seberapa jauh dua titik dalam ruang Euclidean. Jarak Euclidean merupakan ukuran jarak lurus terpendek yang menghubungkan dua titik dalam ruang, layaknya jarak yang diukur menggunakan penggaris, dan banyak diterapkan dalam bidang geometri maupun machine learning.

Jarak Euclidean umum dipakai dalam K-Means Clustering, Nearest Neighbor, dan visualisasi data karena intuitif dan mudah dipahami.

\[\boldsymbol{d} = \sqrt{(q_1 - p_1)^2 + (q_2 - p_2)^2 +...+(q_n - p_n)^2}\]

Contoh : Mengukur kemiripan preferensi film antar pengguna dalam sistem rekomendasi, serta pada algoritma clustering (seperti K-Means) untuk mengelompokkan data berdasarkan kedekatan antar titik.

1.4.2 Jarak Chebyshev

Jarak Chebyshev adalah ukuran jarak antara dua titik dalam ruang yang dihitung sebagai selisih terbesar (nilai mutlak) dari masing-masing koordinatnya. Dengan kata lain, jarak ini menunjukkan berapa langkah minimum yang dibutuhkan untuk bergerak dalam arah horizontal, vertikal, atau diagonal agar mencapai titik lain.

Jarak Chebyshev sering digunakan pada optimasi jalur di grid, perhitungan kedekatan dalam ruang diskrit, atau untuk membatasi deviasi maksimum antar variabel dalam analisis data.

\[\boldsymbol{d = max(|q_1-p_1|, |q_2-p_2|,..., |q_n-p_n|)}\]

Contoh : Mengukur jarak antar kota pada peta grid sederhana dalam sistem navigasi, serta dipakai dalam game strategi berbasis kotak (grid-based strategy games) untuk menentukan pergerakan unit.

1.4.3 Jarak Manhattan

Jarak Manhattan (city-block distance) adalah ukuran jarak yang diperoleh dengan menjumlahkan selisih absolut antar koordinat. Metode ini sering digunakan pada data berbentuk diskrit atau struktur grid, seperti jalan kota atau papan permainan.

\[\boldsymbol{d}_{ij}=\sum_{l=1}^{p} \lvert x_{li}-x_{lj} \rvert\]

Contoh aplikasi : Menghitung jarak tempuh taksi dalam kota dengan pola jalan berbentuk grid serta menentukan lintasan terpendek kurir pengiriman pada kawasan perkotaan yang teratur jalannya.

1.4.4 Jarak Mahalanobis

Jarak Mahalanobis adalah ukuran jarak antara dua titik yang mempertimbangkan korelasi antar variabel dalam data. Tidak seperti jarak Euclidean atau Manhattan yang hanya mengukur perbedaan langsung antar koordinat, jarak Mahalanobis memperhitungkan bentuk distribusi data karena ia menggunakan matriks kovarians yang berisi informasi tentang skala (varians) dan hubungan antar variabel (kovarians).

Berbeda dengan jarak Euclidean yang menganggap semua dimensi independen dan berskala sama, jarak Mahalanobis mengukur jarak dalam satuan standar deviasi sepanjang sumbu principal dari distribusi.

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

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

Contoh : Mengidentifikasi dokumen palsu dalam analisis forensik dengan mendeteksi pola fitur yang menyimpang serta memantau kualitas sensor di sistem IoT untuk menemukan data yang tidak konsisten dengan distribusi normalnya.

library(StatMatch)
dist.mah <- mahalanobis.dist(df.scaled); dist.mah
##               Washington Missouri New Hampshire  New York Virginia Minnesota
## Washington      0.000000 1.391561     2.7681746 2.9646029 2.077788  1.969342
## Missouri        1.391561 0.000000     2.9442625 2.7367692 1.426448  2.282130
## New Hampshire   2.768175 2.944263     0.0000000 3.1813281 1.837486  1.381168
## New York        2.964603 2.736769     3.1813281 0.0000000 2.472299  2.449910
## Virginia        2.077788 1.426448     1.8374861 2.4722992 0.000000  1.757724
## Minnesota       1.969342 2.282130     1.3811684 2.4499097 1.757724  0.000000
## Iowa            2.404300 2.593198     0.4311868 3.0931327 1.614645  1.096876
## Illinois        2.966345 2.801109     2.8434321 0.5486707 2.294777  2.323277
## Idaho           2.930180 3.196034     1.8528228 4.0514037 2.321421  2.769682
## Louisiana       3.849330 2.923615     3.0995297 2.5754339 1.966634  3.253944
## Alabama         3.714903 2.950470     2.8976602 3.4627573 1.904616  3.462809
## Kentucky        3.180569 2.295660     2.2821285 3.3971966 1.305240  2.540991
## Arizona         2.317103 2.650411     3.3742785 3.0550818 2.655587  3.262177
## Delaware        4.003370 4.260989     2.7619437 3.2706430 3.268832  3.370946
## New Mexico      2.559941 2.139745     3.5468376 3.5570411 2.235503  3.574727
##                    Iowa  Illinois    Idaho Louisiana  Alabama Kentucky  Arizona
## Washington    2.4042998 2.9663446 2.930180  3.849330 3.714903 3.180569 2.317103
## Missouri      2.5931978 2.8011087 3.196034  2.923615 2.950470 2.295660 2.650411
## New Hampshire 0.4311868 2.8434321 1.852823  3.099530 2.897660 2.282128 3.374279
## New York      3.0931327 0.5486707 4.051404  2.575434 3.462757 3.397197 3.055082
## Virginia      1.6146452 2.2947767 2.321421  1.966634 1.904616 1.305240 2.655587
## Minnesota     1.0968756 2.3232769 2.769682  3.253944 3.462809 2.540991 3.262177
## Iowa          0.0000000 2.8112692 1.908218  3.109979 2.928878 2.143999 3.258598
## Illinois      2.8112692 0.0000000 3.652250  2.374971 3.143011 3.241928 2.819825
## Idaho         1.9082179 3.6522499 0.000000  3.563058 2.592473 2.896820 2.629911
## Louisiana     3.1099787 2.3749710 3.563058  0.000000 1.490176 1.966751 3.584279
## Alabama       2.9288784 3.1430110 2.592473  1.490176 0.000000 1.912314 3.111864
## Kentucky      2.1439991 3.2419282 2.896820  1.966751 1.912314 0.000000 3.849622
## Arizona       3.2585981 2.8198247 2.629911  3.584279 3.111864 3.849622 0.000000
## Delaware      3.0141888 2.7350711 2.580083  3.453475 3.165780 4.070603 2.784678
## New Mexico    3.3752547 3.3824395 2.672078  3.054035 2.289059 3.066682 1.625440
##               Delaware New Mexico
## Washington    4.003370   2.559941
## Missouri      4.260989   2.139745
## New Hampshire 2.761944   3.546838
## New York      3.270643   3.557041
## Virginia      3.268832   2.235503
## Minnesota     3.370946   3.574727
## Iowa          3.014189   3.375255
## Illinois      2.735071   3.382439
## Idaho         2.580083   2.672078
## Louisiana     3.453475   3.054035
## Alabama       3.165780   2.289059
## Kentucky      4.070603   3.066682
## Arizona       2.784678   1.625440
## Delaware      0.000000   3.651082
## New Mexico    3.651082   0.000000
dist.mah_matrix <- as.matrix(dist.mah) ; dist.mah_matrix
##               Washington Missouri New Hampshire  New York Virginia Minnesota
## Washington      0.000000 1.391561     2.7681746 2.9646029 2.077788  1.969342
## Missouri        1.391561 0.000000     2.9442625 2.7367692 1.426448  2.282130
## New Hampshire   2.768175 2.944263     0.0000000 3.1813281 1.837486  1.381168
## New York        2.964603 2.736769     3.1813281 0.0000000 2.472299  2.449910
## Virginia        2.077788 1.426448     1.8374861 2.4722992 0.000000  1.757724
## Minnesota       1.969342 2.282130     1.3811684 2.4499097 1.757724  0.000000
## Iowa            2.404300 2.593198     0.4311868 3.0931327 1.614645  1.096876
## Illinois        2.966345 2.801109     2.8434321 0.5486707 2.294777  2.323277
## Idaho           2.930180 3.196034     1.8528228 4.0514037 2.321421  2.769682
## Louisiana       3.849330 2.923615     3.0995297 2.5754339 1.966634  3.253944
## Alabama         3.714903 2.950470     2.8976602 3.4627573 1.904616  3.462809
## Kentucky        3.180569 2.295660     2.2821285 3.3971966 1.305240  2.540991
## Arizona         2.317103 2.650411     3.3742785 3.0550818 2.655587  3.262177
## Delaware        4.003370 4.260989     2.7619437 3.2706430 3.268832  3.370946
## New Mexico      2.559941 2.139745     3.5468376 3.5570411 2.235503  3.574727
##                    Iowa  Illinois    Idaho Louisiana  Alabama Kentucky  Arizona
## Washington    2.4042998 2.9663446 2.930180  3.849330 3.714903 3.180569 2.317103
## Missouri      2.5931978 2.8011087 3.196034  2.923615 2.950470 2.295660 2.650411
## New Hampshire 0.4311868 2.8434321 1.852823  3.099530 2.897660 2.282128 3.374279
## New York      3.0931327 0.5486707 4.051404  2.575434 3.462757 3.397197 3.055082
## Virginia      1.6146452 2.2947767 2.321421  1.966634 1.904616 1.305240 2.655587
## Minnesota     1.0968756 2.3232769 2.769682  3.253944 3.462809 2.540991 3.262177
## Iowa          0.0000000 2.8112692 1.908218  3.109979 2.928878 2.143999 3.258598
## Illinois      2.8112692 0.0000000 3.652250  2.374971 3.143011 3.241928 2.819825
## Idaho         1.9082179 3.6522499 0.000000  3.563058 2.592473 2.896820 2.629911
## Louisiana     3.1099787 2.3749710 3.563058  0.000000 1.490176 1.966751 3.584279
## Alabama       2.9288784 3.1430110 2.592473  1.490176 0.000000 1.912314 3.111864
## Kentucky      2.1439991 3.2419282 2.896820  1.966751 1.912314 0.000000 3.849622
## Arizona       3.2585981 2.8198247 2.629911  3.584279 3.111864 3.849622 0.000000
## Delaware      3.0141888 2.7350711 2.580083  3.453475 3.165780 4.070603 2.784678
## New Mexico    3.3752547 3.3824395 2.672078  3.054035 2.289059 3.066682 1.625440
##               Delaware New Mexico
## Washington    4.003370   2.559941
## Missouri      4.260989   2.139745
## New Hampshire 2.761944   3.546838
## New York      3.270643   3.557041
## Virginia      3.268832   2.235503
## Minnesota     3.370946   3.574727
## Iowa          3.014189   3.375255
## Illinois      2.735071   3.382439
## Idaho         2.580083   2.672078
## Louisiana     3.453475   3.054035
## Alabama       3.165780   2.289059
## Kentucky      4.070603   3.066682
## Arizona       2.784678   1.625440
## Delaware      0.000000   3.651082
## New Mexico    3.651082   0.000000

1.4.5 Jarak Minkowski

Jarak Minkowski merupakan bentuk umum yang mencakup beberapa ukuran. jarak lain sebagai kasus khusus, seperti jarak Manhattan, jarak Euclidean, dan jarak Chebyshev. Jarak Minkowski bisa menyesuaikan sesuai kebutuhan analisis, tergantung nilai \(P\) yang dipilih. \[ d_{\text{Minkowski}}(x,y;q) = \left( \sum_{i=1}^p |x_i - y_i|^q \right)^{\frac{1}{q}} \] Contoh : Digunakan dalam algoritma K-Nearest Neighbors untuk mengukur kesamaan antar data dengan memilih nilai \(p\) yang sesuai, serta dalam pengenalan pola gambar untuk menyesuaikan sensitivitas jarak terhadap perbedaan fitur tertentu.

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

1.5 MATRIKS STATISTIK

Matriks statistik adalah susunan data dalam bentuk baris dan kolom yang memudahkan analisis statistik multivariat serta pemahaman pola dan hubungan antar variabel dalam suatu dataset.

1.5.1 Vektor Rata-rata

Vektor rata-rata merupakan vektor yang berisi nilai rata-rata dari masing-masing variabel dalam suatu dataset multivariat. Jika suatu data memiliki \(p\) variabel dan \(n\) pengamatan, maka vektor rata-rata terdiri dari \(p\) elemen, di mana setiap elemen mempresentasikan rata-rata dari satu variabel.

Semisal kita mempunyai dataset sebagai berikut :

# input data kucing
BB = c(8.5, 9.3, 7.8, 10.2, 11.5, 12.1, 13.0, 9.7, 10.8, 11.2)
PM = c(55, 60, 58, 62, 65, 70, 68, 64, 59, 66)
RTB = c(115, 120, 125, 130, 135, 140, 128, 132, 138, 126)
cat = as.matrix(cbind(BB,PM,RTB)); cat
##         BB PM RTB
##  [1,]  8.5 55 115
##  [2,]  9.3 60 120
##  [3,]  7.8 58 125
##  [4,] 10.2 62 130
##  [5,] 11.5 65 135
##  [6,] 12.1 70 140
##  [7,] 13.0 68 128
##  [8,]  9.7 64 132
##  [9,] 10.8 59 138
## [10,] 11.2 66 126

1.5.2 Matriks Rata-rata

Matriks rata-rata merupakan matriks yang dibentuk dengan menyalin vektor rata-rata ke seluruh baris sehingga ukurannya sama dengan matriks data asli. Setiap baris dalam matriks ini identik karena berisi rata-rata setiap variabel. Fungsinya adalah untuk melakukan pemusatan data (centering) dengan mengurangkan matriks tersebut dari matriks data, yang menjadi langkah penting dalam menghitung kovarians, korelasi, serta dalam analisis multivariat seperti PCA dan analisis faktor.

vecMeans = as.matrix(colMeans(cat)); vecMeans
##       [,1]
## BB   10.41
## PM   62.70
## RTB 128.90
vecRata = matrix(c(mean(BB), mean(PM), mean(RTB)), nrow=3, ncol=1); vecRata
##        [,1]
## [1,]  10.41
## [2,]  62.70
## [3,] 128.90

1.5.3 Matriks Kovarians

Matriks kovarians menggambarkan hubungan variabilitas antar variabel. Setiap elemen menunjukkan kovarians antara dua variabel. Matriks ini adalah dasar analisis multivariat seperti PCA, DFA, dan MANOVA.

varkov = cov(cat); varkov
##           BB        PM       RTB
## BB  2.641000  6.547778  7.612222
## PM  6.547778 22.455556 22.188889
## RTB 7.612222 22.188889 61.211111

1.5.4 Matriks Korelasi

Matriks korelasi merupakana matriks berukuran \(p\) × \(p\) yang menampilkan koefisien korelasi antar variabel dalam dataset. Nilai diagonalnya selalu 1, sedangkan elemen lainnya menunjukkan kekuatan dan arah hubungan antar variabel dengan rentang -1 hingga 1.

korel = cor(cat); korel
##            BB        PM       RTB
## BB  1.0000000 0.8502523 0.5987040
## PM  0.8502523 1.0000000 0.5984922
## RTB 0.5987040 0.5984922 1.0000000

1.5.5 Matriks Standardisasi

Matriks standardisasi adalah matriks yang diperoleh dengan menstandarkan setiap variabel dalam suatu dataset, yaitu dengan mengurangi nilai variabel dengan rata-ratanya lalu membaginya dengan simpangan baku. Matriks ini penting untuk memastikan semua variabel memiliki skala yang sama sebelum analisis multivariat, sehingga tidak ada variabel dengan skala besar yang mendominasi hasil analisis.

n = nrow(cat);n
## [1] 10
u = matrix(1,n,1); u #baris, n=banyaknya baris, kolom jadi ordonya 1x1
##       [,1]
##  [1,]    1
##  [2,]    1
##  [3,]    1
##  [4,]    1
##  [5,]    1
##  [6,]    1
##  [7,]    1
##  [8,]    1
##  [9,]    1
## [10,]    1
xbar = cbind((1/n)*t(u)%*%cat); xbar #cbind = collumn bind
##         BB   PM   RTB
## [1,] 10.41 62.7 128.9
D = cat - u %*% xbar; D
##          BB   PM   RTB
##  [1,] -1.91 -7.7 -13.9
##  [2,] -1.11 -2.7  -8.9
##  [3,] -2.61 -4.7  -3.9
##  [4,] -0.21 -0.7   1.1
##  [5,]  1.09  2.3   6.1
##  [6,]  1.69  7.3  11.1
##  [7,]  2.59  5.3  -0.9
##  [8,] -0.71  1.3   3.1
##  [9,]  0.39 -3.7   9.1
## [10,]  0.79  3.3  -2.9
S = (1/(n-1))*t(D)%*%D; S
##           BB        PM       RTB
## BB  2.641000  6.547778  7.612222
## PM  6.547778 22.455556 22.188889
## RTB 7.612222 22.188889 61.211111
Ds = diag(sqrt(diag(S))); Ds
##          [,1]     [,2]     [,3]
## [1,] 1.625115 0.000000 0.000000
## [2,] 0.000000 4.738729 0.000000
## [3,] 0.000000 0.000000 7.823753
R = solve(Ds) %*% S %*% solve(Ds); R
##           [,1]      [,2]      [,3]
## [1,] 1.0000000 0.8502523 0.5987040
## [2,] 0.8502523 1.0000000 0.5984922
## [3,] 0.5987040 0.5984922 1.0000000