1 Definisi Matriks

Matriks merupakan susunan bilangan yang disusun dalam bentuk baris dan kolom. Setiap nilai pada matriks disebut sebagai “entri matriks”. Ukuran baris dan kolom dari suatu matriks disebut ordo. Contohnya:

\[ \boldsymbol{A} = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \] Matriks di atas merupakan matriks berukuran/berordo \(2\times2\) yang berarti terdiri dari 2 baris dan 2 kolom.

Implementasi dari matriks di dunia nyata adalah sebagai ala pelatihan model machine learning, ilmu data serta statistika, simulasi komputer, menyelesaikan persamaan linear, dll.

Di dalam R, kita dapat menginput data ke dalam matriks sebagai berikut:

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

Matriks \(\boldsymbol{X}\) di atas merupakan matriks berordo \(2\times2\). Umumnya suatu matriks akan disusun berdasarkan kolomnya (seperti pada matriks \(\boldsymbol{X}\)). Apabila ingin menyusun suatu matriks berdasarkan barisnya, maka syntax yang diperlukan adalah sebagai berikut:

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

Maka matriks \(\boldsymbol{Y}\) dengan ordo \(2\times2\) telah disusun berdasarkan barisnya.

1.1 Operasi Matriks

Matriks umumnya dapat diperlakukan seperti bilangan dengan operasi matematika, hanya saja untuk beberapa operasi matriks terdapat beberapa hal yang harus diperhatikan. Operasi-operasi pada matriks di antaranya adalah:

1.1.1 Penjumlahan Matriks

Penjumlahan matriks merupakan salah satu operasi matriks yang bertujuan untuk menjumlahkan setiap entri dari suatu matriks terhadap matriks lainnya. Hal yang perlu diperhatikan dalam penjumlahan matriks adalah kedua matriks tersebut haruslah berordo yang sama. Seperti pada matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\) sebelumnya, maka penjumlahan matriksnya adalah:

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

Hasil di atas merupakan hasil dari penjumlahan antara matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\).

1.1.2 Pengurangan Matriks

Pengurangan matriks merupakan salah satu operasi matriks yang bertujuan untuk mengurangi setiap entri dari suatu matriks terhadap matriks lainnya. Hal yang perlu diperhatikan dalam pengurangan matriks sama seperti pada penjumlahan matriks, sehingga hasil pengurangan matriks dari matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\) adalah:

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

Hasil di atas merupakan hasil pengurangan antara matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\).

1.1.3 Perkalian Matriks

Perkalian matriks merupakan salah satu operasi matriks yang bertujuan untuk menggabungkan informasi dari dua matriks berbeda. Langkah-langkah dalam mengalikan matriks adalah mengalikan setiap entri pada tiap baris dari matriks pertama dengan tiap kolom dari matriks kedua. Oleh karena itu, hal yang harus diperhatikan dalam mengalikan martiks adalah jumlah kolom dari matriks pertama harus sama dengan jumlah baris dari matriks kedua. Dalam kasus matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\) di atas, maka hasil perkalian matriksnya adalah:

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

Matriks \(\boldsymbol{X}\) memiliki 3 kolom dan matriks \(\boldsymbol{Y}\) memiliki 3 baris, sehingga matriks tersebut dapat dikalikan dan menampilkan hasil seperti di atas.

Catatan tambahan: Apabila dua matriks dapat dikalikan, maka ordo matriks hasilnya adalah jumlah baris matriks pertama \(\times\) jumlah kolom matriks kedua. Contohnya: \[\boldsymbol{X}_{2\times3} \times \boldsymbol{Y}_{3\times4} = \boldsymbol{Z}_{2\times4}\]

1.1.4 Perkalian Matriks dengan Skalar

Perkalian matriks dengan skalar merupakan salah satu operasi matriks yang bertujuan untuk mengalikan setiap entri dari satu matriks terhadap nilai skalar (konstan). Hasil dari perkalian tersebut adalah matriks dengan ordo serupa yang setiap entrinya adalah hasil perkalian dengan skalar tersebut. Misalnya kita ingin mengalikan matriks \(\boldsymbol{X}\) dengan suatu skalar yaitu 2, maka:

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

Hasil di atas merupakan hasil perkalian matriks \(\boldsymbol{X}\) dengan 2.

1.1.5 Perkalian antar Entri Matriks

Perkalian antar elemen matriks merupakan salah satu operasi matriks yang bertujuan untuk mengalikan setiap entri dari suatu matriks terhadap matriks lainnya. Hal yang perlu diperhatikan dalam operasi ini sama seperti penjumlahan dan pengurangan matriks sebelumnya, sehingga hasil perkalian antar entri matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\) adalah:

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

Hasil di atas merupakan hasil perkalian antar elemen matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\).

1.1.6 Transpos Matriks

Transpos matriks merupakan salah satu operasi matriks yang bertujuan untuk menukar ordo dari suatu matriks (baris menjadi kolom, vice versa). \[\boldsymbol{F}_{2\times3} \rightarrow \boldsymbol{F}^{'}_{3\times2}\] Sebelumnya kita sudah memiliki matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\),

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
##      [,1] [,2] [,3]
## [1,]  7.3  6.8  8.5
## [2,]  8.9  7.6  6.1
## [3,]  9.4  8.0  7.2

maka hasil transpos matriksnya adalah:

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

Hasil di atas menunjukkan hasil transpos matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\).

1.1.7 Determinan Matriks

Determinan Matriks merupakan salah satu operasi matriks yang bertujuan untuk menunjukkan apakah suatu matriks “invertible” atau tidak. Hasil yang diberikan dalam determinan suatu matriks adalah suatu skalar.

Misalkan kita memiliki matriks berordo \(2\times2\) seperti berikut: \[ \boldsymbol{A} = \begin{bmatrix} a_{11} & a_{12} \\ a_{21} & a_{22} \end{bmatrix} \] Maka cara menghitung determinannya adalah: \[\det(\boldsymbol{A}) = a_{11} a_{22} - a_{12} a_{21}\] Hal yang perlu diperhatikan dalam mencari determinan suatu matriks adalah matriks tersebut haruslah berbentuk persegi (berordo \(n\times n\)). Untuk mencari determinan matriks persegi dengan \(n \geq 2\) cenderung akan membutuhkan waktu yang lebih lama dan perhitungan yang lebih kompleks, sehingga disarankan untuk menggunakan software dalam mencari determinan matriks tersebut.

Sebelumnya kita sudah memiliki matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\) di mana keduanya merupakan matriks persegi yang sama-sama berordo \(3\times3\) sehingga dapat dicari nilai determinannya yaitu:

detX = det(X); detX
## [1] 2.167
detY = det(Y); detY
## [1] -4.656

Hasil di atas menunjukkan hasil determinan matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\).

1.1.8 Invers Matriks

Invers matriks merupakah salah satu operasi matriks yang bertujuan untuk “membalik” operasi matriks. Kata “invers” di sini sama seperti invers pada bilangan.

Analogi invers dalam bilangan: \[ 3 \times \frac{1}{3} = 1 \] Analogi invers dalam matriks: \[ \boldsymbol{G_{2\times2}} \times \boldsymbol{G^{-1}_{2\times2}} = \boldsymbol{I_{2\times2}} \] Jadi invers dalam bilangan adalah untuk mencari kebalikan dari bilangan tersebut di mana perkalian suatu bilangan dengan inversnya adalah satu (1), sedangkan invers dalam matriks adalah untuk mencari kebalikan dari matriks tersebut di mana perkalian suatu matriks dengan inversnya adalah matriks identitas (\(\boldsymbol{I}\)).

Hal-hal yang perlu diperhatikan dalam mencari invers matriks adalah matriks tersebut haruslah berbentuk persegi dan determinan dari matriks tersebut tidak boleh sama dengan nol (\(\det(\boldsymbol{A}) \neq 0\)).

Rumus untuk mencari invers matriks adalah: \[ \boldsymbol{A^{-1}} = \frac{1}{\det{\boldsymbol{A}}}\times adj(\boldsymbol{A}) \] \(adj(\boldsymbol{A})\) adalah hasil transpos matriks kofaktor dari matriks A. Dalam pengunaannya di R, invers matriks dapat dihitung sebagai berikut:

invX = solve(X); invX
##            [,1]      [,2]       [,3]
## [1,]  8.3848639  2.118136 -8.9709275
## [2,] -9.6585141 -1.933549  9.9538533
## [3,] -0.1661283 -0.410706  0.5629903
invY = solve(Y); invY
##             [,1]      [,2]      [,3]
## [1,] -1.27147766 -4.089347  4.965636
## [2,]  1.44759450  5.871993 -6.683849
## [3,]  0.05154639 -1.185567  1.082474

Hasil di atas menunjukkan hasil invers dari matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\).

1.1.9 Memanggil Entri Matriks

Memanggil entri matriks merupakan salah satu operasi matriks yang bertujuan untuk mengeluarkan entri-entri tertentu pada suatu matriks. Entri-entri ini tidak sepenuhnya hilang dari matriks ketika dipanggil, tetapi hanya dipanggil untuk kebutuhan analisis dan tiap entri dari suatu matriks tidak benar-benar berubah.

Misalkan kita mempunyai matriks \(\boldsymbol{A}\) berordo \(2\times2\) sebagai berikut: \[ \boldsymbol{A} = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} \]

Dan misalkan kita ingin memanggil entri matriks \(\boldsymbol{A}\) yang berada di baris pertama dan kolom kedua, maka yang kita ambil adalah angka 2.

Pemanggilan entri matriks di R dapat dilakukan sebagai berikut:

  • Memanggil kembali matriks \(\boldsymbol{X}\)
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
  • Memanggil seluruh entri matriks \(\boldsymbol{X}\) di kolom kedua
X[,2]
## [1] 5.4 7.0 6.7
  • Memanggil seluruh entri matriks \(\boldsymbol{X}\) di baris ketiga
X[3,]
## [1] 7.9 6.7 9.2
  • Memanggil entri matriks \(\boldsymbol{X}\) di sel (3,2)
X[3,2]
## [1] 6.7
  • Memanggil entri matriks \(\boldsymbol{X}\) di sel (1,1) dan (1,3)
X[1,c(1,3)]
## [1] 6.5 8.1
  • Memanggil seluruh entri matriks \(\boldsymbol{X}\) di kolom 2 hingga 3
X[,2:3]
##      [,1] [,2]
## [1,]  5.4  8.1
## [2,]  7.0  6.9
## [3,]  6.7  9.2
  • Memanggil seluruh entri matriks \(\boldsymbol{X}\) di baris 1 hingga 2
X[1:2,]
##      [,1] [,2] [,3]
## [1,]  6.5  5.4  8.1
## [2,]  8.2  7.0  6.9
  • Memanggil seluruh entri matriks \(\boldsymbol{X}\) di baris 2 hingga 3 dan kolom 1 hingga 2
X[2:3,1:2]
##      [,1] [,2]
## [1,]  8.2  7.0
## [2,]  7.9  6.7

2 Eigen Value dan Eigen Vector

Eigen value dalam matriks menunjukkan seberapa besar sebuah vektor berubah panjangnya setelah dikalikan dengan matriks, sedangkan eigen value dalam analisis data menunjukkan jumlah variasi yang dapat dijelaskan oleh suatu komponen.

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

Setelah menyelesaikan persamaan di atas, maka nilai eigen value akan ditemukan dalam bentuk \(\lambda\).

Sedangkan eigen vector adalah suatu vektor khusus yang jika dikali dengan sebuah matriks, maka arahnya tidak berubah (hanya panjangnya saja yang bisa berubah). Sedangkan eigen vector dalam analisis data menunjukkan jumlah variasi yang dijelaskan suatu komponen lainnya.

Eigen vector dapat dicari setelah menemukan eigen value (\(\lambda\)) sebagai berikut:

\[ \left(\boldsymbol{A}-\lambda \boldsymbol{I} \right)v = 0 \]

Contoh perhitungan eigen value dan eigen vector pada matriks matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\):

  • Eigen Value
eigen(X)$values
## [1] 22.0140019  0.4816027  0.2043953
eigen(Y)$values
## [1] 23.230397 -1.286223  0.155826
  • Eigen Vector
eigen(X)$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
eigen(Y)$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

Fun fact:

  • Perkalian dari seluruh eigen value suatu matriks akan sama dengan nilai determinannya.

    Bukti:

det(X)
## [1] 2.167
prod(eigen(X)$values)
## [1] 2.167
  • Penjumlahan dari seluruh eigen value suatu matriks akan sama dengan trace matriks tersebut.

    Bukti:

sum(diag(X))
## [1] 22.7
sum(eigen(X)$values)
## [1] 22.7

Eigen value dan eigen vector sangat sangat berguna dalam analisis data multivariat seperti PCA (Principle Component Analysis).

3 Singular Value Decomposition (SVD)

Singular Value Decomposition (SVD) adalah suatu cara dalam memecah suatu matriks menjadi tiga matriks lainnya.

\[ \boldsymbol{A_{n\times m}} = \boldsymbol{U_{n\times n}} \boldsymbol{D_{n\times m}} \boldsymbol{V_{m\times m}^{'}} \]

Di mana:

\(\boldsymbol{V}\) = Matriks ortogonal yang biasanya disebut right singluar vectors. Isinya merupakan eigen vector dari matriks \(\boldsymbol{A^{'}\boldsymbol{A}}\).

\(\boldsymbol{D}\) = Matriks diagonal yang berisi singular values. Isinya merupakan akar kuadrat dari eigen value matriks \(\boldsymbol{A^{'}\boldsymbol{A}}\).

\(\boldsymbol{U}\) = Matriks ortogonal yang biasanya disebut left singluar vectors. \[ \boldsymbol{U} = \frac{1}{d_{i}} \boldsymbol{A} v_{i} \]

SVD biasanya digunakan dalam sistem kompresi gambar atau video, pendekatan machine learning, dan juga analisis big data.

Sebelumnya kita sudah memiliki matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\),

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
##      [,1] [,2] [,3]
## [1,]  7.3  6.8  8.5
## [2,]  8.9  7.6  6.1
## [3,]  9.4  8.0  7.2

maka nilai-nilai SVD-nya adalah:

  • \(\boldsymbol{U}\)
svd(X)$u
##            [,1]       [,2]       [,3]
## [1,] -0.5274319  0.5066162 -0.6820231
## [2,] -0.5747343 -0.8039611 -0.1527316
## [3,] -0.6256964  0.3114266  0.7152045
svd(Y)$u
##            [,1]       [,2]       [,3]
## [1,] -0.5558804  0.8140661 -0.1682062
## [2,] -0.5630694 -0.5176036 -0.6442355
## [3,] -0.6115144 -0.2634061  0.7461014
  • \(\boldsymbol{D}\)
svd(X)$d
## [1] 22.12315121  1.83666449  0.05333129
svd(Y)$d
## [1] 23.34772791  2.24403746  0.08886653
  • \(\boldsymbol{V}\)
svd(X)$v
##            [,1]       [,2]        [,3]
## [1,] -0.5914226 -0.4569184 -0.66441323
## [2,] -0.5000842 -0.4385353  0.74672792
## [3,] -0.6325624  0.7738943  0.03086198
svd(Y)$v
##            [,1]       [,2]       [,3]
## [1,] -0.6346433 -0.5080160  0.5823638
## [2,] -0.5547190 -0.2252131 -0.8009780
## [3,] -0.5380656  0.8313837  0.1388761

Hasil di atas merupakan hasil-hasil SVD dari matriks \(\boldsymbol{X}\) dan \(\boldsymbol{Y}\). Di mana hasil-hasil tersebut jika saling dikalikan satu sama lain sesuai sumber matriksnya maka akan membentuk matriks asalnya sesuai yang dijelaskan oleh persamaan yang dijelaskan di awal bagian ini.

4 Konsep Jarak

Di dalam analisis data multivariat, jarak dipakai untuk mengukur seberapa jauh/mirip/beda antara dua objek atau antara satu pengamatan terhadap titik pusatnya. Objek-objek ini dapat berupa individu, titik-titik data, ataupun hasil observasi.

Sebelum masuk lebih dalam ke konsep jarak, kita akan menyiapkan terlebih dahulu sebuah dataframe yang akan kita gunakan untuk melakukan contoh perhitungan dan analisis dalam konsep jarak ini.

library(factoextra) # Menggunakan library untuk visualisasi konsep jarak
set.seed(321) # Untuk mengontrol keacakan
ss <- sample(1:50, 15) # Mengambil 15 data/observasi unik dari 1 hingga 50 observasi
df <- USArrests[ss, ] # Membuat dataframe yang mengambil 15 data/observasi unik dari dataset USArrests (sudah disediakan oleh R)
df.scaled <- scale(df) # Melakukan standarisasi data
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

4.1 Jarak Euclidian

Jarak Euclidian merupakan jarak lurus (garis terpendek) antara dua titik di dalam bidang. Jarak ini dapat dikonsepkan atau diperluas hingga ke ruang dengan dimensi \(p\) di mana \(p>3\). Jarak Euclidian dapat dihitung melalui:

\[ d_{ij} = \sqrt{(x_i-x_j)^t(x_i-x_j)} \]

Contoh aplikasi jarak Euclidian adalah menghitung jarak lurus antara dua koordinat dalam peta (GPS) serta Clustering (objek yang jaraknya dekat dapat digabungkan).

# Contoh kasus dengan dataframe sebelumnya
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) # Heatmap dari jarak Euclidian

Heatmap tersebut menjelaskan bahwa semakin mirip profil kejahatan pada dua negara bagian berbeda maka keduanya cenderung memiliki jarak Euclidian yang kecil (semakin merah), sedangkan semakin berbeda profil kejahatan pada dua negara bagian berbeda maka keduanya cenderung memiliki jarak Euclidian yang besar (semakin biru). Garis merah pada diagonal sekunder menunjukkan jarak satu negara bagian terhadap dirinya sendiri (\(d_{ij}=0\)).

Misalnya pada North Dakota dan New Mexico ditampilkan berwarna biru yang menunjukkan profil kejahatan di antara keduanya berbeda jauh, sedangkan pada New York dan Illinois ditampilkan berwarna merah yang menunjukkan profil kejahatan di antara keduanya cenderung sama.

4.2 Jarak Chebyshev

Jarak Chebyshev merupakan jarak yang mencari nilai maksimum di antara perbedaan koordinat. Jarak ini hanya memfokuskan nilai jarak pada dimensi dengan selisih terbesar. Jarak Chebyshev dapat dihitung melalui:

\[ d_{ij}=\max_{l\leq 1 \leq p}\left (\lvert x_{li}-x_{lj} \rvert \right) \] Contoh aplikasi jarak Chebyshev adalah menghitung jarak langkah bidak raja antara dua posisi serta berguna di dalam pengendalian mutu multivariat untuk memeriksa dimensi dari suatu produk (panjang, lebar, tinggi) dan memfokuskan pada dimensi terburuk.

# Contoh kasus dengan dataframe sebelumnya
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)

Penjelasan untuk heatmap dari jarak Chebyshev ini akan serupa dengan heatmap dari jarak Euclidian.

Misalnya pada North Dakota dan New Mexico ditampilkan berwarna biru yang menunjukkan profil kejahatan di antara keduanya berbeda jauh.

4.3 Jarak Manhattan

Jarak Manhattan (City Block) merupakan jumlah perbedaan absolut dalam koordinat (jarak berbasis grid). Jarak Manhattan dapat dihitung melalui:

\[ d_{ij}=\sum_{l=1}^{p} \lvert x_{li}-x_{lj} \rvert \]

Contoh aplikasi Jarak Manhattan adalah menghitung jarak dalam grid yang tidak memungkinkan jalur diagonal serta menghitung jarak antar dokumen berdasarkan frekuensi kata (NLP).

# Contoh kasus dengan dataframe sebelumnya
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) # Heatmap dari jarak Manhattan

Penjelasan untuk heatmap dari jarak Manhattan ini akan serupa dengan heatmap dari jarak Euclidian.

Misalnya pada North Dakota dan New Mexico ditampilkan berwarna biru yang menunjukkan profil kejahatan di antara keduanya berbeda jauh.

4.4 Jarak Mahalanobis

Jarak Mahalanobis merupakan jarak antar titik yang mempertimbangkan skala (varians) dan korelasi antar variabel. Jarak Mahalanobis dapat dihitung dengan mencari matriks jarak untuk setiap objek melalui:

\[ d_{ij}=\sqrt{\left(\boldsymbol{y_i}-\boldsymbol{y_j}\right)^t\boldsymbol{S^{-1}}\left(\boldsymbol{y_i}-\boldsymbol{y_j}\right)} \]

Di mana \(\boldsymbol{S}\) adalah matriks variansi-kovariansi dari matriks \(\boldsymbol{Y}\).

Contoh aplikasi jarak Mahalanobis adalah mendeteksi transaksi keuangan yang tidak wajar serta memisahkan kelompok dengan varians dan korelasi berbeda (Analisis Diskriminan).

# Contoh kasus dengan dataframe sebelumnya
library(StatMatch)
dist.mah <- mahalanobis.dist(df.scaled); dist.mah
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

Pada hasil matriks ini menunjukkan semakin kecil nilai yang ditampilkan antara dua bagian negara menunjukkan profil kejahatan yang semakin mirip, sedangkan semakin besar nilai yang ditampilkan antara dua bagian negara menunjukkan profil kejahatan yang semakin berbeda. Matriks ini cenderung akan menyusun diagonal utama dengan angka nol karena jarak Mahalanobis antara suatu negara bagian dengan dirinya sendiri akan bernilai nol.

Misalnya pada Kansas dan Oklahoma yang bernilai 0.64999 menunjukkan profil kejahatan di antara keduanya cenderung mirip, sedangkan pada Hawaii dan New Mexico yang bernilai 4.645567 menunjukkan profil kejahatan di antara keduanya cenderung berbeda.

4.5 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.

\[ d_{ij}=\left (\sum_{k=1}^{D} \left (\lvert x_{ki}-x_{kj} \rvert^p\right)^{\frac{1}{p}} \right) \]

Jika \(p=1\) maka terbentuk jarak Manhattan

Jika \(p=2\) maka terbentuk jarak Euclidian

Jika \(p\rightarrow \infty\) maka terbentuk jarak Chebyshev

# Contoh kasus dengan data acak
# Membuat data acak
set.seed(123) # Untuk mengontrol keacakan
data <- matrix(runif(15, min = 1, max = 10), nrow = 5, ncol = 3)
colnames(data) <- c("X1", "X2", "X3") # Memberi nama setiap kolom dengan variabel X
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
# Menentukan dua titik yang akan dihitung jaraknya
p1 <- data[2, ];p1
##       X1       X2       X3 
## 8.094746 5.752949 5.080007
p2 <- data[3, ];p2
##       X1       X2       X3 
## 4.680792 9.031771 7.098136
# Membuat fungsi jarak Minkowsi
minkowski_distance <- function(x, y, p) {
  sum(abs(x - y)^p)^(1/p)
}
# Contoh penggunaan dengan nilai p = 1, 2, dan tak hingga
dist_p1 <- minkowski_distance(p1, p2, p = 1);dist_p1
## [1] 8.710904
dist_p2 <- minkowski_distance(p1, p2, p = 2);dist_p2
## [1] 5.145736
dist_inf <- max(abs(p1 - p2));dist_inf
## [1] 3.413954

Dari hasil di atas ditunjukkan bahwa untuk beragam nilai \(p\) maka hasil perhitungan akan sesuai dengan hasil perhitungan yang dijelaskan di awal bagian ini.

5 Vektor Rata-rata

Vektor rata-rata merupakan suatu vektor baru yang komponennya masing-masing adalah rata-rata dari komponen yang sama di semua vektor. Vektor rata-rata dapat dihitung melalui:

\[ \vec{v}_{avg}=\sum_{i=1}^{n} \frac{\vec{v}_i}{n} \]

Dengan \(n\) adalah jumlah vektor yang akan dihitung nilai vektor rata-ratanya.

Contoh dengan 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

Catatan tambahan:

  • Matriks Kovarians

\[ \boldsymbol{S}=\frac{1}{n-1}\boldsymbol{D^t}\boldsymbol{D} \]

Di mana \(\boldsymbol{D}\) adalah matriks deviasi yang dapat dihitung melalui:

\[ \boldsymbol{D}=\boldsymbol{X}-\boldsymbol{\bar{X}} \]

Contoh perhitungan matriks kovarians di dalam R:

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

\[ \boldsymbol{R}=\boldsymbol{D_{s}^{-1}}\boldsymbol{S}\boldsymbol{D_{s}^{-1}} \]

Di mana \(\boldsymbol{D_s}\) adalah matriks standarisasi.

Contoh perhitungan matriks korelasi di dalam R:

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)

\[ \boldsymbol{D_s}=diag\left(\sqrt{diag\left(S\right)}\right) \]

Di mana \(diag(\boldsymbol{S})\) adalah operasi untuk mengambil elemen-elemen diagonal dari matriks \(\boldsymbol{S}\) yang merupakan varians dari setiap variabel.

Contoh perhitungan matriks standarisasi di dalam R:

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 # Matriks 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
Ds = diag(sqrt(diag(S))); Ds # Matriks Standarisasi
##          [,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 # Matriks Korelasi
##           [,1]      [,2]      [,3]
## [1,] 1.0000000 0.9895743 0.9566313
## [2,] 0.9895743 1.0000000 0.9528259
## [3,] 0.9566313 0.9528259 1.0000000

Best regards,

Febrianggi Caesar Immanuel