Matriks merupakan susunan angka-angka di dalam kotak yang dibagi ke dalam baris dan kolom. Matriks diberi nama dengan huruf kapital seperti A atau B, sementara elemen pada matriks menggunakan huruf kecil seperti a atau b. Misalkan terdiri dari n baris dan p kolom, maka matriks tersebut berukuran (ordo) n x p.
Sebagai contoh, matriks A ordo 2 x 2 seperti di bawah ini :
\[A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}\]
Dalam pengisian matriks, terdapat 2 cara pengisian, yaitu :
Berdasarkan kolom
Berdasarkan baris
Untuk menyatakan suatu matriks, kita harus menggunakan function matrix(). Apabila matriks ingin disajikan berdasarkan kolom, kita dapat menyatakan byrow = FALSE seperti pada contoh berikut :
# Membuat matriks X berordo 3x3 (berdasarkan kolom)
X = matrix(c(2,7,9,
1,4,3,
4,5,1), nrow = 3, ncol = 3,byrow = FALSE)
cat("Matriks X:\n")
## Matriks X:
print(X)
## [,1] [,2] [,3]
## [1,] 2 1 4
## [2,] 7 4 5
## [3,] 9 3 1
Sebaliknya jika ingin menyatakan matriks berdasarkan baris, kita dapat menyatakan matriks dengan byrow = TRUE seperti pada contoh berikut :
# Membuat matriks X berordo 3x3 (berdasarkan baris)
Y = matrix(c(7,4,9,
2,4,1,
5,3,4), nrow = 3, ncol = 3,byrow = TRUE)
cat("Matriks Y:\n")
## Matriks Y:
print(Y)
## [,1] [,2] [,3]
## [1,] 7 4 9
## [2,] 2 4 1
## [3,] 5 3 4
Cara melakukan operasi perhitungan pada matriks ialah menjumlahkan atau mengurangi entri - entri yang bersesuaian dengan posisinya (ordo matriks harus sama). Adapun, bentuk syntax sebagai berikut :
penjumlahan <- X+Y
pengurangan <- X-Y
cat("Jadi hasil penjumlahan dari kedua matriks tersebut adalah",print(penjumlahan))
## [,1] [,2] [,3]
## [1,] 9 5 13
## [2,] 9 8 6
## [3,] 14 6 5
## Jadi hasil penjumlahan dari kedua matriks tersebut adalah 9 9 14 5 8 6 13 6 5
cat("Jadi hasil pengurangan dari kedua matriks tersebut adalah",print(pengurangan))
## [,1] [,2] [,3]
## [1,] -5 -3 -5
## [2,] 5 0 4
## [3,] 4 0 -3
## Jadi hasil pengurangan dari kedua matriks tersebut adalah -5 5 4 -3 0 0 -5 4 -3
Cara melakukan operasi perkalian antar matriks yaitu dengan mengalikan seluruh elemen matriks 1 pada baris ke - i dengan seluruh elemen matriks 2 pada elemen 2 dengan syarat ordo kedua matriks memiliki jumlah kolom yang sama pada matriks 1 dan jumlah baris pada matriks 2. Adapun untuk syntax R nya sebagai berikut :
perkalian = X%*%Y
cat("Hasil dari operasi perkalian berikut adalah",print(perkalian))
## [,1] [,2] [,3]
## [1,] 36 24 35
## [2,] 82 59 87
## [3,] 74 51 88
## Hasil dari operasi perkalian berikut adalah 36 82 74 24 59 51 35 87 88
Konsep dari operasi perkalian antar elemen mirip dengan operasi penjumlahan dan pengurangan. Akan tetapi, operasi yang digunakan adalah perkalian. Bentuk matriks yang dapat dikalikan bisa dalam bentuk skalar ataupun matriks itu sendiri. Adapun, bentuk syntax sebagai berikut :
p.matrix = X*Y
p.skalar = 2*X
cat("Hasil dari perkalian antar elemen matriks adalah",print(p.matrix))
## [,1] [,2] [,3]
## [1,] 14 4 36
## [2,] 14 16 5
## [3,] 45 9 4
## Hasil dari perkalian antar elemen matriks adalah 14 14 45 4 16 9 36 5 4
cat("Hasil dari perkalian antar elemen skalar adalah",print(p.skalar))
## [,1] [,2] [,3]
## [1,] 4 2 8
## [2,] 14 8 10
## [3,] 18 6 2
## Hasil dari perkalian antar elemen skalar adalah 4 14 18 2 8 6 8 10 2
Transpose matriks adalah operasi yang menukar baris dan kolom pada sebuah matriks. Misalnya A berordo m x n ditranspose menjadi \(A^T\), sehingga ordonya menjadi n x m. Adapun untuk contohnya 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 dari matriks A 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 melakukan operasi transpose, kita dapat menggunakan syntax t().
transpose_X = t(X)
cat("Hasil transpose matriks X",print(transpose_X))
## [,1] [,2] [,3]
## [1,] 2 7 9
## [2,] 1 4 3
## [3,] 4 5 1
## Hasil transpose matriks X 2 1 4 7 4 5 9 3 1
Invers matriks dinotasikan sebagai \(A^{-1}\), dengan rumus umum sebagai berikut :
\[ A^{-1} = \frac{1}{det(A)} adj(A) \] Dengan syarat bahwa det(A) \(\neq 0\). Adapun bentuk syntax pada R sebagai berikut :
invers <- solve(X)
cat("Invers dari matriks X adalah",print(invers))
## [,1] [,2] [,3]
## [1,] 0.2500000 -0.25000000 0.25000000
## [2,] -0.8636364 0.77272727 -0.40909091
## [3,] 0.3409091 -0.06818182 -0.02272727
## Invers dari matriks X adalah 0.25 -0.8636364 0.3409091 -0.25 0.7727273 -0.06818182 0.25 -0.4090909 -0.02272727
Determinan matriks adalah nilai skalar tunggal yang dihitung dari entri-entri sebuah matriks persegi dan memberikan informasi penting tentang sifat matriks tersebut, seperti apakah matriks tersebut memiliki invers atau dapat digunakan untuk menyelesaikan sistem persamaan linear. Bentuk rumus umum determinan matriks 2x2 :
\[A = \begin{bmatrix} a & b \\ c & d \end{bmatrix} \to det(A) =ad-bc\]
Untuk syntax pada R yaitu sebagai berikut :
detX = det(X)
cat("Determinan matriks tersebut adalah",print(detX))
## [1] -44
## Determinan matriks tersebut adalah -44
Pemanggilan entry matriks di R dapat menggunakan format sebagai berikut “print(Nama_matriks[baris,kolom])
# Memanggil seluruh entry matriks
print(X)
## [,1] [,2] [,3]
## [1,] 2 1 4
## [2,] 7 4 5
## [3,] 9 3 1
# Memanggil entri matriks baris atau kolom ke-i
print(X[2,])
## [1] 7 4 5
# Memanggil entri matriks baris atau kolom tertentu
print(X[2,3])
## [1] 5
# Memanggil entri matriks pada sel tertentu
print(X[c(1,2),3])
## [1] 4 5
Nilai Eigen (λ) adalah nilai yang merepresentasikan besarnya varians atau informasi yang dapat dijelaskan oleh sebuah komponen atau dimensi utama. Sedangkan, Vektor Eigen adalah vektor yang arahnya tidak berubah ketika sebuah transformasi linear (diwakili oleh sebuah matriks) diterapkan padanya. Vektor ini menunjukkan arah dari varians yang dijelaskan oleh nilai eigen.
Nilai dan vektor eigen dari sebuah matriks A memenuhi persamaan :
\[Av=\lambda I\]
Yang dapat diselesaikan menggunakan persamaan karakteristik :
\[ det(A-\lambda I) = 0 \]
eig_X = eigen(X)
print(eig_X)
## eigen() decomposition
## $values
## [1] 10.721218 -4.611223 0.890005
##
## $vectors
## [,1] [,2] [,3]
## [1,] -0.3397315 -0.50604534 0.3110962
## [2,] -0.7629589 -0.08689532 -0.9387281
## [3,] -0.5499784 0.85811847 0.1483532
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 dituliskan sebagai berikut :
\[A=U\Sigma V^t\]
Keterangan :
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(5,-3,6,2,
-4,8,-2,5,
-1,7,3,9), 4, 3, byrow=FALSE)
svd_result <- svd(A);svd_result
## $d
## [1] 15.103695 9.726879 0.515972
##
## $u
## [,1] [,2] [,3]
## [1,] -0.274762981 -0.5109849 0.5281651
## [2,] 0.721314694 0.1837082 0.6613839
## [3,] -0.003106982 -0.7196166 0.1074900
## [4,] 0.635767853 -0.4327791 -0.5215925
##
## $v
## [,1] [,2] [,3]
## [1,] -0.1512786 -0.8522062 0.5008586
## [2,] 0.6657061 0.2867254 0.6889295
## [3,] 0.7307189 -0.4376449 -0.5239435
Jika, ingin mengetahui setiap komponen yang membentuk matriks A. Kita dapat menggunakan syntax sebagai berikut :
U = svd_result$u;U
## [,1] [,2] [,3]
## [1,] -0.274762981 -0.5109849 0.5281651
## [2,] 0.721314694 0.1837082 0.6613839
## [3,] -0.003106982 -0.7196166 0.1074900
## [4,] 0.635767853 -0.4327791 -0.5215925
V = svd_result$v;V
## [,1] [,2] [,3]
## [1,] -0.1512786 -0.8522062 0.5008586
## [2,] 0.6657061 0.2867254 0.6889295
## [3,] 0.7307189 -0.4376449 -0.5239435
d = svd_result$d;d
## [1] 15.103695 9.726879 0.515972
#Persiapan syntax untuk materi jarak
library(factoextra) #Bila belum ada, bisa install packages "factoextra" terlebih dahulu
## 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); 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 adalah jarak lurus (garis terpendek) antara dua titik di ruang. Bentuk rumus umumnya sebagai berikut :
\[ d_{ij}=\sqrt{\sum_{i=1}^p(x_{ki}-x_{kj})^2} \]
Keterangan :
\(x_{ki}\) = Vektor ke - k pada baris ke - i
\(x_{kj}\)= Vektor ke - k pada baris ke - j
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 Manhatan adalah Jumlah perbedaan absolut antar koordinat, seperti berjalan di jalan kota berbentuk grid [jarak berbasis grid (jumlah selisih)]. Berikut bentuk umum dari rumus jarak manhatan :
\[ d_{ij}=\sum_{i=1}^p|x_{ki}-x_{kj}| \]
Keterangan :
\(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 Chebysev adalah satu ukuran jarak (distance metric) antara dua titik dalam ruang vektor berbentuk selisih terbesar di antara semua koordinat kedua titik. Berikut bentuk umum dari rumus Jarak Chebysev :
\[ d_{ij}=\max_i \, |x_{ki} - x_{kj}| \]
Keterangan :
\(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 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
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
##
## 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 adalah ukuran jarak (distance metric) yang merupakan generalisasi dari jarak Euclidean dan Manhattan dalam ruang vektor.
Secara umum, jika dua titik
\[X = (x_{1},x_{2},...,x_{n}) \] \[ Dan \]
\[ Y = (y_{1},y_{2},...,y_{n}) \]
maka jarak minkowski didefinisikan sebagai berikut :
\[ D(X,Y) =(\sum_{i=1}^n|x_{i}-y_{i}|^p)^\frac{1}{p} \]
Catatan :
\(p=1\) artinya Jarak Manhattan
\(p=2\) artinya Jarak Euclidean
\(p =\infty\) artinya Jarak Chebyshev
# 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
# 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] 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
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 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 adalah tabel berbentuk matriks yang berisi nilai koefisien korelasi antar variabel dalam suatu dataset.\[ R = \begin{bmatrix} 1 & r_{12} & r_{13} \\ r_{21} & 1 & r_{23} \\ r_{31} & r_{32} & 1 \end{bmatrix} \]
Adapun, bentuk syntax berupa package sebagai 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 standarisasi adalah matriks yang diperoleh dengan mengubah data mentah menjadi data dalam satuan baku (mean 0, standard deviasi 1). Proses standarisasi dilakukan dengan mengurangkan rata-rata variabel dari setiap observasi, kemudian membaginya dengan simpangan baku variabel tersebut. Untuk rumusnya yaitu sebagai berikut :
\[ Z_{ij} = \frac{X_{ij} - \bar{X}_j}{s_j} \]
Dimana:
\(X_{ij}\): nilai data ke-i pada variabel ke-j
\(\bar{X}_j\): rata-rata dari variabel ke-j
\(s_j\): standar deviasi dari variabel ke-j
\(Z_{ij}\): nilai standar dari data
Hasil standardisasi tersebut akan menghasilkan sebuah matriks Z yang disebut matriks standardisasi. Untuk syntaxnya yaitu sebagai berikut :
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