Peran Aljabar Matriks untuk Analisis Data Multivariat

Aljabar matriks berperan penting untuk analisis data multivariat karena digunakan untuk merepresentasikan data dan melakukan berbagai perhitungan statistik yang kompleks secara lebih efisien.

Matriks adalah susunan bilangan, simbol, atau ekspresi yang diatur dalam baris (horizontal) dan kolom (vertikal) dalam suatu jajaran persegi atau persegi panjang, yang kemudian diapit oleh tanda kurung siku. Isi dari matriks disebut entri atau elemen matriks, dan matriks diberi nama dengan huruf kapital.

Contoh Matriks: \[ A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix} \]

Membuat Matriks

A = matrix(c(2,3,4,
             3,4,5,
             4,5,5), nrow = 3, ncol = 3, byrow = TRUE); A
##      [,1] [,2] [,3]
## [1,]    2    3    4
## [2,]    3    4    5
## [3,]    4    5    5
B = matrix(c(2,1,3,
             0,1,4,
             5,2,0), nrow = 3, ncol = 3, byrow = TRUE); B
##      [,1] [,2] [,3]
## [1,]    2    1    3
## [2,]    0    1    4
## [3,]    5    2    0

Operasi Matriks

Operasi matriks adalah operasi aljabar pada matriks yang meliputi penjumlahan, pengurangan, perkalian skalar, dan perkalian antar matriks. Selain itu ada juga operasi khusus pada matriks seperti transpose, determinan dan invers matriks.

Penjumlahan Matriks

Pada operasi penjumlahan dan pengurangan matriks terdapat syarat yang harus dipenuhi yaitu tiap matriks harus memiliki ordo yang sama. \[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \quad B = \begin{bmatrix} e & f \\ g & h \end{bmatrix} \]

\[ A + B = \begin{bmatrix} a+e & b+f \\ c+g & d+h \end{bmatrix} \]

# Penjumlahan
A + B
##      [,1] [,2] [,3]
## [1,]    4    4    7
## [2,]    3    5    9
## [3,]    9    7    5

Pengurangan Matriks

Operasi pengurangan pada matriks bisa dilakukan jika kedua matriks tersebut memiliki ordo yang sama \[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \quad B = \begin{bmatrix} e & f \\ g & h \end{bmatrix} \]

\[ A - B = \begin{bmatrix} a-e & b-f \\ c-g & d-h \end{bmatrix} \]

# Pengurangan
A - B
##      [,1] [,2] [,3]
## [1,]    0    2    1
## [2,]    3    3    1
## [3,]   -1    3    5
B - A
##      [,1] [,2] [,3]
## [1,]    0   -2   -1
## [2,]   -3   -3   -1
## [3,]    1   -3   -5

Perkalian Matriks

Perkalian matriks sendiri proses mengalikan setiap elemen baris pada matriks pertama dengan elemen kolom pada matriks kedua. Hasilnya kemudian dijumlahkan untuk memperoleh hasil akhir perkalian matriks. Operasi perkalian matriks memiliki syarat yaitu jumlah kolom matriks pertama sama dengan jumlah baris matriks kedua. \[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \quad B = \begin{bmatrix} e & f \\ g & h \end{bmatrix} \]

\[ A \times B = \begin{bmatrix} ae + bg & af + bh \\ ce + dg & cf + dh \end{bmatrix} \]

# Perkalian Matriks
A %*% B
##      [,1] [,2] [,3]
## [1,]   24   13   18
## [2,]   31   17   25
## [3,]   33   19   32
B %*% A
##      [,1] [,2] [,3]
## [1,]   19   25   28
## [2,]   19   24   25
## [3,]   16   23   30
# Perkalian Antar Elemen
A*B
##      [,1] [,2] [,3]
## [1,]    4    3   12
## [2,]    0    4   20
## [3,]   20   10    0
# Perkalian Skalar
2*A
##      [,1] [,2] [,3]
## [1,]    4    6    8
## [2,]    6    8   10
## [3,]    8   10   10
2*B
##      [,1] [,2] [,3]
## [1,]    4    2    6
## [2,]    0    2    8
## [3,]   10    4    0

Transpose Matriks

Transpose matriks adalah matriks baru yang dibentuk dengan menukar elemen baris menjadi elemen kolom dan sebaliknya, sehingga baris-baris matriks awal menjadi kolom-kolom pada matriks transposenya. Operasi transpose matriks biasanya dilambangkan dengan notasi \(X^T\). \[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix} \quad \Rightarrow \quad A^{T} = \begin{bmatrix} a & c \\ b & d \end{bmatrix} \]

# Transpose Matriks
transA = t(A); transA
##      [,1] [,2] [,3]
## [1,]    2    3    4
## [2,]    3    4    5
## [3,]    4    5    5
transB = t(B); transB
##      [,1] [,2] [,3]
## [1,]    2    0    5
## [2,]    1    1    2
## [3,]    3    4    0

Invers Matriks

Invers matriks adalah matriks kebalikan dari suatu matriks persegi yang, jika dikalikan dengan matriks aslinya, akan menghasilkan matriks identitas. Invers matriks hanya ada jika determinan matriks tersebut bukan nol, dan dinotasikan dengan \(A^{-1}\). \[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \quad A^{-1} = \frac{1}{ad - bc} \begin{bmatrix} d & -b \\ -c & a \end{bmatrix} \]

# Invers Matriks
inv_A = solve(A); inv_A
##      [,1] [,2] [,3]
## [1,]   -5    5   -1
## [2,]    5   -6    2
## [3,]   -1    2   -1
inv_B = solve(B); inv_B
##            [,1]        [,2]        [,3]
## [1,]  0.7272727 -0.54545455 -0.09090909
## [2,] -1.8181818  1.36363636  0.72727273
## [3,]  0.4545455 -0.09090909 -0.18181818

Determinan Matriks

Determinan matriks adalah nilai skalar tunggal yang dihitung dari elemen-elemen matriks persegi, dan dinotasikan dengan \(det(A)\) \[ A = \begin{bmatrix} a & b & c \\ d & e & f \\ g & h & i \end{bmatrix} \quad \Rightarrow \quad \det(A) = a(ei - fh) - b(di - fg) + c(dh - eg) \]

#Determinan Matriks
det(A)
## [1] 1
det(B)
## [1] -11

Contoh Lain Membuat Matriks & Memanggil Komponen Matriks

# Contoh Lain Membuat Matriks
C <- matrix(21:40, nrow=4, ncol=5) ; C
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   21   25   29   33   37
## [2,]   22   26   30   34   38
## [3,]   23   27   31   35   39
## [4,]   24   28   32   36   40
d <- c(4,7,2,8,5,9,6,3,1,10,12,11); d
##  [1]  4  7  2  8  5  9  6  3  1 10 12 11
D <- matrix(d, nrow=3, ncol=4, byrow=TRUE) ; D
##      [,1] [,2] [,3] [,4]
## [1,]    4    7    2    8
## [2,]    5    9    6    3
## [3,]    1   10   12   11
sel <- c(15,9,27,18)
nama_kolom <- c("C1", "C2")
nama_baris <- c("R1", "R2")
E <- matrix(sel, nrow=2, ncol=2,
            byrow=TRUE, dimnames=list(nama_baris,
                                      nama_kolom)) ; E
##    C1 C2
## R1 15  9
## R2 27 18
# Memanggil Komponen Matriks
C
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   21   25   29   33   37
## [2,]   22   26   30   34   38
## [3,]   23   27   31   35   39
## [4,]   24   28   32   36   40
C[,2]         # Kolom 2
## [1] 25 26 27 28
C[3,]         # Baris 3
## [1] 23 27 31 35 39
C[3,2]        # Sel(3, 2)
## [1] 27
C[c(1,3),2]   # Sel(1,2) dan sel(3,2)
## [1] 25 27
C[,1:3]       # Kolom(1,2,3)
##      [,1] [,2] [,3]
## [1,]   21   25   29
## [2,]   22   26   30
## [3,]   23   27   31
## [4,]   24   28   32
C[2:4,]       # Baris(2,3,4)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   22   26   30   34   38
## [2,]   23   27   31   35   39
## [3,]   24   28   32   36   40

Eigen Value dan Eigen Vector

Dalam Analisis Data Multivariat, Nilai Eigen (Eigen Value) dan Vektor Eigen (Eigen Vector) digunakan untuk mereduksi dimensi data, mengidentifikasi pola utama, dan menyederhanakan representasi data melalui metode seperti Principal Component Analysis (PCA), Factor Analysis, dll.

# Eigen Value dan Eigen Vector
eigA = eigen(A); eigA
## eigen() decomposition
## $values
## [1] 12.00640368 -0.09098442 -0.91541927
## 
## $vectors
##            [,1]       [,2]       [,3]
## [1,] -0.4460107  0.6468343 -0.6186113
## [2,] -0.5883377 -0.7327383 -0.3419844
## [3,] -0.6744874  0.2114236  0.7073661
eigB = eigen(B); eigB
## eigen() decomposition
## $values
## [1]  6.1320789 -3.6267007  0.4946218
## 
## $vectors
##           [,1]       [,2]       [,3]
## [1,] 0.5850579 -0.2759533  0.3787551
## [2,] 0.4985514 -0.6286196 -0.9181974
## [3,] 0.6396513  0.7271087  0.1160092

Eigen Value

Nilai eigen adalah suatu nilai skalar khusus dari matriks persegi yang menunjukkan faktor skala dari vektor eigen ketika sebuah transformasi linear diterapkan. Kata “eigen” sendiri berasal dari bahasa Jerman yang berarti “asli” atau “karakteristik”, sehingga nilai eigen sering juga disebut sebagai nilai karakteristik atau akar karakteristik.

Fungsi Nilai Eigen/Eigen Value dalam Analisis Data Multivariat:

  1. Eigen Value menunjukkan jumlah variasi (informasi) yang dapat dijelaskan oleh satu komponen
  2. Nilai Eigen menjelaskan seberapa besar varians yang ditangkap oleh setiap komponen utama. Nilai eigen yang lebih besar menunjukkan komponen utama yang lebih penting.
# Eigen Value
eigvalA = eigA$values; eigvalA
## [1] 12.00640368 -0.09098442 -0.91541927
eigvalB = eigB$values; eigvalB
## [1]  6.1320789 -3.6267007  0.4946218

Eigen Vector

Vektor eigen adalah vektor bukan nol dari sebuah matriks persegi yang ketika dikalikan dengan matriks tersebut, menghasilkan kelipatan skalar dari vektor itu sendiri, bukan vektor yang berputar atau bergeser arahnya.

Fungsi Eigen Vector dalam Analisis Data Multivariat:

  1. Eigen Vector menunjukkan jumlah variasi (informasi) yang dijelaskan suatu komponen lainnya
  2. Vektor eigen yang sesuai dengan nilai eigen terbesar memberikan arah untuk setiap komponen utama baru yang memproyeksikan data ke ruang dimensi lebih rendah, mengurangi kompleksitas data tanpa kehilangan informasi signifikan.
  3. Vektor eigen menunjukkan kombinasi dari variabel asli yang membentuk komponen utama. Ini membantu memahami hubungan antar variabel asli dalam representasi data baru
# Eigen Vector
eigvecA = eigA$vectors; eigvecA
##            [,1]       [,2]       [,3]
## [1,] -0.4460107  0.6468343 -0.6186113
## [2,] -0.5883377 -0.7327383 -0.3419844
## [3,] -0.6744874  0.2114236  0.7073661
eigvecB = eigA$vectors; eigvecB
##            [,1]       [,2]       [,3]
## [1,] -0.4460107  0.6468343 -0.6186113
## [2,] -0.5883377 -0.7327383 -0.3419844
## [3,] -0.6744874  0.2114236  0.7073661

Dekomposisi Singular Value (SVD)

Dekomposisi nilai singular (Singular Value Decomposition atau SVD) adalah teknik dalam aljabar linear untuk memfaktorkan matriks menjadi perkalian tiga matriks lain, yaitu matriks ortogonal \(U\), matriks diagonal \(Σ (sigma)\) yang berisi nilai-nilai singular, dan matriks ortogonal \(V\) atau \(V^T\) (V Transpose).

# Singular Value Decomposition (SVD)
library(MASS)
G <- matrix(c(5,-3,6,2,-4,8,-2,5,-1,7,3,9), 4, 3, byrow=TRUE)
G
##      [,1] [,2] [,3]
## [1,]    5   -3    6
## [2,]    2   -4    8
## [3,]   -2    5   -1
## [4,]    7    3    9
svd_result <- svd(G)
singular_value <- svd_result$d ; singular_value
## [1] 16.07076  7.41936  3.11187
U <- svd_result$u ; 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
V <- svd_result$v ; 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

Konsep Jarak

Konsep jarak dalam Analisis Data Multivariat mengacu pada ukuran perbedaan antar objek atau kelompok data yang dianalisis, di mana objek yang memiliki nilai variabel yang serupa akan memiliki jarak yang kecil, sementara yang berbeda akan memiliki jarak yang besar.

set.seed(321)
ss <- sample(1:50, 15)
df <- USArrests[ss, ]
df.scaled <- scale(df); 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

Jarak Euclidean adalah pengukuran jarak garis lurus terpendek antara dua titik dalam ruang Euclidean (ruang datar), yang dihitung dengan akar kuadrat dari jumlah selisih kuadrat komponen-komponennya.

Contoh aplikasi penggunaan jarak Euclidean yaitu:

  1. Menghitung jarak garis lurus antar dua koordinat (GPS)
  2. Clustering (K-Means, Hierarchical) → objek yang jaraknya dekat digabungkan
# Jarak Euclidean
library(factoextra)
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
dist.eucl <- dist(df.scaled, method = "euclidean"); 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
fviz_dist(dist.eucl)

Jarak Chebyshev

Jarak Chebyshev adalah matriks jarak yang diukur sebagai perbedaan terbesar (nilai absolut) di antara komponen-komponen koordinat dari dua titik atau vektor. Disebut juga sebagai “jarak papan catur” (chessboard distance), matriks ini menentukan jarak minimum yang diperlukan oleh sebuah raja catur untuk bergerak dari satu kotak ke kotak lain.

Contoh aplikasi penggunaan jarak Chebyshev:

  1. Jarak langkah raja antara dua posisi (dalam permainan catur) = jarak Chebyshev.
  2. Berguna di Quality Control multivariat, misalnya mengecek dimensi produk (lebar, panjang, tinggi) fokus pada dimensi terburuk.
# Jarak Chebyshev
dist.cheb <- dist(df.scaled, method = "maximum"); 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
fviz_dist(dist.cheb)

Jarak Manhattan

Jarak Manhattan adalah matriks jarak yang mengukur total perbedaan absolut antar koordinat, dihitung dengan menjumlahkan selisih mutlak dari komponen horizontal dan vertikalnya (seperti berjalan di jalan kota berbentuk grid [jarak berbasis grid (jumlah selisih)].

Contoh aplikasi jarak Manhattan:

  1. Menghitung jarak dalam gudang/grid jalan yang tidak memungkinkan jalur diagonal.
  2. Menghitung jarak antar dokumen berdasarkan frekuensi kata (NLP).
# 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
fviz_dist(dist.man)

Jarak Mahalanobis

Jarak Mahalanobis adalah ukuran statistik yang menghitung jarak antar titik data dan sebuah distribusi, dengan mempertimbangkan korelasi antara variabel-variabel dalam data tersebut dengan variansnya.

Contoh aplikasi jarak Mahalanobis: 1. Mendeteksi transaksi keuangan yang tidak wajar 2. Memisahkan kelompok dengan varians dan korelasi berbeda (Analisis Diskriminan)

library(StatMatch)
## Loading required package: proxy
## 
## 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
## 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 object is masked from 'package:MASS':
## 
##     select
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
dist.mah <- mahalanobis.dist(df.scaled); dist.mah
##               Wyoming  Illinois Mississippi    Kansas  New York Kentucky
## Wyoming      0.000000 1.7186109    2.820779 1.4195095 1.8695558 2.867847
## Illinois     1.718611 0.0000000    3.658323 2.2905255 0.4722069 3.878642
## Mississippi  2.820779 3.6583235    0.000000 3.2139075 3.6566922 2.544477
## Kansas       1.419510 2.2905255    3.213907 0.0000000 2.1522535 2.048031
## New York     1.869556 0.4722069    3.656692 2.1522535 0.0000000 3.698342
## Kentucky     2.867847 3.8786421    2.544477 2.0480310 3.6983422 0.000000
## Oklahoma     1.146496 1.8980286    3.237573 0.6499978 1.7772007 2.505941
## Hawaii       3.466671 3.6449604    4.722203 2.2108491 3.3748818 2.753554
## Missouri     3.198071 3.6796400    3.956918 2.2592572 3.3618939 2.642756
## New Mexico   3.281318 3.5101406    4.057258 3.1016653 3.2869855 3.870023
## Louisiana    2.284940 2.5550539    1.688058 2.2700723 2.4136664 2.119635
## South Dakota 1.826205 3.3564158    3.087365 1.6274307 3.3404110 2.261154
## Iowa         1.327907 2.6329606    3.559587 1.1128197 2.6839965 2.621704
## North Dakota 1.582582 3.1919907    3.553572 1.9466491 3.3317039 3.040465
## Texas        2.540604 2.4769381    3.093919 1.7462066 2.1399545 2.108949
##               Oklahoma   Hawaii Missouri New Mexico Louisiana South Dakota
## Wyoming      1.1464956 3.466671 3.198071   3.281318  2.284940     1.826205
## Illinois     1.8980286 3.644960 3.679640   3.510141  2.555054     3.356416
## Mississippi  3.2375727 4.722203 3.956918   4.057258  1.688058     3.087365
## Kansas       0.6499978 2.210849 2.259257   3.101665  2.270072     1.627431
## New York     1.7772007 3.374882 3.361894   3.286985  2.413666     3.340411
## Kentucky     2.5059414 2.753554 2.642756   3.870023  2.119635     2.261154
## Oklahoma     0.0000000 2.705865 2.203038   2.660216  2.350208     1.672866
## Hawaii       2.7058650 0.000000 3.193764   4.645567  3.383255     3.551072
## Missouri     2.2030382 3.193764 0.000000   1.836797  3.256319     2.505784
## New Mexico   2.6602159 4.645567 1.836797   0.000000  3.676879     3.026024
## Louisiana    2.3502077 3.383255 3.256319   3.676879  0.000000     3.021642
## South Dakota 1.6728664 3.551072 2.505784   3.026024  3.021642     0.000000
## Iowa         1.3299426 2.790197 3.145245   3.792086  2.954252     1.518854
## North Dakota 1.9813596 3.780966 3.590548   3.950259  3.434074     1.304743
## Texas        1.9635201 2.082005 2.576037   3.501666  1.527269     3.090805
##                  Iowa North Dakota    Texas
## Wyoming      1.327907     1.582582 2.540604
## Illinois     2.632961     3.191991 2.476938
## Mississippi  3.559587     3.553572 3.093919
## Kansas       1.112820     1.946649 1.746207
## New York     2.683996     3.331704 2.139954
## Kentucky     2.621704     3.040465 2.108949
## Oklahoma     1.329943     1.981360 1.963520
## Hawaii       2.790197     3.780966 2.082005
## Missouri     3.145245     3.590548 2.576037
## New Mexico   3.792086     3.950259 3.501666
## Louisiana    2.954252     3.434074 1.527269
## South Dakota 1.518854     1.304743 3.090805
## Iowa         0.000000     1.045923 2.734770
## North Dakota 1.045923     0.000000 3.563193
## Texas        2.734770     3.563193 0.000000
dist.mah_matrix <- as.matrix(dist.mah);dist.mah_matrix
##               Wyoming  Illinois Mississippi    Kansas  New York Kentucky
## Wyoming      0.000000 1.7186109    2.820779 1.4195095 1.8695558 2.867847
## Illinois     1.718611 0.0000000    3.658323 2.2905255 0.4722069 3.878642
## Mississippi  2.820779 3.6583235    0.000000 3.2139075 3.6566922 2.544477
## Kansas       1.419510 2.2905255    3.213907 0.0000000 2.1522535 2.048031
## New York     1.869556 0.4722069    3.656692 2.1522535 0.0000000 3.698342
## Kentucky     2.867847 3.8786421    2.544477 2.0480310 3.6983422 0.000000
## Oklahoma     1.146496 1.8980286    3.237573 0.6499978 1.7772007 2.505941
## Hawaii       3.466671 3.6449604    4.722203 2.2108491 3.3748818 2.753554
## Missouri     3.198071 3.6796400    3.956918 2.2592572 3.3618939 2.642756
## New Mexico   3.281318 3.5101406    4.057258 3.1016653 3.2869855 3.870023
## Louisiana    2.284940 2.5550539    1.688058 2.2700723 2.4136664 2.119635
## South Dakota 1.826205 3.3564158    3.087365 1.6274307 3.3404110 2.261154
## Iowa         1.327907 2.6329606    3.559587 1.1128197 2.6839965 2.621704
## North Dakota 1.582582 3.1919907    3.553572 1.9466491 3.3317039 3.040465
## Texas        2.540604 2.4769381    3.093919 1.7462066 2.1399545 2.108949
##               Oklahoma   Hawaii Missouri New Mexico Louisiana South Dakota
## Wyoming      1.1464956 3.466671 3.198071   3.281318  2.284940     1.826205
## Illinois     1.8980286 3.644960 3.679640   3.510141  2.555054     3.356416
## Mississippi  3.2375727 4.722203 3.956918   4.057258  1.688058     3.087365
## Kansas       0.6499978 2.210849 2.259257   3.101665  2.270072     1.627431
## New York     1.7772007 3.374882 3.361894   3.286985  2.413666     3.340411
## Kentucky     2.5059414 2.753554 2.642756   3.870023  2.119635     2.261154
## Oklahoma     0.0000000 2.705865 2.203038   2.660216  2.350208     1.672866
## Hawaii       2.7058650 0.000000 3.193764   4.645567  3.383255     3.551072
## Missouri     2.2030382 3.193764 0.000000   1.836797  3.256319     2.505784
## New Mexico   2.6602159 4.645567 1.836797   0.000000  3.676879     3.026024
## Louisiana    2.3502077 3.383255 3.256319   3.676879  0.000000     3.021642
## South Dakota 1.6728664 3.551072 2.505784   3.026024  3.021642     0.000000
## Iowa         1.3299426 2.790197 3.145245   3.792086  2.954252     1.518854
## North Dakota 1.9813596 3.780966 3.590548   3.950259  3.434074     1.304743
## Texas        1.9635201 2.082005 2.576037   3.501666  1.527269     3.090805
##                  Iowa North Dakota    Texas
## Wyoming      1.327907     1.582582 2.540604
## Illinois     2.632961     3.191991 2.476938
## Mississippi  3.559587     3.553572 3.093919
## Kansas       1.112820     1.946649 1.746207
## New York     2.683996     3.331704 2.139954
## Kentucky     2.621704     3.040465 2.108949
## Oklahoma     1.329943     1.981360 1.963520
## Hawaii       2.790197     3.780966 2.082005
## Missouri     3.145245     3.590548 2.576037
## New Mexico   3.792086     3.950259 3.501666
## Louisiana    2.954252     3.434074 1.527269
## South Dakota 1.518854     1.304743 3.090805
## Iowa         0.000000     1.045923 2.734770
## North Dakota 1.045923     0.000000 3.563193
## Texas        2.734770     3.563193 0.000000

Jarak Minkowski

Jarak Minkowski adalah ukuran jarak antara dua titik dalam ruang vektor yang ditentukan oleh sebuah parameter p untuk mencari jarak umum karena menjadi bentuk dasar yang mencakup berbagai jenis jarak lain.

Untuk p=1 jarak Manhattan, p=2 jarak Euclidean, p->tak hingga jarak chebyshev

# Jarak Minkowski
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)
}

# Contoh penggunaan dengan p = 1 (Manhattan), p = 2 (Euclidean), p = 3 (Minkowski umum)
dist_p1 <- minkowski_distance(p1, p2, p = 1);dist_p1
## [1] 13.38098
dist_p2 <- minkowski_distance(p1, p2, p = 2);dist_p2
## [1] 7.726871
dist_p3 <- minkowski_distance(p1, p2, p = 3);dist_p3
## [1] 6.435156
dist_inf <- max(abs(p1 - p2));dist_inf
## [1] 4.531493

Vektor Rata-rata

Vektor rata-rata adalah vektor tunggal yang merupakan hasil dari penjumlahan sekumpulan vektor, lalu dibagi dengan jumlah vektor tersebut, atau bisa juga diartikan sebagai rata-rata dari setiap komponen vektor dalam sebuah himpunan vektor. Secara umum, vektor rata-rata mewakili nilai pusat dari sekumpulan data vektor.

Berikut merupakan contoh data pengukuran Kadal:

# 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)
lizard = as.matrix(cbind(BB,PM,RTB)); 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
# Matriks Rata-Rata
vecMeans = as.matrix(colMeans(lizard)); vecMeans
##       [,1]
## BB    9.05
## PM   67.60
## RTB 128.00
vecRata = matrix(c(mean(BB), mean(PM), mean(RTB)), nrow=3, ncol=1); vecRata
##        [,1]
## [1,]   9.05
## [2,]  67.60
## [3,] 128.00

Matriks Kovarians

Matriks kovarians adalah matriks persegi dan simetris yang menunjukkan hubungan antara variabel dalam sebuah kumpulan data. Matriks ini menyajikan varians (dispersi data) pada diagonal utamanya dan kovarians (ukuran seberapa dua variabel bervariasi bersamaan) pada elemen-elemen lainnya.

# Matriks Kovarians
varkov = cov(lizard); varkov
##           BB        PM       RTB
## BB  10.98056  31.80000  54.96667
## PM  31.80000  94.04444 160.22222
## RTB 54.96667 160.22222 300.66667

Matriks Korelasi

Matriks korelasi adalah matriks yang menunjukkan koefisien korelasi antar variabel. Setiap elemen dalam matriks menunjukkan korelasi antara dua variabel. Matriks korelasi digunakan untuk meringkas data, sebagai masukan untuk analisis lanjutan, dan sebagai diagnostik untuk analisis lanjutan.

# Matriks Korelasi
korel = cor(lizard); korel
##            BB        PM       RTB
## BB  1.0000000 0.9895743 0.9566313
## PM  0.9895743 1.0000000 0.9528259
## RTB 0.9566313 0.9528259 1.0000000

Matriks Standardisasi (akar dari variansi masing-masing variabel)

Matriks standarisasi adalah matriks diagonal yang elemennya berupa akar dari variansi masing-masing variabel, yang digunakan untuk menyesuaikan skala data dalam analisis multivariat.”

# Matriks Standardisasi
n = nrow(lizard);n
## [1] 10
u = matrix(1,n,1); u
##       [,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
##        BB   PM RTB
## [1,] 9.05 67.6 128
D = lizard - u %*% xbar; D
##          BB    PM RTB
##  [1,] -2.85  -6.6 -13
##  [2,]  2.45   5.4  10
##  [3,] -0.35   0.4  -1
##  [4,]  1.05   2.4  -5
##  [5,] -1.25  -3.6   3
##  [6,] -2.15  -7.6  -8
##  [7,]  2.95   8.4  15
##  [8,] -5.95 -18.6 -33
##  [9,]  5.75  16.4  32
## [10,]  0.35   3.4   0
S = (1/(n-1))*t(D)%*%D; S
##           BB        PM       RTB
## BB  10.98056  31.80000  54.96667
## PM  31.80000  94.04444 160.22222
## RTB 54.96667 160.22222 300.66667
Ds = diag(sqrt(diag(S))); Ds
##          [,1]     [,2]     [,3]
## [1,] 3.313692 0.000000  0.00000
## [2,] 0.000000 9.697651  0.00000
## [3,] 0.000000 0.000000 17.33974
R = solve(Ds) %*% S %*% solve(Ds); R
##           [,1]      [,2]      [,3]
## [1,] 1.0000000 0.9895743 0.9566313
## [2,] 0.9895743 1.0000000 0.9528259
## [3,] 0.9566313 0.9528259 1.0000000