Pendahuluan

Analisis data multivariat adalah cabang statistika yang digunakan untuk menganalisis data dengan lebih dari satu variabel secara bersamaan. Analisis ini bertujuan untuk memahami hubungan antar variabel, merangkum dan menyederhanakan data yang kompleks, mengelompokkan objek berdasarkan kesamaan karakteristik, membuat prediksi atau klasifikasi, serta menggali struktur data. Dengan kata lain, analisis data multivariat berfungsi untuk mengungkap pola, hubungan, perbedaan, maupun struktur dalam data berdimensi banyak sehingga dapat memberikan informasi yang lebih komprehensif untuk mendukung pengambilan keputusan.

Secara umum, teknik analisis multivariat dapat diklasifikasikan ke dalam beberapa kelompok. Ada tiga teknik, yaitu teknik reduksi dimensi, teknik klasifikasi dan diskriminasi,serta teknik dependensi. Materi yang akan dibahas berupa operasi matriks, eigenvalue dan eigenvector, SVD (Singular Value Decomposition), konsep jarak antar observasi, serta vektor rata-rata sebagai representasi pusat data.

Operasi Matriks

Matriks adalah susunan bilangan yang dibentuk dalam baris dan kolom. Matriks disebut berordo n x p ketika memiliki n baris, dan p kolom. Contoh : \[ A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix} \]

# Pembuatan Matriks #
X = matrix(c(6.5,8.2,7.9,
             5.4,7.0,6.7,
             8.1,6.9,9.2), nrow = 3, ncol = 3); X
##      [,1] [,2] [,3]
## [1,]  6.5  5.4  8.1
## [2,]  8.2  7.0  6.9
## [3,]  7.9  6.7  9.2
Y = matrix(c(7.3,6.8,8.5,
             8.9,7.6,6.1,
             9.4,8.0,7.2), nrow = 3, ncol = 3, byrow = TRUE); Y
##      [,1] [,2] [,3]
## [1,]  7.3  6.8  8.5
## [2,]  8.9  7.6  6.1
## [3,]  9.4  8.0  7.2

Penjumlahan Matriks

X + Y
##      [,1] [,2] [,3]
## [1,] 13.8 12.2 16.6
## [2,] 17.1 14.6 13.0
## [3,] 17.3 14.7 16.4

Pengurangan Matriks

X - Y
##      [,1] [,2] [,3]
## [1,] -0.8 -1.4 -0.4
## [2,] -0.7 -0.6  0.8
## [3,] -1.5 -1.3  2.0
Y - X
##      [,1] [,2] [,3]
## [1,]  0.8  1.4  0.4
## [2,]  0.7  0.6 -0.8
## [3,]  1.5  1.3 -2.0

Perkalian Matriks

Matriks dapat dikalikan ketika kedua matriks memiliki jumlah kolom yang sama. Misal A berordo m x n, dan B berordo n x p. Maka hasil perkalian matriks akan berordo m x p.

X %*% Y
##        [,1]   [,2]   [,3]
## [1,] 171.65 150.04 146.51
## [2,] 187.02 164.16 162.08
## [3,] 203.78 178.24 174.26
Y %*% X
##        [,1]   [,2]   [,3]
## [1,] 170.36 143.97 184.25
## [2,] 168.36 142.13 180.65
## [3,] 183.58 155.00 197.58

Perkalian antar elemen

Kedua matriks harus memiliki ordo yang sama.

X*Y
##       [,1]  [,2]  [,3]
## [1,] 47.45 36.72 68.85
## [2,] 72.98 53.20 42.09
## [3,] 74.26 53.60 66.24

Perkalian Skalar dengan Matriks

2*X
##      [,1] [,2] [,3]
## [1,] 13.0 10.8 16.2
## [2,] 16.4 14.0 13.8
## [3,] 15.8 13.4 18.4

Transpose Matriks

Transpose matriks itu proses penukaran elemen antara baris dan kolom. Elemen baris ditukar ke kolom, dan elemen kolom ditukar ke baris. \[ A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix} \]

Maka transpose \(A^T\) adalah:

\[ A^T = \begin{bmatrix} 1 & 4 \\ 2 & 5 \\ 3 & 6 \end{bmatrix} \]

transX = t(X); transX
##      [,1] [,2] [,3]
## [1,]  6.5  8.2  7.9
## [2,]  5.4  7.0  6.7
## [3,]  8.1  6.9  9.2
transY = t(Y); transY
##      [,1] [,2] [,3]
## [1,]  7.3  8.9  9.4
## [2,]  6.8  7.6  8.0
## [3,]  8.5  6.1  7.2

Invers Matriks

Jika \(AB = BA = I\), maka matriks \(A\) dan \(B\) adalah saling inverse.

  1. Jika
    \[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \]

maka
\[ A^{-1} = \frac{1}{ad-bc} \begin{bmatrix} d & -b \\ -c & a \end{bmatrix}. \]

  1. Berlaku sifat:
    \[ (AB)^{-1} = B^{-1}A^{-1}. \]
inv_X = solve(X); inv_X
##            [,1]      [,2]       [,3]
## [1,]  8.3848639  2.118136 -8.9709275
## [2,] -9.6585141 -1.933549  9.9538533
## [3,] -0.1661283 -0.410706  0.5629903
inv_Y = solve(Y); inv_Y
##             [,1]      [,2]      [,3]
## [1,] -1.27147766 -4.089347  4.965636
## [2,]  1.44759450  5.871993 -6.683849
## [3,]  0.05154639 -1.185567  1.082474

Determinan Matriks

Determinan matriks adalah nilai skalar yang dihitung dari elemen-elemen matriks persegi. Nilai determinan ini memberikan informasi penting tentang matriks, seperti keberedaan invers matriks. Untuk matriks \(2 \times 2\):

\[ A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}, \quad \det(A) = ad - bc \] Untuk matriks \(3 \times 3\):

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

maka

\[ \det(A) = aei + bfg + cdh - ceg - bdi - afh \] Secara umum, untuk matriks \(n \times n\), determinan dapat dihitung dengan ekspansi kofaktor:

\[ \det(A) = \sum_{j=1}^n (-1)^{1+j} a_{1j} M_{1j} \]

dengan \(M_{1j}\) adalah minor dari elemen \(a_{1j}\).

det(X)
## [1] 2.167
det(Y)
## [1] -4.656

Contoh Lain Matriks

Matriks elemen berurutan

A <- matrix(21:40, nrow=4, ncol=5) ; A
##      [,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

Pengurutan berdasarkan kolom

b <- c(4,7,2,8,5,9,6,3,1,10,12,11);b
##  [1]  4  7  2  8  5  9  6  3  1 10 12 11

Pengurutan berdasarkan baris

B <- matrix(b, nrow=3, ncol=4, byrow=TRUE) ; B
##      [,1] [,2] [,3] [,4]
## [1,]    4    7    2    8
## [2,]    5    9    6    3
## [3,]    1   10   12   11

Mengisi nama pada baris dan kolom matriks

sel <- c(15,9,27,18)
nama_kolom <- c("C1", "C2")
nama_baris <- c("R1", "R2")
C <- matrix(sel, nrow=2, ncol=2,
            byrow=TRUE, dimnames=list(nama_baris,
                                      nama_kolom)) ; C
##    C1 C2
## R1 15  9
## R2 27 18

Memanggil Komponen Matriks

Memanggil Baris atau Kolom Matriks

A <- matrix(21:40, nrow=4, ncol=5) ; A
##      [,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
A[,2]         
## [1] 25 26 27 28
A[3,]         
## [1] 23 27 31 35 39
A[,1:3]      
##      [,1] [,2] [,3]
## [1,]   21   25   29
## [2,]   22   26   30
## [3,]   23   27   31
## [4,]   24   28   32
A[2:4,]       
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   22   26   30   34   38
## [2,]   23   27   31   35   39
## [3,]   24   28   32   36   40

Memanggil Sel Matriks

A[3,2]      
## [1] 27
A[c(1,3),2] 
## [1] 25 27

Eigenvalue dan Eigenvector

Eigen Value menunjukkan jumlah variasi (informasi) yang dapat dijelaskan oleh satu komponen. Eigen Vector menunjukkan jumlah variasi (informasi) yang dijelaskan suatu komponen lainnya. Eigen Value dan eigen vector ini sangat berguna dalam analisis data multivariat misalnya Principal Komponen Analysis, Factor Analysis, dll.

Jika \(Ax\) adalah perkalian suatu skalar dengan \(x\), maka vektor tidak nol \(x \in \mathbb{R}^n\) disebut vektor Eigen dari \(A\). Sehingga berlaku:

\[ Ax = \lambda x \]

dengan skalar \(\lambda\) disebut nilai Eigen dari \(A\), dan \(x\) disebut vektor Eigen yang berkorespondensi terhadap \(\lambda\).

Pasangan \((\lambda_1, x_1), \ldots, (\lambda_n, x_n)\) dinamakan pasangan Eigen. Vektor-vektor Eigen saling ortonormal jika:

\[ Ax_1 = \lambda_1 x_1, \quad \ldots, \quad Ax_n = \lambda_n x_n \]

Untuk mencari nilai Eigen, harus dipenuhi persamaan karakteristik:

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

dan untuk mencari vektor Eigen digunakan persamaan:

\[ (A - \lambda I)x = 0 \] Berikut beberapa teorema dasar yang sering digunakan dalam analisis data multivariat:

Teorema 1.
Jika \(A\) matriks \(n \times n\) dan \(\lambda_i\) adalah nilai eigen ke-\(i\) dari \(A\), maka perkalian seluruh \(\lambda_i\) untuk \(i = 1, 2, \dots, n\) adalah determinan dari \(A\):

\[ \det(A) = \lambda_1 \cdot \lambda_2 \cdot \ldots \cdot \lambda_n = \prod_{i=1}^{n} \lambda_i \] Teorema 2.
Jika \(A\) matriks \(n \times n\) dan \(\lambda_i\) adalah nilai eigen ke-\(i\) dari \(A\), maka penjumlahan seluruh \(\lambda_i\) untuk \(i = 1, 2, \dots, n\) adalah trace dari \(A\):

\[ \text{tr}(A) = \lambda_1 + \lambda_2 + \ldots + \lambda_n = \sum_{i=1}^{n} \lambda_i \]

Teorema 3.
Jika \(A\) matriks \(n \times n\) dan \(A = X \Lambda X^T\), maka pangkat dari matriks \(A\) dapat dihitung dengan:

\[ A^n = X \Lambda^n X^T \] Mencari Nilai eigen

eigX = eigen(X); eigX
## eigen() decomposition
## $values
## [1] 22.0140019  0.4816027  0.2043953
## 
## $vectors
##           [,1]       [,2]        [,3]
## [1,] 0.5268942  0.5218595  0.61121520
## [2,] 0.5752916 -0.8360039 -0.78978922
## [3,] 0.6256373  0.1695881  0.05146821
eigY = eigen(Y); eigY
## eigen() decomposition
## $values
## [1] 23.230397 -1.286223  0.155826
## 
## $vectors
##            [,1]       [,2]       [,3]
## [1,] -0.5633011 -0.7710948  0.5522886
## [2,] -0.5584126  0.5270180 -0.8126545
## [3,] -0.6089887  0.3573023  0.1859299
eigvalX = eigX$values; eigvalX
## [1] 22.0140019  0.4816027  0.2043953
eigvalY = eigY$values; eigvalY
## [1] 23.230397 -1.286223  0.155826

Mencari vektor eigen

eigvecX = eigX$vectors; eigvecX
##           [,1]       [,2]        [,3]
## [1,] 0.5268942  0.5218595  0.61121520
## [2,] 0.5752916 -0.8360039 -0.78978922
## [3,] 0.6256373  0.1695881  0.05146821
eigvecY = eigY$vectors; eigvecY
##            [,1]       [,2]       [,3]
## [1,] -0.5633011 -0.7710948  0.5522886
## [2,] -0.5584126  0.5270180 -0.8126545
## [3,] -0.6089887  0.3573023  0.1859299

Dekomposisi Singular Value (SVD)

SVD digunakan untuk memecah sebuah matriks menjadi tiga matriks, sehingga memudahkan dalam memahami struktur data, mereduksi, dan mengidentifikasi informasi.

Rumus umum:
Jika \(A\) adalah matriks berukuran \(m \times n\), maka dekomposisi SVD dinyatakan sebagai:

\[ A = U \Sigma V^T \]

dengan: - \(U\) : matriks ortogonal berukuran \(m \times m\) yang berisi vektor singular kiri (left singular vectors), - \(\Sigma\) : matriks diagonal berukuran \(m \times n\) yang memuat nilai singular (singular values) pada diagonal utamanya, - \(V\) : matriks ortogonal berukuran \(n \times n\) yang berisi vektor singular kanan (right singular vectors).

Nilai singular (\(\sigma_i\)) dalam \(\Sigma\) adalah akar kuadrat dari nilai eigen matriks \(A^TA\) atau \(AA^T\).
Vektor pada \(U\) merupakan eigenvector dari \(AA^T\), sedangkan vektor pada \(V\) merupakan eigenvector dari \(A^TA\).

Syntax untuk mencari SVD di R

library(MASS)
A <- matrix(c(5,-3,6,2,-4,8,-2,5,-1,7,3,9), 4, 3, byrow=TRUE)
A
##      [,1] [,2] [,3]
## [1,]    5   -3    6
## [2,]    2   -4    8
## [3,]   -2    5   -1
## [4,]    7    3    9
svd_result <- svd(A)
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 sangat penting karena menjadi dasar dari berbagai metode analisis, seperti clustering, multidimensional scaling, analisis diskriminan, maupun analisis komponen utama (PCA). Ukuran jarak memberikan gambaran seberapa jauh satu objek dari objek lainnya dalam ruang data. Semakin kecil jaraknya, semakin mirip kedua objek tersebut, sedangkan semakin besar jaraknya, semakin jauh perbedaannya.
Berbagai jenis ukuran jarak dapat digunakan, dan pemilihannya tergantung pada karakteristik data serta tujuan analisis.

Berikut adalah dataset sampel yang digunakan untuk menghitung jarak.

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

Euclidean → Jarak lurus (garis terpendek) antara dua titik di ruang 𝑝-dimensi [jarak lurus standar]. contoh aplikasi: - menghitung jarak garis lurus antar dua koordinat (GPS) - Clustering (K-Means, Hierarchical) → objek yang jaraknya dekat digabungkan \[ d(x,y) = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2} \]

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

Chebyshev → jarak ditentukan oleh selisih terbesar. Jarak maksimum di antara perbedaan koordinat. Fokus pada dimensi dengan selisih terbesar. contoh aplikasi: - jarak langkah raja antara dua posisi = jarak Chebyshev. - Berguna di quality control multivariat, misalnya mengecek dimensi produk (lebar, panjang, tinggi) → fokus pada dimensi terburuk. \[ d(x,y) = \max_{i} |x_i - y_i| \]

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

Manhattan → Jumlah perbedaan absolut antar koordinat, seperti berjalan di jalan kota berbentuk grid [jarak berbasis grid (jumlah selisih)]. contoh aplikasi: - menghitung jarak dalam gudang/grid jalan yang tidak memungkinkan jalur diagonal. - menghitung jarak antar dokumen berdasarkan frekuensi kata (NLP). \[ d(x,y) = \sum_{i=1}^{n} |x_i - y_i| \]

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

Mahalanobis → Jarak antar titik yang mempertimbangkan skala (varians) dan korelasi antar variabel. Contoh aplikasi: - misalnya mendeteksi transaksi keuangan yang tidak wajar - memisahkan kelompok dengan varians dan korelasi berbeda (Analisis Diskriminan) \[ D^2(x) = (x - \mu)^T S^{-1} (x - \mu) \]

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. p=1 jarak Manhattan, p=2 jarak Euclidean, p->tak hingga jarak chebyshev \[ d(x,y) = \left( \sum_{i=1}^{n} |x_i - y_i|^p \right)^{\tfrac{1}{p}} \]

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

Dalam analisis data multivariat, vektor rata-rata adalah rata-rata dari sekumpulan pengamatan pada setiap variabel. Jika terdapat \(n\) pengamatan dengan \(p\) variabel, maka vektor rata-rata berfungsi sebagai titik pusat (centroid) dari data dalam ruang berdimensi \(p\).
Vektor ini sangat penting karena digunakan sebagai dasar dalam perhitungan jarak (misalnya jarak Mahalanobis), analisis komponen utama (PCA), dan metode analisis multivariat lainnya.

Misalkan terdapat matriks data \(X\) berukuran \(n \times p\), dengan \(n\) adalah jumlah pengamatan dan \(p\) jumlah variabel.
Vektor rata-rata \(\bar{x}\) didefinisikan sebagai:

\[ \bar{x} = \begin{bmatrix} \bar{x}_1 \\ \bar{x}_2 \\ \vdots \\ \bar{x}_p \end{bmatrix} = \begin{bmatrix} \frac{1}{n} \sum_{i=1}^n x_{i1} \\ \frac{1}{n} \sum_{i=1}^n x_{i2} \\ \vdots \\ \frac{1}{n} \sum_{i=1}^n x_{ip} \end{bmatrix} \]

dengan:
- \(\bar{x}_j\) = rata-rata variabel ke-\(j\),
- \(x_{ij}\) = nilai pengamatan ke-\(i\) pada variabel ke-\(j\).

Berikut data pengukuran 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 yang menunjukkan penyebaran (varians) tiap variabel serta hubungan antar variabel (kovarians). Elemen diagonal utama matriks berisi varians masing-masing variabel, sedangkan elemen di luar diagonal berisi kovarians antar variabel. \[ \text{Cov}(X_j, X_k) = \frac{\sum_{i=1}^{n} (x_{ij} - \mu_j)(x_{ik} - \mu_k)}{n-1} = \sigma_{jk} \]

dengan:
- \(x_{ij}\) = nilai pengamatan ke-\(i\) pada variabel \(j\)
- \(\mu_j\) = rata-rata variabel \(X_j\)
- \(n\) = jumlah pengamatan

Bentuk matriks kovarians \(S\):

\[ S = \begin{bmatrix} \sigma_{11} & \sigma_{12} & \cdots & \sigma_{1p} \\ \sigma_{21} & \sigma_{22} & \cdots & \sigma_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ \sigma_{p1} & \sigma_{p2} & \cdots & \sigma_{pp} \end{bmatrix} \]

dengan \(\sigma_{jj} = \text{Var}(X_j)\) dan \(\sigma_{jk} = \text{Cov}(X_j, X_k)\).

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 menggambarkan hubungan linear antar variabel dengan nilai yang sudah dinormalisasi.
Nilai korelasi berada pada rentang \([-1, 1]\), di mana:
- \(r = 1\) menunjukkan hubungan linear sempurna positif,
- \(r = -1\) menunjukkan hubungan linear sempurna negatif,
- \(r = 0\) menunjukkan tidak ada hubungan linear.

Bentuk umum matriks korelasi \(R\):

\[ R = \begin{bmatrix} 1 & r_{21} & \cdots & r_{p1} \\ r_{12} & 1 & \cdots & r_{p2} \\ \vdots & \vdots & \ddots & \vdots \\ r_{1p} & r_{2p} & \cdots & 1 \end{bmatrix} \]

Rumus elemen \(r_{ik}\) (korelasi antara variabel \(X_i\) dan \(X_k\)):

\[ r_{ik} = \frac{\sum_{j=1}^{n} (x_{ij} - \bar{x}_i)(x_{kj} - \bar{x}_k)} {\sqrt{\sum_{j=1}^{n} (x_{ij} - \bar{x}_i)^2} \cdot \sqrt{\sum_{j=1}^{n} (x_{kj} - \bar{x}_k)^2}} \]

dengan:
- \(x_{ij}\) = nilai pengamatan ke-\(j\) pada variabel \(i\)
- \(\bar{x}_i\) = rata-rata variabel \(X_i\)
- \(n\) = jumlah pengamatan

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 standardisasi adalah matriks data yang diperoleh dengan men-transformasi setiap variabel menjadi skala baku (standard score atau z-score). Agar setiap variabel memiliki rata-rata \(0\) dan standar deviasi \(1\), sehingga variabel dengan skala besar tidak mendominasi analisis multivariat.

Rumus standardisasi untuk elemen \(z_{ij}\) (pengamatan ke-\(i\) pada variabel ke-\(j\)):

\[ z_{ij} = \frac{x_{ij} - \bar{x}_j}{s_j} \]

dengan:
- \(x_{ij}\) = nilai pengamatan ke-\(i\) pada variabel \(j\)
- \(\bar{x}_j\) = rata-rata variabel \(X_j\)
- \(s_j\) = simpangan baku variabel \(X_j\)

Bentuk matriks standardisasi \(Z\) (ukuran \(n \times p\)):

\[ Z = \begin{bmatrix} z_{11} & z_{12} & \cdots & z_{1p} \\ z_{21} & z_{22} & \cdots & z_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ z_{n1} & z_{n2} & \cdots & z_{np} \end{bmatrix} \]

Setiap kolom matriks \(Z\) adalah variabel hasil standardisasi, dengan rata-rata \(0\) dan varians \(1\).

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