2023-04-12

Nama : Achmad Fairuz

Nim : 220605110071

Kelas : Linear Algebra (A)

Dosen : Prof. Dr. Suhartono, M. Kom

## Jurusan : Teknik Informatika UIN Maulana Malik Ibrahim Malang

Practical Application (Aplikasi Praktis)

Untuk membuat titik data untuk plot , kita perlu melakukannya dengan menghitung vektor eigen dari matriks sigma, standar deviasi untuk distribusi normal bivariat. Vektor eigen suatu matriks akan dibahas pada bab selanjutnya. Transformasi ini menggunakan vektor eigen terkait untuk principal component analysis (analisis komponen utama), salah satu yang paling populer tanpa pengawasan model pembelajaran dalam ilmu data. Untuk aplikasi praktis ini, tanpa menjelaskan secara rinci, kami menunjukkan bagaimana mentransformasikan ke titik data. Akan dijelaskan lebih detail ketika membahas vektor eigen dan eigennya pada nilai-nilai di bab selanjutnya.

sebelumnya install dulu packages tersebut :

install.packages(“mvtnorm”)

install.packages(“ggplot2”)

install.packages(“matlib”)

library(mvtnorm)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.2.3
library(matlib)
## Warning: package 'matlib' was built under R version 4.2.3
## Standard deviation
sigma <- matrix(c(4,2,2,3), ncol = 2, nrow = 2)
## Mean
mu <- c(1, 2)

Untuk data ini kami memiliki ukuran sampel n = 10.000

n <- 1000

Fungsi set.seed() adalah untuk mengatur seed, yang merupakan nilai untuk mulai dihasilkan angka acak. Fungsi set.seed() me-reset nilai acak angka dan fungsi acak dari nilai yang diperoleh sebelumnya. Kami mengatur benih untuk mereproduksi hasil yang sama. Jika kita menetapkan benih yang sama, maka kita dapat mereproduksi angka acak yang sama:

set.seed(123)
x <- rmvnorm(n = n, mean = mu, sigma = sigma)
d <- data.frame(x)
p2 <- ggplot(d, aes(x = X1, y = X2)) +
geom_point(alpha = .5) +
geom_density_2d()
p2

Langkah pertama yaitu merjemahkan semua titik data yang disimpan sebagai variabel x dengan -mu = [−1, −2] karena pusat distribusi berada di mu = [1, 2]

y <- x - mu

Poin data baru ini disimpan sebagai variabel y. Kemudian menghitung vektor eigen sigma.

E <- eigen(sigma)
E$vectorsE <- eigen(sigma)
E$vectors
##            [,1]       [,2]
## [1,] -0.7882054  0.6154122
## [2,] -0.6154122 -0.7882054

Vektor eigen dari matriks sigma disimpan dalam E$vectors dalam bentuk dari sebuah matriks. Setiap vektor kolom adalah vektor eigen. Kemudian kita mengambil perkalian matriks, kumpulan data disimpan sebagai 10.000 × 2 matriks dikalikan dengan matriks 2 × 2, transpos dari invers dari matriks E. Invers suatu matriks akan dibahas pada bagian selanjutnya.

y <- y %*% t(inv(E$vectors))
dd <- data.frame(y)
p3 <- ggplot(dd, aes(x = X1, y = X2)) +
geom_point(alpha = .5) +
geom_density_2d()
p3