PRAKTIKUM 1 ANALISIS DATA MULTIVARIAT 1

1 Pendahuluan

Matriks merupakan elemen fundamental dalam aljabar linear yang didefinisikan sebagai sekumpulan bilangan yang disusun dalam bentuk baris dan kolom. Berbagai operasi dapat diterapkan pada matriks, seperti penjumlahan, pengurangan, perkalian, transpose, inversi, dan determinan, yang menjadi landasan dalam menyelesaikan berbagai permasalahan terkait matriks.

Selain operasi dasar, terdapat pula konsep dekomposisi matriks yang berperan penting dalam menguraikan matriks kompleks menjadi bentuk yang lebih sederhana. Salah satu metode dekomposisi yang umum digunakan adalah Singular Value Decomposition (SVD), yang mengurai suatu matriks menjadi tiga komponen utama. SVD tidak hanya mempermudah analisis data, tetapi juga memberikan solusi efisien untuk sistem persamaan linear.

Dalam konteks analisis data dan statistika multivariat, pengukuran kedekatan antar objek menjadi aspek penting. Berbagai metrik jarak digunakan untuk tujuan ini, seperti jarak Euclidean, Manhattan, Minkowski, dan Mahalanobis, yang masing-masing memiliki karakteristik dan aplikasi spesifik dalam mengukur kemiripan atau perbedaan antar data.

2 Operasi Matriks

2.1 Definisi dan Rumus

2.1.1 Penjumlahan Matriks

Penjumlahan matriks didefinisikan sebagai operasi penjumlahan elemen-elemen yang bersesuaian (memiliki indeks baris dan kolom yang identik) antara dua atau lebih matriks, dengan hasilnya membentuk suatu matriks baru yang berordo sama.

\[ A + B = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} + \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix} = \begin{bmatrix} a_{11} + b_{11} & a_{12} + b_{12} \\ a_{21} + b_{21} & a_{22} + b_{22} \end{bmatrix} \]

2.1.2 Pengurangan Matriks

Pengurangan matriks dilakukan dengan mengurangkan elemen-elemen pada posisi yang sama dari dua matriks, lalu hasilnya disusun dalam satu matriks baru.

\[ A - B = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} - \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix} = \begin{bmatrix} a_{11} - b_{11} & a_{12} - b_{12} \\ a_{21} - b_{21} & a_{22} - b_{22} \end{bmatrix} \]

2.1.3 Perkalian Matriks

Perkalian matriks adalah operasi biner yang menghasilkan matriks baru dari dua matriks dengan syarat bahwa jumlah kolom matriks pertama harus sama dengan jumlah baris matriks kedua. Setiap elemen matriks hasil merupakan hasil dari dot product antara baris matriks pertama dan kolom matriks kedua.

\[ X \times Y = \begin{bmatrix} x_{11} & x_{12} \\ x_{21} & x_{22} \end{bmatrix} \begin{bmatrix} y_{11} & y_{12} \\ y_{21} & y_{22} \end{bmatrix} = \begin{bmatrix} x_{11}y_{11} + x_{12}y_{21} & x_{11}y_{12} + x_{12}y_{22} \\ x_{21}y_{11} + x_{22}y_{21} & x_{21}y_{12} + x_{22}y_{22} \end{bmatrix} \]

2.1.4 Perkalian Hadamard Product

Perkalian element-wise adalah operasi yang mengalikan setiap elemen matriks pertama dengan elemen pada posisi yang sama persis di matriks kedua. Kedua matriks harus memiliki dimensi yang identik (jumlah baris dan kolom sama).

\[ C = A \circ B = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} \circ \begin{bmatrix} b_{11} & b_{12} \\ b_{21} & b_{22} \end{bmatrix} = \begin{bmatrix} a_{11}b_{11} & a_{12}b_{12} \\ a_{21}b_{21} & a_{22}b_{22} \end{bmatrix} \]

2.1.5 Perkalian Skalar dengan Matriks

Perkalian skalar dengan matriks adalah operasi yang mengalikan setiap elemen matriks dengan sebuah bilangan skalar (konstanta). Operasi ini menghasilkan matriks dengan dimensi yang sama tetapi dengan setiap elemennya diperbesar atau diperkecil sesuai nilai skalar.

\[ B = kA = k \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} = \begin{bmatrix} ka_{11} & ka_{12} \\ ka_{21} & ka_{22} \end{bmatrix} \]

2.1.6 Transpose Matriks

Transpose matriks adalah operasi yang menukar elemen-elemen baris menjadi kolom dan sebaliknya. Jika matriks A berukuran m × n, maka transpose-nya (Aᵀ) berukuran n × m.

\[ A = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \end{bmatrix}, \quad A^T = \begin{bmatrix} a_{11} & a_{21} \\ a_{12} & a_{22} \\ a_{13} & a_{23} \end{bmatrix} \]

2.1.7 Invers Matriks

Invers matriks adalah matriks yang ketika dikalikan dengan matriks aslinya menghasilkan matriks identitas. Matriks A memiliki invers (A⁻¹) jika dan hanya jika A adalah matriks persegi dan determinannya tidak nol.

\[ AA^{-1} = A^{-1}A = I \]

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

2.1.8 Determinan Matriks

Determinan adalah nilai skalar yang dapat dihitung dari elemen-elemen matriks persegi. Determinan memberikan informasi tentang sifat-sifat matriks, seperti apakah matriks tersebut memiliki invers atau tidak.

\[ \text{det}(A) = \begin{vmatrix} a & b \\ c & d \end{vmatrix} = ad - bc \]

\[ \text{det}(A) = \begin{vmatrix} a & b & c \\ d & e & f \\ g & h & i \end{vmatrix} = a\begin{vmatrix} e & f \\ h & i \end{vmatrix} - b\begin{vmatrix} d & f \\ g & i \end{vmatrix} + c\begin{vmatrix} d & e \\ g & h \end{vmatrix} \]

2.2 Contoh Matriks

2.2.1 Pembuatan Matriks dengan Urutan Angka

# Membuat matriks dari urutan angka 21 sampai 40
A <- matrix(21:40, nrow = 4, ncol = 5)
cat("Matriks A (4x5):\n")
## Matriks A (4x5):
print(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

Keterangan: - 21:40 menghasilkan urutan angka dari 21 hingga 40 - nrow = 4 menentukan jumlah baris = 4 - ncol = 5 menentukan jumlah kolom = 5 - Matriks diisi secara column-major (default)

2.2.2 Pembuatan Matriks dari Vektor

# Membuat vektor b
b <- c(4, 7, 2, 8, 5, 9, 6, 3, 1, 10, 12, 11)
cat("Vektor b:\n")
## Vektor b:
print(b)
##  [1]  4  7  2  8  5  9  6  3  1 10 12 11
# Membuat matriks B dari vektor b
B <- matrix(b, nrow = 3, ncol = 4, byrow = TRUE)
cat("\nMatriks B (3x4) - byrow = TRUE:\n")
## 
## Matriks B (3x4) - byrow = TRUE:
print(B)
##      [,1] [,2] [,3] [,4]
## [1,]    4    7    2    8
## [2,]    5    9    6    3
## [3,]    1   10   12   11

Keterangan: - byrow = TRUE mengisi matriks baris per baris - Ukuran matriks: 3 baris × 4 kolom - Total elemen: 12 (sesuai panjang vektor b)

2.2.3 Matriks dengan Nama Baris dan Kolom

# Membuat matriks dengan nama baris dan kolom
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))

cat("Matriks C dengan nama baris dan kolom:\n")
## Matriks C dengan nama baris dan kolom:
print(C)
##    C1 C2
## R1 15  9
## R2 27 18

2.2.4 Akses Komponen Matriks

# Akses berbagai komponen matriks A
cat("Matriks A:\n")
## Matriks A:
print(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
cat("\nA. Mengakses Kolom 2:\n")
## 
## A. Mengakses Kolom 2:
A_col2 <- A[, 2]
print(A_col2)
## [1] 25 26 27 28
cat("\nB. Mengakses Baris 3:\n")
## 
## B. Mengakses Baris 3:
A_row3 <- A[3, ]
print(A_row3)
## [1] 23 27 31 35 39
cat("\nC. Mengakses Elemen (3,2):\n")
## 
## C. Mengakses Elemen (3,2):
A_32 <- A[3, 2]
print(A_32)
## [1] 27
cat("\nD. Mengakses Elemen (1,2) dan (3,2):\n")
## 
## D. Mengakses Elemen (1,2) dan (3,2):
A_sub <- A[c(1, 3), 2]
print(A_sub)
## [1] 25 27
cat("\nE. Mengakses Kolom 1 sampai 3:\n")
## 
## E. Mengakses Kolom 1 sampai 3:
A_cols1_3 <- A[, 1:3]
print(A_cols1_3)
##      [,1] [,2] [,3]
## [1,]   21   25   29
## [2,]   22   26   30
## [3,]   23   27   31
## [4,]   24   28   32
cat("\nF. Mengakses Baris 2 sampai 4:\n")
## 
## F. Mengakses Baris 2 sampai 4:
A_rows2_4 <- A[2:4, ]
print(A_rows2_4)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]   22   26   30   34   38
## [2,]   23   27   31   35   39
## [3,]   24   28   32   36   40

Penjelasan Akses: - A[,2] → semua baris pada kolom 2 - A[3,] → semua kolom pada baris 3
- A[3,2] → elemen spesifik baris 3 kolom 2 - A[c(1,3),2] → elemen baris 1 dan 3 pada kolom 2 - A[,1:3] → semua baris pada kolom 1 sampai 3 - A[2:4,] → semua kolom pada baris 2 sampai 4

2.2.5 Visualisasi Matriks

2.2.6 Ringkasan Sintaks Akses Matriks

Sintaks Deskripsi Contoh
A[i,] Akses baris ke-i A[3,]
A[,j] Akses kolom ke-j A[,2]
A[i,j] Akses elemen (i,j) A[3,2]
A[c(i,k),j] Akses multiple baris A[c(1,3),2]
A[i,c(j,l)] Akses multiple kolom A[3,c(2,4)]
A[i:j,] Akses range baris A[2:4,]
A[,k:l] Akses range kolom A[,1:3]

3 Eigen Value dan Eigen Vector

###3.1 Definisi dan Rumus ####3.1.1 Eigen valueffdddddd Eigen value adalah suatu bilangan skalar λ yang menunjukkan seberapa besar suatu eigenvector berubah arah atau panjang ketika dikalikan dengan sebuah matriks. \[ A\mathbf{v} = \lambda\mathbf{v} \]

Untuk mencari eigenvalue, digunakan rumus: \[ \det(A - \lambda I) = 0 \] #### 3.1.2 Eigen Vector Eigenvector adalah vektor khusus yang arahnya tidak berubah ketika dikenai transformasi linear oleh sebuah matriks, hanya panjangnya saja yang bertambah atau berkurang. perubahan panjang tersebut ditentukan oleh bilangan skalar yang disebut eigenvalue. \[ (A - \lambda I)\mathbf{v} = \mathbf{0} \] #### 3.1.3 Pasangan Eigen Pasangan Eigen merupakan kombinasi dari eigenvalue dan eigen vektor yang sesuai \[(\lambda, \mathbf{v})\] ### 3.2 Contoh dan Implementasi Diberikan sebuah matriks 3x3 yaitu

A = matrix(c(6.5,8.2,7.9,
             5.4,7.0,6.7,
             8.1,6.9,9.2), nrow = 3, ncol = 3); A
##      [,1] [,2] [,3]
## [1,]  6.5  5.4  8.1
## [2,]  8.2  7.0  6.9
## [3,]  7.9  6.7  9.2

####3.2.1 Eigen Value

eigA <- eigen(A)
eigA$values
## [1] 22.0140019  0.4816027  0.2043953

####3.2.2 Eigen Vektor

eigA$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

####3.2.3 Pasangan Eigen

for (i in seq_along(eigA$values)) {
  cat("\nPasangan ke-", i, ":\n")
  cat("Eigenvalue =", eigA$values[i], "\n")
  cat("Eigenvector =\n")
  print(eigA$vectors[, i])
}
## 
## Pasangan ke- 1 :
## Eigenvalue = 22.014 
## Eigenvector =
## [1] 0.5268942 0.5752916 0.6256373
## 
## Pasangan ke- 2 :
## Eigenvalue = 0.4816027 
## Eigenvector =
## [1]  0.5218595 -0.8360039  0.1695881
## 
## Pasangan ke- 3 :
## Eigenvalue = 0.2043953 
## Eigenvector =
## [1]  0.61121520 -0.78978922  0.05146821

4 Singular Value Decompoasition (SDV)

4.1 Pengertian dan Rumus Singular

Singular value decomposition (svd) adalah metode dalam aljabar linear yang memecah sebuah matriks 𝐴 menjadi tiga matriks, yaitu U dan V berisi matriks ortonormal dan sigma berisi matriks singular value. \[ A \in \mathbb{R}^{m \times n}\] dapat dituliskan sebagai: \[ A = U D V^T \]

dengan:

  • \[U \in \mathbb{R}^{m \times m} \], \[U^T U = I_m \] (ortogonal)
  • \[V \in \mathbb{R}^{n \times n}\], \[V^T V = I_n\] (ortogonal)
  • \[D \in \mathbb{R}^{m \times n}\] diagonal dengan elemen singular value: \[ D = \begin{bmatrix} D_1 & 0 & \cdots & 0 \\ 0 & D_2 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & D_r \end{bmatrix} \]

4.2 Contoh dan Impelemtasi

Diberikan matriks sebagai berikut

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

####4.2.1 Singular Value Decomposition

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

5 Matriks Jarak

5.1 Data, Definisi, dan Rumus

5.1.1 Data

library(factoextra)
## Warning: package 'factoextra' was built under R version 4.4.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.4.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
set.seed(321)
ss <- sample(1:50, 15)
df <- USArrests[ss, ]
df.scaled <- scale(df)

5.1.2 Jarak Euclidean

Euclidean → Jarak lurus (garis terpendek) antara dua titik di ruang \(p\)-dimensi [jarak lurus standar].

Contoh aplikasi: - Menghitung jarak garis lurus antar dua koordinat (GPS) - Clustering (K-Means, Hierarchical) → objek yang jaraknya dekat digabungkan

dist.eucl <- dist(df.scaled, method = "euclidean")
print("Jarak Euclidean:")
## [1] "Jarak 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)

5.1.3 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

dist.cheb <- dist(df.scaled, method = "maximum")
print("Jarak Chebyshev:")
## [1] "Jarak Chebyshev:"
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)

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

dist.man <- dist(df.scaled, method = "manhattan")
print("Jarak Manhattan:")
## [1] "Jarak 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)

5.1.5 Jarak Mahalanobis

Mahalanobis → Jarak antar titik yang mempertimbangkan skala (varians) dan korelasi antar variabel.

Contoh aplikasi: - Mendeteksi transaksi keuangan yang tidak wajar - Memisahkan kelompok dengan varians dan korelasi berbeda (Analisis Diskriminan)

5.1.6 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 \to \infty\]: jarak Chebyshev

5.2 Contoh Implementasi

Diberikan 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,] 6.172203 6.348343 6.965909
## [2,] 7.761144 2.894541 4.948354
## [3,] 9.934501 7.392280 7.464049
## [4,] 4.877779 7.082469 1.230248
## [5,] 2.119285 9.936146 7.050970
# Tentukan dua titik yang akan dihitung jaraknya
p1 <- data[1, ];p1
##       X1       X2       X3 
## 6.172203 6.348343 6.965909
p2 <- data[2, ];p2
##       X1       X2       X3 
## 7.761144 2.894541 4.948354

####5.2.1 Impelemtasi Jarak Minkowski

minkowski_distance <- function(x, y, p) {
  sum(abs(x - y)^p)^(1/p)
}

####5.2.2 Contoh penggunaan dengan p = 1 (Manhattan), p = 2 (Euclidean), p = 3 (Minkowski umum)

dist_p1 <- minkowski_distance(p1, p2, p = 1);dist_p1
## [1] 7.060297
dist_p2 <- minkowski_distance(p1, p2, p = 2);dist_p2
## [1] 4.303952
dist_p3 <- minkowski_distance(p1, p2, p = 3);dist_p3
## [1] 3.766268
dist_inf <- max(abs(p1 - p2));dist_inf
## [1] 3.453801

6 Vektor Rata rata

###6.1 Pengertian dan Rumus #### 6.1.1 Matriks Rata rata Matriks rata-rata adalah matriks yang setiap elemennya berisi nilai rata-rata dari data pada posisi yang sama di beberapa matriks atau observasi. Matriks ini membantu merangkum informasi sehingga lebih mudah melihat pola umum (tengah) dari data.

Jika \(X\) adalah matriks data berukuran \(m \times n\), maka vektor rata-rata:

\[ \bar{\mathbf{x}} = \begin{bmatrix} \bar{x}_1 \\ \bar{x}_2 \\ \vdots \\ \bar{x}_p \end{bmatrix} = \frac{1}{n}\sum_{i=1}^{n} \mathbf{x}_i \] ###6.1.2 Matriks Kovarians Matriks kovarians adalah matriks yang menunjukkan hubungan kovarians antar variabel dalam sebuah dataset. Matriks ini membantu memahami seberapa kuat dua variabel berubah bersama-sama, apakah meningkat atau menurun secara bersamaan.

\[ S = \frac{1}{n-1}\sum_{i=1}^{n} (\mathbf{x}_i - \bar{\mathbf{x}})(\mathbf{x}_i - \bar{\mathbf{x}})^T \]

\[ S = \begin{bmatrix} s_{11} & s_{12} & \cdots & s_{1p} \\ s_{21} & s_{22} & \cdots & s_{2p} \\ \vdots & \vdots & \ddots & \vdots \\ s_{p1} & s_{p2} & \cdots & s_{pp} \end{bmatrix} \] #### 6.1.3 Matriks Korelasi Matriks korelasi adalah matriks yang berisi nilai koefisien korelasi antar variabel dalam suatu dataset. Matriks ini menunjukkan kekuatan dan arah hubungan linear antar variabel, dengan nilai berkisar antara -1 sampai 1.

\[ R = D^{-1} S D^{-1} \]

\[ D = \text{diag}(\sqrt{s_{11}}, \sqrt{s_{22}}, \ldots, \sqrt{s_{pp}}) \]

\[ r_{ij} = \frac{s_{ij}}{\sqrt{s_{ii} \cdot s_{jj}}} \] #### 6.1.4 Matriks Standarisasi Matriks standarisasi adalah matriks yang diperoleh dengan menstandarkan setiap variabel sehingga memiliki rata-rata nol dan standar deviasi satu. Matriks ini digunakan agar variabel dengan skala berbeda dapat dibandingkan secara adil.

Untuk data \(X\), matriks data terstandardisasi \(Z\):

\[ Z = (X - \mathbf{1}\bar{\mathbf{x}}^T) D_s^{-1} \]

dengan \(\mathbf{1}\) adalah vektor satuan, dan

\[ D_s = \text{diag}(\sqrt{s_{11}}, \sqrt{s_{22}}, \ldots, \sqrt{s_{pp}}) \]

###6.2 Contoh Implementasi

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