💡 Dekomposisi Matriks dan Konsep Jarak

Penjelasan, Rumus, Contoh, Implementasi dari Praktikum 1

Disusun oleh Nurul Syfa Mauludina

Tanggal: 2025-09-11

1 MATRIKS

Matriks adalah angka-angka yang disusun sedemikian sehingga menyerupai persegipanjang berdasarkan urutan baris dan kolom. Angka-angka yang menyusun matriks disebut sebagai unsur atau elemen. Umumnya, matriks berada di dalam tanda kurung dan dinyatakan sebagai huruf kapital. Sementara itu, unsur atau elemen dinyatakan sebagai huruf kecil serta memiliki indeks. Indeks tersebut menyatakan letak baris dan kolom unsur. Baris adalah susunan angka yang arahnya horizontal atau mendatar. Sementara kolom adalah susunan angka yang arahnya vertikal. Perhatikan contoh matriks berikut.Berikut contoh matriks berukuran 2 x 2: \[ A = \begin{bmatrix} 3 & 5 \\ 6 & 8 \end{bmatrix}\]

1.1 OPERASI MATRIKS

Operasi matriks mencakup penjumlahan, pengurangan, perkalian(skalar/antar matriks), serta transpose.Operasi ini penting untuk memanipulasi data multivariat yang biasanyaberbentuk tabel.

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

Matriks A adalah matriks berordo 3x3, artinya memiliki 3 baris dan 3 kolom. Pada sintaks R, nrow digunakan untuk menentukan jumlah baris yang diinginkan, sedangkan ncol untuk menentukan jumlah kolom. Secara default, R akan mengisi elemen matriks secara kolom terlebih dahulu (dari atas ke bawah). Jika ingin mengisi elemen berdasarkan baris terlebih dahulu, gunakan argumen byrow = TRUE.

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

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

1.1.1 Penjumlahan Matriks

Penjumlahan matriks merupakan operasi dasar yang dilakukan dengan menambahkan dua matriks yang memiliki ukuran sama, di mana setiap elemen pada posisi yang sama dijumlahkan. Hasil dari operasi ini adalah matriks baru dengan elemen-elemen yang merupakan hasil penjumlahan elemen-elemen seposisi dari kedua matriks tersebut. \[(A + B)_{ij} = a_{ij} + b_{ij}\]

X + Y
##      [,1] [,2] [,3]
## [1,]   16    7   11
## [2,]   13    6   15
## [3,]    9   14   10

1.1.2 Pengurangan Matriks

Pengurangan matriks adalah operasi dalam aljabar linear yang dilakukan dengan mengurangkan elemen-elemen pada dua matriks yang memiliki ukuran sama. Sama seperti penjumlahan matriks, operasi ini hanya bisa dilakukan jika kedua matriks memiliki dimensi yang identik. \[ (A - B)_{ij} = a_{ij} - b_{ij}\]

X - Y
##      [,1] [,2] [,3]
## [1,]    4    1    3
## [2,]    3    4    1
## [3,]    5   -2   -8
Y - X
##      [,1] [,2] [,3]
## [1,]   -4   -1   -3
## [2,]   -3   -4   -1
## [3,]   -5    2    8

1.1.3 Perkalian Matriks

Perkalian matriks adalah operasi yang mengombinasikan dua matriks dengan mengalikan elemen baris dari matriks pertama dengan elemen kolom dari matriks kedua. Perkalian ini hanya dapat dilakukan jika jumlah kolom matriks pertama sama dengan jumlah baris matriks kedua. Operasi ini bersifat tidak komutatif, artinya hasil AB tidak selalu sama dengan BA. Perkalian matriks sering digunakan dalam transformasi linear, penyelesaian sistem persamaan, dan representasi berbagai model matematika. Secara umum, terdapat tiga jenis perkalian matriks dalam R. \[ (AB)_{ij} = \sum_{k=1}^n a_{ik} b_{kj} \]

1.1.3.1 Perkalian Baris dengan Kolom

X %*% Y
##      [,1] [,2] [,3]
## [1,]   94   90  131
## [2,]   89   93  139
## [3,]   74   35   79
Y %*% X
##      [,1] [,2] [,3]
## [1,]  112   63   70
## [2,]  107   67   50
## [3,]  147  102   87

1.1.3.2 Perkalian Antar Elemen Matriks

Misalkan ada matriks X dan Y, jika ingin mengalikan elemen X1 dengan Y1 maka hanya mengunakaan * saja.

X*Y
##      [,1] [,2] [,3]
## [1,]   60   12   28
## [2,]   40    5   56
## [3,]   14   48    9

1.1.3.3 Perkalian Skalar

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

1.1.4 Matriks Transpose

Transpose adalah operasi pada matriks yang menukar posisi baris menjadi kolom dan kolom menjadi baris. Operasi ini berguna untuk menganalisis sifat simetri matriks, merapikan atau mengatur ulang data, serta digunakan dalam perhitungan dot product dan berbagai operasi aljabar linear lainnya.

transX = t(X); transX
##      [,1] [,2] [,3]
## [1,]   10    8    7
## [2,]    4    5    6
## [3,]    7    8    1
transY = t(Y); transY
##      [,1] [,2] [,3]
## [1,]    6    5    2
## [2,]    3    1    8
## [3,]    4    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. 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.29251701 -0.2585034  0.02040816
## [2,] -0.32653061  0.2653061  0.16326531
## [3,] -0.08843537  0.2176871 -0.12244898
inv_Y = solve(Y); inv_Y
##            [,1]        [,2]        [,3]
## [1,]  0.2107623 -0.02242152 -0.07623318
## [2,]  0.1390135 -0.20627803  0.09865471
## [3,] -0.1704036  0.18834081  0.04035874

1.1.6 Determinan Matriks

Determinan matriks adalah sebuah nilai skalar yang dihitung dari elemen-elemen matriks persegi, yaitu matriks yang memiliki jumlah baris dan kolom sama. Nilai ini memberikan informasi penting mengenai sifat matriks, seperti apakah matriks tersebut dapat diinvers atau tidak, serta berperan sebagai faktor skala dalam transformasi linear. Determinan membantu memahami karakteristik matriks, termasuk invertibilitas dan perilaku transformasinya terhadap ruang.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)\]

Contoh :

det(X)
## [1] -147
det(Y)
## [1] -223

1.2 EIGEN DAN DEKOMPOSISI

1.2.1 Eigen Value dan Eigen Vector

  • Mencari Eigen Value dan Eigen Vector
eigX = eigen(X); eigX 
## eigen() decomposition
## $values
## [1] 18.965820 -4.637242  1.671421
## 
## $vectors
##            [,1]       [,2]       [,3]
## [1,] -0.6343697 -0.2728951 -0.6047536
## [2,] -0.6244251 -0.4701917  0.7388204
## [3,] -0.4557064  0.8393140  0.2973508
eigY = eigen(Y); eigY
## eigen() decomposition
## $values
## [1] 15.734832  3.899540 -3.634372
## 
## $vectors
##            [,1]       [,2]        [,3]
## [1,] -0.4565596 -0.8318945  0.04397517
## [2,] -0.5034181 -0.1351721 -0.84718692
## [3,] -0.7335691  0.5382193  0.52947191

1.2.1.1 Eigen Value

Eigen value adalah bilangan skalar yang dihasilkan dari suatu transformasi linear dan menunjukkan seberapa besar sebuah matriks dapat meregangkan atau mengecilkan panjang vektor tertentu tanpa mengubah arah vektor tersebut. Eigen value sangat penting dalam analisis data multivariat, seperti pada Principal Component Analysis (PCA), untuk mengetahui besarnya kontribusi masing-masing komponen utama terhadap variasi data.

Fokus pada mencari Eigen Value saja.

eigvalX = eigX$values; eigvalX
## [1] 18.965820 -4.637242  1.671421
eigvalY = eigY$values; eigvalY
## [1] 15.734832  3.899540 -3.634372

1.2.1.2 Eigen Vector

Eigen vector adalah vektor khusus yang arah atau orientasinya tetap saat dikalikan dengan suatu matriks, sementara panjangnya berubah sesuai dengan eigen value yang bersesuaian. Eigen vector banyak dimanfaatkan dalam Principal Component Analysis (PCA) maupun Analisis Faktor untuk menentukan sumbu atau arah baru yang merepresentasikan variasi terbesar dalam data.

Fokus pada mencari Eigen Vector saja.

eigvecX = eigX$vectors; eigvecX
##            [,1]       [,2]       [,3]
## [1,] -0.6343697 -0.2728951 -0.6047536
## [2,] -0.6244251 -0.4701917  0.7388204
## [3,] -0.4557064  0.8393140  0.2973508
eigvecY = eigY$vectors; eigvecY
##            [,1]       [,2]        [,3]
## [1,] -0.4565596 -0.8318945  0.04397517
## [2,] -0.5034181 -0.1351721 -0.84718692
## [3,] -0.7335691  0.5382193  0.52947191

1.2.2 Dekomposisi singular value (SVD)

Singular Value Decomposition (SVD) adalah metode dekomposisi matriks yang memecah sebuah matriks menjadi tiga matriks komponen, yaitu (U, Σ, dan Vᵀ) dan Teknik ini banyak digunakan untuk mereduksi dimensi data berukuran besar, melakukan kompresi data, serta membantu dalam pengenalan pola dan analisis struktur data.

  • 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(4,6,-1,-3,3,6,8,-2,4,1,-2,8),5,2, byrow=TRUE)
## Warning in matrix(c(4, 6, -1, -3, 3, 6, 8, -2, 4, 1, -2, 8), 5, 2, byrow =
## TRUE): data length [12] is not a sub-multiple or multiple of the number of rows
## [5]
a
##      [,1] [,2]
## [1,]    4    6
## [2,]   -1   -3
## [3,]    3    6
## [4,]    8   -2
## [5,]    4    1
  • Mencari SVD dari matriks a
svd_result <- svd(a)
singular_value <- svd_result$d ; singular_value
## [1] 11.422867  7.843349
  • Mencari matriks U, untuk n < m
U <- svd_result$u ; U 
##            [,1]       [,2]
## [1,] -0.5941923  0.3105134
## [2,]  0.2267879 -0.2312211
## [3,] -0.5238841  0.3864778
## [4,] -0.4581458 -0.8125060
## [5,] -0.3333927 -0.2014626
  • Mencari matriks V, untuk m < n
V <- svd_result$v ; V
##            [,1]       [,2]
## [1,] -0.8031212 -0.5958157
## [2,] -0.5958157  0.8031212

1.3 MATRIKS JARAK DAN UKURAN

1.3.1 Matriks Jarak

Matriks jarak adalah matriks yang memuat nilai jarak antara setiap pasangan objek dalam suatu dataset, sehingga memudahkan analisis kedekatan, kesamaan, maupun perbedaan antar objek dalam ruang data.

Sebelum melakukan perhitungan berbagai jenis matriks jarak, terlebih dahulu kita akan menyiapkan sebuah dataset. Pada contoh ini, kita menggunakan teknik random sampling dari dataset bawaan agar analisis lebih fleksibel dan tidak terbatas pada penggunaan keseluruhan data.

library(factoextra) # Menggunakan library untuk visualisasi konsep jarak
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.3.2 Jarak Euclidean

Jarak Euclidean adalah ukuran jarak terpendek secara garis lurus antara dua titik dalam suatu ruang, seperti jarak yang diukur menggunakan penggaris. Ukuran jarak ini banyak digunakan dalam geometri dan machine learning.

Metode ini sering diterapkan pada algoritma seperti K-Means Clustering, Nearest Neighbor, serta visualisasi data karena sifatnya yang intuitif dan mudah dipahami.

\[\boldsymbol{d} = \sqrt{(q_1 - p_1)^2 + (q_2 - p_2)^2 +...+(q_n - p_n)^2}\] Contoh aplikasi : Membandingkan pola irama jantung antar pasien untuk analisis medis serta digunakan dalam pemrosesan citra guna mengidentifikasi tepi atau batas objek pada gambar.

1.3.3 Jarak Chebyshev

Jarak Chebyshev adalah ukuran jarak yang dihitung berdasarkan selisih terbesar antara koordinat dua titik.

Metode ini sering dimanfaatkan dalam optimasi rute pada sistem berbasis grid, pengukuran kedekatan pada ruang diskrit, serta untuk membatasi penyimpangan maksimum antar variabel dalam analisis data.

\[\boldsymbol{d = max(|q_1-p_1|, |q_2-p_2|,..., |q_n-p_n|)}\] Menentukan jumlah langkah tersingkat bagi bidak raja di papan catur dan merancang jalur pergerakan efisien untuk robot dalam area berbasis grid.

1.3.4 Jarak Manhattan

Jarak Manhattan (city-block distance) menghitung jarak sebagai jumlah nilai mutlak perbedaan antar koordinat. Sering dipakai dalam data diskrit atau grid.

\[\boldsymbol{d}_{ij}=\sum_{l=1}^{p} \lvert x_{li}-x_{lj} \rvert\] Contoh aplikasi : Menentukan rute optimal robot pembersih lantai di pusat perbelanjaan besar dengan sistem koordinat grid serta menganalisis efisiensi distribusi barang di pusat logistik menggunakan jalur konveyor otomatis berbasis titik simpul.

1.3.5 Jarak Mahalanobis

Jarak Mahalanobis mempertimbangkan korelasi antar variabel dan skala data. Cocok untuk mendeteksi outlier multivariat karena memperhitungkan bentuk distribusi data. 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)} \]

Contoh aplikasi : Mengidentifikasi aktivitas keuangan yang berpotensi penipuan pada jaringan perbankan dan menemukan penyimpangan proses pada lini produksi untuk meningkatkan pengendalian mutu.

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.3.6 Jarak Minkowski

Jarak Minkowski merupakan bentuk umum yang mencakup beberapa ukuran jarak lain sebagai kasus khusus, seperti jarak Manhattan, jarak Euclidean, dan jarak Chebyshev. \[ d_{\text{Minkowski}}(x,y;q) = \left( \sum_{i=1}^p |x_i - y_i|^q \right)^{\frac{1}{q}}\]

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

1.4 Contoh dan Implementasi diberikan data dengan 3 variabel dalam bentuk

matriks adalah sebagai berikut

#(5 observasi, 3 variabel)
data <- matrix(c(
  2,4,5,
  3,6,7,
  4,5,8,
  5,9,6,
  2,3,1
), nrow = 5, byrow = TRUE)

colnames(data) <- c("X1", "X2", "X3")
rownames(data) <- paste("Obs", 1:5, sep = "")
data
##      X1 X2 X3
## Obs1  2  4  5
## Obs2  3  6  7
## Obs3  4  5  8
## Obs4  5  9  6
## Obs5  2  3  1

1.5 MATRIKS STATISTIK

1.5.1 Vektor Rata-rata

Vektor rata-rata adalah sebuah vektor yang berisi nilai rata-rata dari setiap variabel dalam sebuah dataset multivariat. Jika suatu data memiliki p variabel dan n pengamatan, maka vektor rata-rata terdiri dari p elemen, di mana setiap elemen mewakili rata-rata satu variabel.

Misal kita mempunyai dataset sebagai berikut :

# input data kadal
BB = c(7.2,10.5,9.7,12.1,7.5,6.9,11.0,2.1,13.7,9.4)
PM = c(63,75,67,74,58,59,86,45,84,70)
RTB = c(112,126,135,124,130,120,133,100,160,128)
lizard = as.matrix(cbind(BB,PM,RTB)); lizard
##         BB PM RTB
##  [1,]  7.2 63 112
##  [2,] 10.5 75 126
##  [3,]  9.7 67 135
##  [4,] 12.1 74 124
##  [5,]  7.5 58 130
##  [6,]  6.9 59 120
##  [7,] 11.0 86 133
##  [8,]  2.1 45 100
##  [9,] 13.7 84 160
## [10,]  9.4 70 128

1.5.2 Matriks Rata-rata

Matriks rata-rata adalah matriks yang dibentuk dengan menyalin vektor rata-rata ke seluruh baris sehingga ukurannya sama dengan matriks data asli. Setiap barisnya identik dan berisi rata-rata setiap variabel. Matriks ini digunakan untuk memusatkan data (centering) dengan cara mengurangkannya dari matriks data, yang penting dalam perhitungan kovarians, korelasi, serta analisis multivariat seperti PCA dan analisis faktor.

vecMeans = as.matrix(colMeans(lizard)); vecMeans
##       [,1]
## BB    9.01
## PM   68.10
## RTB 126.80
vecRata = matrix(c(mean(BB), mean(PM), mean(RTB)), nrow=3, ncol=1); vecRata
##        [,1]
## [1,]   9.01
## [2,]  68.10
## [3,] 126.80

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(lizard); varkov
##           BB        PM       RTB
## BB  10.67878  37.99889  42.86889
## PM  37.99889 156.10000 148.24444
## RTB 42.86889 148.24444 245.73333

1.5.4 Matriks Korelasi

Matriks korelasi adalah 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(lizard); korel
##            BB        PM       RTB
## BB  1.0000000 0.9306978 0.8368535
## PM  0.9306978 1.0000000 0.7569112
## RTB 0.8368535 0.7569112 1.0000000

1.5.5 Matriks Standardisasi

Matriks standardisasi diperoleh dengan menstandarkan data (mengurangkan rata-rata dan membagi 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(lizard);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)%*%lizard); xbar #cbind = collumn bind
##        BB   PM   RTB
## [1,] 9.01 68.1 126.8
D = lizard - u %*% xbar; D
##          BB    PM   RTB
##  [1,] -1.81  -5.1 -14.8
##  [2,]  1.49   6.9  -0.8
##  [3,]  0.69  -1.1   8.2
##  [4,]  3.09   5.9  -2.8
##  [5,] -1.51 -10.1   3.2
##  [6,] -2.11  -9.1  -6.8
##  [7,]  1.99  17.9   6.2
##  [8,] -6.91 -23.1 -26.8
##  [9,]  4.69  15.9  33.2
## [10,]  0.39   1.9   1.2
S = (1/(n-1))*t(D)%*%D; S
##           BB        PM       RTB
## BB  10.67878  37.99889  42.86889
## PM  37.99889 156.10000 148.24444
## RTB 42.86889 148.24444 245.73333
Ds = diag(sqrt(diag(S))); Ds
##         [,1]   [,2]     [,3]
## [1,] 3.26784  0.000  0.00000
## [2,] 0.00000 12.494  0.00000
## [3,] 0.00000  0.000 15.67588
R = solve(Ds) %*% S %*% solve(Ds); R
##           [,1]      [,2]      [,3]
## [1,] 1.0000000 0.9306978 0.8368535
## [2,] 0.9306978 1.0000000 0.7569112
## [3,] 0.8368535 0.7569112 1.0000000