Apa Itu Matriks?

Matriks merupakan susunan bilangan dalam bentuk baris dan kolom. Dalam R, kita dapat melakukan operasi dasar seperti penjumlahan, pengurangan, perkalian, transpose, invers, dan determinan.

Sebagai contoh, matriks A ordo 3 x 3 seperti di bawah ini :

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

Cara Menginput Matriks

Contoh Syntax :

# Membuat matriks X berordo 3x3 (pengisian per kolom)
X = matrix(c(6,3,9,
             5,4,7,
             8,1,6), nrow = 3, ncol = 3); X
##      [,1] [,2] [,3]
## [1,]    6    5    8
## [2,]    3    4    1
## [3,]    9    7    6

dalam syntax [6,3,9] merupakan kolom pertama, [5,4,7] untuk kolom kedua, dan [8,1,6] untuk kolom ketiga. Selanjutkan jika ingin menyatakan matriks berdasarkan baris, kita dapat menyatakan matriks dengan byrow = TRUE seperti di bawah ini :

Y = matrix(c(1,9,2,
             6,2,3,
             5,3,8), nrow = 3, ncol = 3,byrow = TRUE)
cat("Matriks Y:\n")
## Matriks Y:
print(Y)
##      [,1] [,2] [,3]
## [1,]    1    9    2
## [2,]    6    2    3
## [3,]    5    3    8

Operasi Matriks

Penjumlahan dan Pengurangan Matriks

Dua atau lebih matriks yang dijumlahkan atau dikurang harus memiliki ordo yang sama misalkan harus sama-sama berordo 2 x 2, bentuk syntax sebagai berikut :

X+Y #penjumlahan
##      [,1] [,2] [,3]
## [1,]    7   14   10
## [2,]    9    6    4
## [3,]   14   10   14
X-Y #pengurangan
##      [,1] [,2] [,3]
## [1,]    5   -4    6
## [2,]   -3    2   -2
## [3,]    4    4   -2

Perkalian Antar Matriks

Perkalian matriks dilakukan dengan mengalikan setiap elemen pada baris ke-i dari matriks pertama dengan elemen-elemen pada kolom ke-j dari matriks kedua, kemudian menjumlahkan hasilnya. Syaratnya, banyaknya kolom pada matriks pertama harus sama dengan banyaknya baris pada matriks kedua. Hasil perkalian akan menghasilkan sebuah matriks baru dengan ukuran (ordo): jumlah baris matriks pertama × jumlah kolom matriks kedua.

X%*%Y #perkalian
##      [,1] [,2] [,3]
## [1,]   76   88   91
## [2,]   32   38   26
## [3,]   81  113   87

Perkalian Antar Elemen

Konsep operasi ini pada dasarnya serupa dengan penjumlahan maupun pengurangan, hanya saja yang digunakan adalah operasi perkalian. Matriks yang dapat dikalikan bisa berupa skalar maupun matriks dengan matriks. Adapun bentuk syntax adalah sebagai berikut :

X*Y #matriks
##      [,1] [,2] [,3]
## [1,]    6   45   16
## [2,]   18    8    3
## [3,]   45   21   48
2*X #skalar
##      [,1] [,2] [,3]
## [1,]   12   10   16
## [2,]    6    8    2
## [3,]   18   14   12

Transpose Matriks

Transpose matriks merupakan operasi yang mengubah baris suatu matriks menjadi kolom, dan kolomnya menjadi baris. Jika sebuah matriks A berordo m × n ditransposisikan menjadi \(A^T\), maka ordonya berubah menjadi n × m. Ilustrasinya dapat ditunjukkan sebagai berikut:

\[ A = \begin{bmatrix} a_{11} & a_{12} & \dots & a_{1n} \\ a_{21} & a_{22} & \dots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \dots & a_{mn} \end{bmatrix} \]

maka hasil transpose adalah:

\[ A^T = \begin{bmatrix} a_{11} & a_{21} & \dots & a_{m1} \\ a_{12} & a_{22} & \dots & a_{m2} \\ \vdots & \vdots & \ddots & \vdots \\ a_{1n} & a_{2n} & \dots & a_{mn} \end{bmatrix} \]

Untuk operasi transpose, kita dapat menggunakan syntax t().

transX = t(X); transX
##      [,1] [,2] [,3]
## [1,]    6    3    9
## [2,]    5    4    7
## [3,]    8    1    6
transY = t(Y); transY
##      [,1] [,2] [,3]
## [1,]    1    6    5
## [2,]    9    2    3
## [3,]    2    3    8

Invers Matriks

Invers matriks dinotasikan sebagai \(A^{-1}\), dengan rumus umum sebagai berikut :

\[ A^{-1} = \frac{1}{det(A)} adj(A) \]

Dengan syarat, det(A) \(\neq 0\). Adapun, bentuk syntax pada R sebagai berikut :

inv_X = solve(X); inv_X
##            [,1]        [,2]       [,3]
## [1,] -0.2698413 -0.41269841  0.4285714
## [2,]  0.1428571  0.57142857 -0.2857143
## [3,]  0.2380952 -0.04761905 -0.1428571
inv_Y = solve(Y); inv_Y
##             [,1]        [,2]        [,3]
## [1,] -0.02554745  0.24087591 -0.08394161
## [2,]  0.12043796  0.00729927 -0.03284672
## [3,] -0.02919708 -0.15328467  0.18978102

Determinan Matriks

Determinan adalah nilai skalar yang hanya terdefinisi untuk matriks persegi. Determinan memberikan informasi tentang sifat matriks, seperti apakah matriks tersebut invertible (determinan ≠ 0) atau singular (determinan = 0).

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

Perhitungan determinan matriks dengan ordo selain 2 x 2 jauh lebih kompleks. Oleh karena itu, kita dapat menggunakan syntax det() untuk memudahkan pengerjaan.

det(X)
## [1] -63
det(Y)
## [1] -274

Pemanggilan Entri Matriks

Cara memanggil entri matriks dapat menggunakan format sebagai berikut “Nama Matriks[baris,kolom]”

#Memanggil seluruh entri matriks
Y
##      [,1] [,2] [,3]
## [1,]    1    9    2
## [2,]    6    2    3
## [3,]    5    3    8
#Memanggil entri matriks kolom ke-i
Y[,2]
## [1] 9 2 3
#Memanggil entri matriks baris 1 dan kolom 3
Y[1,3]
## [1] 2
#Memanggil entri matriks pada sel tertentu
X[c(2,1),2]
## [1] 4 5

Nilai dan Vektor Eigen

Nilai eigen (eigenvalues) dan vektor eigen (eigenvectors) merupakan konsep fundamental dalam aljabar linear. Untuk matriks persegi \(A\), vektor eigen \(v\) dan nilai eigen \(λ\) memenuhi persamaan:

\[Av=\lambda I\]

Yang dapat diselesaikan menggunakan persamaan karakteristik

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

eigX = eigen(X); eigX
## eigen() decomposition
## $values
## [1] 16.375729 -2.158258  1.782529
## 
## $vectors
##            [,1]       [,2]       [,3]
## [1,] -0.6596389 -0.7533791  0.5264778
## [2,] -0.2180221  0.2696159 -0.8175236
## [3,] -0.7192655  0.5997726  0.2334016
eigY = eigen(Y); eigY
## eigen() decomposition
## $values
## [1] 12.994248 -5.696114  3.701866
## 
## $vectors
##            [,1]       [,2]       [,3]
## [1,] -0.4721446 -0.8082761 -0.4952275
## [2,] -0.4624513  0.5632101 -0.3274876
## [3,] -0.7504787  0.1717093  0.8046749
eigvalX = eigX$values; eigvalX
## [1] 16.375729 -2.158258  1.782529
eigvalY = eigY$values; eigvalY
## [1] 12.994248 -5.696114  3.701866
eigvecX = eigX$vectors; eigvecX
##            [,1]       [,2]       [,3]
## [1,] -0.6596389 -0.7533791  0.5264778
## [2,] -0.2180221  0.2696159 -0.8175236
## [3,] -0.7192655  0.5997726  0.2334016
eigvecY = eigY$vectors; eigvecY
##            [,1]       [,2]       [,3]
## [1,] -0.4721446 -0.8082761 -0.4952275
## [2,] -0.4624513  0.5632101 -0.3274876
## [3,] -0.7504787  0.1717093  0.8046749

Dekomposisi Singular Value (SVD)

Dekomposisi Singular Value (SVD) adalah salah satu teknik dalam aljabar linear yang digunakan untuk memfaktorkan sebuah matriks menjadi tiga komponen penting. Jika ada sebuah matriks \(A\) berukuran m x n, maka SVD menuliskan:

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

Ket :

U = matriks ortogonal m x m, V = matriks orthogonal n x n \(\Sigma\) = matriks berukuran m x n yang elemen-elemen diagonal utamanya adalah nilai-nilai singular dari matriks A dan elemen-elemen lainnya 0

#Mencari nilai Matriks A
A <- matrix(c(2,1,7,5,-3,2,-1,2,6,4,-2,9), 4, 3, byrow=TRUE)
A
##      [,1] [,2] [,3]
## [1,]    2    1    7
## [2,]    5   -3    2
## [3,]   -1    2    6
## [4,]    4   -2    9
svd_result <- svd(A)
singular_value <- svd_result$d ; singular_value
## [1] 13.826446  6.451462  1.099102

Untuk mengetahui setiap komponen yang membentuk matriks A. Kita dapat menggunakan syntax sebagai berikut :

U <- svd_result$u ; U
##            [,1]       [,2]        [,3]
## [1,] -0.5176188  0.2272262 -0.72263364
## [2,] -0.2802457 -0.7411579 -0.31866617
## [3,] -0.3672408  0.6045619  0.06573244
## [4,] -0.7201857 -0.1831889  0.60986207
V <- svd_result$v ; V
##             [,1]       [,2]       [,3]
## [1,] -0.35800724 -0.7112581 -0.6049320
## [2,]  0.07442318  0.6240758 -0.7778114
## [3,] -0.93074809  0.3234831  0.1704896

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

Jarak Euclidean adalah jarak lurus (garis terpendek) antara dua titik di ruang. Dengan bentuk rumus umum sebagai berikut :

\[ d_{ij}=\sqrt{\sum_{i=1}^p(x_{ki}-x_{kj})^2} \]

Keterangan : p = dimensi [jarak lurus standar]

\(x_{ki}\) = Vektor ke - k pada baris ke - i

\(x_{kj}\)= Vektor ke - k pada baris ke - j

install.packages("factoextra", repos = "https://cran.r-project.org")
## package 'factoextra' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\User\AppData\Local\Temp\RtmpK6gJgz\downloaded_packages
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
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 Chebysev

Jarak Chebysev adalah satu ukuran jarak (distance metric) antara dua titik dalam ruang vektor berbentuk selisih terbesar di antara semua koordinat kedua titik.

Contoh implementasinya adalah untuk menghitung jarak langkah raja antara dua posisi (pada catur), berguna di quality control multivariat yang fokus pada dimensi terburuk (misalnya mengecek dimensi produk (lebar, panjang, tinggi)).

\[ d_{ij}=\max_i \, |x_{ki} - x_{kj}| \] Ket: \(x_{ki}\) = Vektor ke - k pada baris ke - i \(x_{kj}\)= Vektor ke - k pada baris ke - j

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 (City Block)

Jarak Manhattan (City Block distance) mengukur jarak berdasarkan pergerakan sepanjang sumbu koordinat, analog dengan perjalanan dalam grid kota.

Contoh implementasinya adalah untuk jarak dalam gudang/grid jalan yang tidak memungkinkan jalur diagona dan menghitung jarak antar dokumen berdasarkan frekuensi kata (NLP).. Berikut bentuk umum dari rumus Jarak Manhattan :

\[ d_{ij}=\sum_{i=1}^p|x_{ki}-x_{kj}| \]

Ket : \(x_{ki}\) = Vektor ke - k pada baris ke - i \(x_{kj}\)= Vektor ke - k pada baris ke - j

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 jarak antar titik yang mempertimbangkan skala (varians) dan korelasi antar variabel. Berikut bentuk umum dari rumus Jarak Mahalanobis :

\[ d_{ij}=\sqrt{(y_{i}-y_{j})^TS^{-1}(y_{i}-y_{j})} \]

Keterangan : >\(y_{i}\) = \((y_{i1},y_{i2},...,y_{ip})\) adalah observasi ke-i > > \(y_{j}\) = \((y_{j1},y_{j2},...,y_{jp})\) adalah observasi ke-j

install.packages("StatMatch", repos = "https://cran.r-project.org")
## also installing the dependencies 'DBI', 'mitools', 'RcppArmadillo', 'proxy', 'survey', 'lpSolve'
## package 'DBI' successfully unpacked and MD5 sums checked
## package 'mitools' successfully unpacked and MD5 sums checked
## package 'RcppArmadillo' successfully unpacked and MD5 sums checked
## package 'proxy' successfully unpacked and MD5 sums checked
## package 'survey' successfully unpacked and MD5 sums checked
## package 'lpSolve' successfully unpacked and MD5 sums checked
## package 'StatMatch' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\User\AppData\Local\Temp\RtmpK6gJgz\downloaded_packages
library(StatMatch)
## Warning: package 'StatMatch' was built under R version 4.4.3
## Loading required package: proxy
## Warning: package 'proxy' was built under R version 4.4.3
## 
## 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
## Warning: package 'survey' was built under R version 4.4.3
## 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
## Warning: package 'dplyr' was built under R version 4.4.3
## 
## Attaching package: 'dplyr'
## 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 (distance metric) yang merupakan generalisasi dari jarak Euclidean dan Manhattan dalam ruang vektor. 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 untuk jarak Manhattan, p=2 untuk jarak Euclidean, p->tak hingga jarak chebyshev Secara umum, jika dua titik

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 yang setiap elemennya merupakan nilai rata-rata dari data pada posisi (letak elemen) yang sama di antara sekumpulan vektor.

Misalkan ada m buah vektor berdimensi n :

\[ X = (x_{1},x_{2},...,x_{n}) \]

Maka, vektor rata - rata didefinisikan sebagai :

\[ \bar{X}=\frac{1}{m}\sum_{j=1}^mx_{j} \]

# 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 sebuah matriks persegi dan simetris yang elemen-elemennya merepresentasikan kovarians antara setiap pasang variabel dalam suatu kumpulan data. Elemen diagonal utama matriks ini berisi varian dari masing-masing variabel.

\[ \Sigma = \begin{bmatrix} \text{cov}(X, X) & \text{cov}(X, Y) & \text{cov}(X, Z) \\ \text{cov}(Y, X) & \text{cov}(Y, Y) & \text{cov}(Y, Z) \\ \text{cov}(Z, X) & \text{cov}(Z, Y) & \text{cov}(Z, Z) \end{bmatrix} = \begin{bmatrix} \sigma^2_X & \sigma_{XY} & \sigma_{XZ} \\ \sigma_{YX} & \sigma^2_Y & \sigma_{YZ} \\ \sigma_{ZX} & \sigma_{ZY} & \sigma^2_Z \end{bmatrix}\]

Adapun, bentuk syntax berupa package sebagai berikut :

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 Matrikstabel berbentuk matriks yang berisi nilai koefisien korelasi antar pasangan variabel dalam suatu data. bentuk dari matriks korelasi adalah sebagai berikut:

\[ R = \begin{bmatrix} 1 & r_{12} & r_{13} \\ r_{21} & 1 & r_{23} \\ r_{31} & r_{32} & 1 \end{bmatrix} \] Untuk mengetahui suatu korelasi antar variable dapat menggunakan syntax sebgai berikut:

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 varians masing masing variabel

Contoh syntax dan output :

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