💡 Dekomposisi Matriks dan Konsep Jarak
Penjelasan, Rumus, Contoh, Implementasi dari Praktikum 1
Disusun oleh Siti Qanita Nailah
Tanggal: 2025-09-11
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} \]
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.
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
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
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
\[ 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
2*Y
## [,1] [,2] [,3]
## [1,] 4 6 2
## [2,] 10 8 14
## [3,] 12 16 18
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
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
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
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
A[3,] # Baris 3
## [1] 24 28 32 36 40
A[3,2] # Sel(3, 2)
## [1] 28
A[c(1,3),2] # Sel(1,2) dan sel(3,2) baris ke-3 kolom ke-2
## [1] 26 28
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
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
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.
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 \]
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
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.
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
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
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.
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
svd_result <- svd(a)
singular_value <- svd_result$d ; singular_value
## [1] 11.213495 8.588523 5.873227
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
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
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
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.
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.
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.
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
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
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.
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
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
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
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
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