Matriks adalah susunan bilangan atau fungsi yang diatur dalam baris-baris dan kolom-kolom, biasanya diapit oleh kurung siku atau kurung biasa. Susunan ini membentuk jajaran persegi panjang atau persegi, dan bilangan-bilangan di dalamnya disebut elemen atau entri matriks. Matriks diberi nama dengan huruf kapital, seperti A atau B, sementara elemennya menggunakan huruf kecil, seperti a atau b.
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 dibawah ini :
# Membuat matriks X berordo 3x3 (pengisian per kolom)
X = matrix(c(7,8,9,
1,2,3,
4,5,1), nrow = 3, ncol = 3,byrow = FALSE)
cat("Matriks X:\n")
## Matriks X:
print(X)
## [,1] [,2] [,3]
## [1,] 7 1 4
## [2,] 8 2 5
## [3,] 9 3 1
Sebaliknya jika ingin menyatakan matriks berdasarkan baris, kita dapat menyatakan matriks dengan byrow = TRUE seperti di bawah ini :
Y = matrix(c(7,8,9,
1,2,3,
4,5,1), nrow = 3, ncol = 3,byrow = TRUE)
cat("Matriks Y:\n")
## Matriks Y:
print(Y)
## [,1] [,2] [,3]
## [1,] 7 8 9
## [2,] 1 2 3
## [3,] 4 5 1
Cara melakukan operasi perhitungan berikut 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 adalah",print(penjumlahan))
## [,1] [,2] [,3]
## [1,] 14 9 13
## [2,] 9 4 8
## [3,] 13 8 2
## Jadi hasil penjumlahan dari kedua matriks adalah 14 9 13 9 4 8 13 8 2
cat("Jadi hasil pengurangan dari kedua matriks adalah",print(pengurangan))
## [,1] [,2] [,3]
## [1,] 0 -7 -5
## [2,] 7 0 2
## [3,] 5 -2 0
## Jadi hasil pengurangan dari kedua matriks adalah 0 7 5 -7 0 -2 -5 2 0
Cara melakukan operasi berikut adalah 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, bentuk syntax sebagai berikut :
perkalian = X%*%Y
cat("hasil dari operasi berikut adalah",print(perkalian))
## [,1] [,2] [,3]
## [1,] 66 78 70
## [2,] 78 93 83
## [3,] 70 83 91
## hasil dari operasi berikut adalah 66 78 70 78 93 83 70 83 91
Konsep dari operasi ini sama saja 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,] 49 8 36
## [2,] 8 4 15
## [3,] 36 15 1
## hasil dari perkalian antar elemen matriks adalah 49 8 36 8 4 15 36 15 1
cat("hasil dari perkalian antar elemen skalar adalah",print(p.skalar))
## [,1] [,2] [,3]
## [1,] 14 2 8
## [2,] 16 4 10
## [3,] 18 6 2
## hasil dari perkalian antar elemen skalar adalah 14 16 18 2 4 6 8 10 2
Transpose matriks adalah operasi yang menukar baris menjadi kolom matriks, sedangkan kolom menjadi baris matriks. Misalnya A berordo m x n ditranspose menjadi \(A^T\), sehingga ordonya menjadi n x m. Adapun, ilustrasinya 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 melakukan operasi transpose, kita dapat menggunakan syntax t().
transpose_X = t(X)
cat("Hasil transpose matriks X",print(transpose_X))
## [,1] [,2] [,3]
## [1,] 7 8 9
## [2,] 1 2 3
## [3,] 4 5 1
## Hasil transpose matriks X 7 1 4 8 2 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, det(A) \(\neq 0\). Adapun, bentuk syntax pada R sebagai berikut :
invers <- solve(X)
cat("Invers matriks adalah",print(invers))
## [,1] [,2] [,3]
## [1,] 0.4333333 -0.3666667 0.1
## [2,] -1.2333333 0.9666667 0.1
## [3,] -0.2000000 0.4000000 -0.2
## Invers matriks adalah 0.4333333 -1.233333 -0.2 -0.3666667 0.9666667 0.4 0.1 0.1 -0.2
Determinan 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\]
Perhitungan determinan matriks dengan ordo lebih tinggi jauh lebih kompleks. Oleh karena itu, kita dapat menggunakan syntax det() untuk memudahkan pengerjaan.
deter = det(X)
cat("Determinan matriks tersebut adalah",print(deter))
## [1] -30
## Determinan matriks tersebut adalah -30
Cara memanggil entri matriks dapat menggunakan format sebagai berikut “Nama_matriks”[baris,kolom]
#Memanggil seluruh entri matriks
print(X)
## [,1] [,2] [,3]
## [1,] 7 1 4
## [2,] 8 2 5
## [3,] 9 3 1
#Memanggil entri matriks baris atau kolom ke-i
print(X[1,])
## [1] 7 1 4
#Memanggil entri matriks baris atau kolom tertentu
print(X[1,3])
## [1] 4
#Memanggil entri matriks pada sel tertentu
print(X[c(1,2),2])
## [1] 1 2
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] 12.6570080 -3.3620111 0.7050031
##
## $vectors
## [,1] [,2] [,3]
## [1,] -0.5124962 -0.3041221 -0.3127775
## [2,] -0.6486906 -0.3662852 0.9123587
## [3,] -0.5626262 0.8794003 0.2641437
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(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 tidak ada, bisa install ke packages dengan mengetik "factoextra"
## Warning: package 'factoextra' was built under R version 4.4.3
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.4.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
set.seed(321)
ss <- sample(1:50, 15)
df <- USArrests[ss, ]
df.scaled <- scale(df); 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. Dengan bentuk rumus umum 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