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

Nilai Eigen dan Vektor Eigen

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:

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

  2. 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:

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.