Nama : Fairuz Ardhan Haunan
NIM : 220605110038
Kelas : Linear Algebra A
Dosen Pengampu : Prof. Dr. Suhartono, M.Kom.
Jurusan : Teknik Informatika
Universitas : UIN Maulana Malik Ibrahim Malang
Ada berbagai kegunaan dari nilai Eigen dan vektor Eigen dalam matrix yang dapat digunakan pada banyak bidang, seperti data sains, statistika, probabilitas, fisika, teori graph, dan sebagainya.
Kita menghasilkan sebuah simulasi poin data dibawah bivariat distribusi normal. Bivariat tersebut didefinisikan berdasarkan rata-rata dan standar deviasi. Tidak seperti normal distribusi yang tidak bervariasi, bivariat tersebut didefinisikan dengan vektor dua dimensi and standar deviasinya didefinisikan dalam matrix 2 x 2.
Pertama kita memanggil library “mvtnorm”, Library “mvtnorm” di R digunakan untuk menghitung probabilitas distribusi multivariat normal. Dengan kata lain, library ini menyediakan fungsi-fungsi untuk menghasilkan nilai-nilai probabilitas, densitas, dan fungsi distribusi kumulatif dari distribusi multivariat normal. Fungsi-fungsi ini sering digunakan dalam analisis statistik, khususnya dalam analisis regresi, analisis faktor, dan analisis diskriminan.
Kedua, kita memanggil Library “ggplot2” yang digunakan untuk membuat grafik dan visualisasi data yang cantik dan informatif. Library ini berbasis pada konsep “grammar of graphics”, di mana sebuah grafik dibuat dengan membangun berbagai lapisan (layers) grafik secara bertahap, seperti menambahkan sumbu x-y, tanda titik, garis, dan teks.
Ketiga, kita panggil Library “matlib” yang digunakan untuk menyediakan berbagai fungsi matematika yang berguna untuk analisis data, terutama dalam konteks matriks dan vektor. Library ini menyediakan fungsi-fungsi untuk melakukan operasi matriks seperti perhitungan determinan, invers, dan perkalian matriks, serta fungsi-fungsi untuk menghitung statistik dasar seperti mean dan variance.
library(mvtnorm)
library(ggplot2)
library(matlib)
Lalu kita definisikan mean dan standar deviasi sebagai :
## Standard deviation
sigma <- matrix(c(9,5,5,9), ncol = 2, nrow = 2)
## Mean
mu <- c(7, 7)
Kode tersebut berisi dua pernyataan, yaitu:
sigma <- matrix(c(9,5,5,9), ncol = 2, nrow = 2)
Pernyataan ini membuat sebuah matriks 2x2 dengan elemen-elemennya diisi
dengan nilai 9,5,5, dan 9. Nilai-nilai ini
disimpan dalam variabel bernama sigma.
Matriks ini kemungkinan merupakan matriks kovarians atau matriks
korelasi dari beberapa variabel.
mu <- c(7, 7) Pernyataan ini
membuat sebuah vektor dengan dua elemen, yaitu 7 dan 7. Vektor ini
disimpan dalam variabel bernama mu. Vektor
ini kemungkinan merepresentasikan nilai mean atau rata-rata dari dua
variabel.
Dalam konteks statistik, matriks sigma
dan vektor mu dapat digunakan dalam
berbagai analisis, terutama dalam analisis multivariat. Matriks
sigma dapat digunakan untuk menghitung
nilai standar deviasi, kovarians, dan korelasi antara dua variabel atau
lebih. Sedangkan vektor mu dapat digunakan
untuk menghitung nilai mean atau rata-rata dari variabel-variabel
tersebut.
Untuk data ini kita coba ambil contoh ukuran n = 7973.
n <- 7973
Lalu kita panggil fungsi set.seed().
set.seed(123)
Fungsi set.seed() adalah fungsi dalam
bahasa pemrograman R yang digunakan untuk mengatur nilai awal (seed)
pada pembangkit bilangan acak (random number generator) di dalam R.
Ketika kita menggunakan fungsi-fungsi yang mengandalkan pembangkit
bilangan acak seperti rnorm(),
runif(), dan sebagainya, nilai awal ini
akan mempengaruhi urutan bilangan yang dihasilkan.
Dalam konteks analisis data, penggunaan nilai awal yang sama pada pembangkit bilangan acak sangat penting untuk menjamin hasil yang konsisten dan dapat direproduksi. Hal ini terutama penting dalam penelitian yang menggunakan metode Monte Carlo atau simulasi komputer, di mana pembangkit bilangan acak digunakan untuk mensimulasikan berbagai skenario yang mungkin terjadi dalam situasi yang kompleks.
Dengan menggunakan fungsi set.seed(),
kita dapat menentukan nilai awal yang sama untuk pembangkit bilangan
acak di dalam R, sehingga kita dapat menghasilkan hasil yang konsisten
dan dapat direproduksi dalam setiap percobaan. Misalnya,
set.seed(123) akan mengatur nilai awal
pembangkit bilangan acak di R menjadi 123, sehingga kita dapat
menghasilkan urutan bilangan acak yang sama dalam setiap percobaan.
Namun, perlu diingat bahwa menggunakan nilai awal yang sama pada pembangkit bilangan acak dapat membatasi variasi dan keacakan dari hasil yang dihasilkan. Oleh karena itu, pengaturan nilai awal pada pembangkit bilangan acak harus dilakukan dengan hati-hati dan sesuai dengan konteks analisis yang dilakukan.
Lalu kita hasilkan poin data dengan
x <- rmvnorm(n = n, mean = mu, sigma = sigma)
Pernyataan
x <- rmvnorm(n = n, mean = mu, sigma = sigma)
digunakan untuk menghasilkan sampel acak dari distribusi multivariat
normal dengan n pengamatan dan matriks kovarians atau matriks korelasi
sigma, dan vektor rata-rata
mu.
Secara lebih rinci, fungsi rmvnorm()
digunakan untuk menghasilkan sampel acak dari distribusi multivariat
normal. Argumen pertama n menentukan
jumlah sampel yang akan dihasilkan. Argumen kedua
mean adalah vektor rata-rata dari
distribusi multivariat normal yang dihasilkan. Argumen ketiga
sigma adalah matriks kovarians atau
matriks korelasi dari distribusi multivariat normal yang dihasilkan.
Dalam pernyataan
x <- rmvnorm(n = n, mean = mu, sigma = sigma),
hasil dari fungsi rmvnorm() disimpan dalam
variabel x, yang kemungkinan adalah
matriks dengan n baris dan
p kolom, dengan
p adalah jumlah variabel dalam distribusi
multivariat normal yang dihasilkan.
Contoh penggunaan pernyataan ini adalah sebagai berikut:
x <- rmvnorm(n = 100, mean = c(0, 0), sigma = matrix(c(1, 0.5, 0.5, 1), ncol = 2)).
Pernyataan ini akan menghasilkan sampel acak dari distribusi multivariat
normal dengan 100 pengamatan, vektor rata-rata [0, 0], dan matriks
kovarians [[1, 0
Plot data tersebut akan disimpan pada sebuah “data frame”.
d <- data.frame(x)
Dengan menggunakan package ggplot2, kita dapat memvisualisasikan poin datanya.
p2 <- ggplot(d, aes(x = X1, y = X2)) +
geom_point(alpha = .5) +
geom_density_2d()
p2
Pernyataan tersebut digunakan untuk membuat plot dengan menggunakan paket ggplot2 di R.
Lebih rinci, pertama-tama kita membuat objek plot yang disebut
p2 dengan memanggil fungsi
ggplot(), dan memberikan argumen data
frame d yang akan digunakan untuk membuat
plot. Selanjutnya, kita menentukan variabel
X1 dan X2
sebagai variabel sumbu x dan y pada plot menggunakan fungsi
aes().
Kemudian, kita menambahkan dua layer pada plot menggunakan fungsi
geom_point() dan
geom_density_2d(). Fungsi
geom_point() digunakan untuk menambahkan
titik pada plot dengan opacity sebesar 0,5 (ditentukan oleh argumen
alpha), sementara fungsi geom_density_2d()
digunakan untuk menambahkan kontur density plot pada plot.
Akhirnya, pernyataan tersebut akan menghasilkan plot yang menampilkan
titik-titik pada sumbu x dan y dari data frame
d, serta kontur density plot dari variabel
X1 dan X2.
Plot ini dapat digunakan untuk mengeksplorasi hubungan antara
variabel-variabel tersebut.
sigma2 <- matrix(c(9,5,5,9), ncol = 2, nrow = 2)
Kemudian kita dapat memanggil fungsi eigen()
eigen(sigma2)
## eigen() decomposition
## $values
## [1] 14 4
##
## $vectors
## [,1] [,2]
## [1,] 0.7071068 -0.7071068
## [2,] 0.7071068 0.7071068
Fungsi eigen() di R digunakan untuk
menghitung nilai eigen dan vektor eigen dari sebuah matriks persegi.
Secara lebih rinci, jika A adalah sebuah
matriks persegi, maka fungsi eigen(A) akan
menghasilkan objek dengan komponen berikut:
$values: vektor yang berisi nilai
eigen dari A
$vectors: matriks yang berisi
vektor eigen dari A, dengan setiap kolom
mewakili satu vektor eigen.
Fungsi eigen() sangat berguna dalam
berbagai analisis data multivariat, seperti analisis komponen utama
(PCA), analisis faktor, analisis diskriminan, dan sebagainya. Dalam PCA,
misalnya, nilai eigen dari matriks kovarians adalah penting karena
mereka memberikan ukuran pentingnya masing-masing komponen utama. Vektor
eigen juga digunakan dalam PCA untuk menghitung bobot yang akan
digunakan dalam proyeksi data pada komponen utama.
R mengembalikan nilai eigen dan vektor eigen yang diasosiasikan dengannya.