Eigen Values and Eigen Vectors - Nilai dan Vektor Eigen
Konsep nilai dan vektor eigen juga sangat penting dalam analisis matriks. Dalam aljabar linier, nilai eigen (eigenvalues) menggambarkan karakteristik utama dari sebuah matriks dan vektor eigen (eigenvectors) merupakan vektor yang terkait dengan nilai eigen tersebut.
Dalam sebuah matriks persegi A, vektor eigen adalah vektor non-nol x yang, ketika dikalikan dengan matriks A, menghasilkan perkalian skalar dengan x. Dalam bentuk persamaan, ini dapat ditulis sebagai Ax = λx, di mana λ adalah nilai eigen (skalar) yang berkorespondensi dengan vektor eigen x.
Nilai eigen dapat memberikan informasi penting tentang sifat matriks. Misalnya, jika sebuah matriks memiliki nilai eigen positif, itu menunjukkan bahwa matriks tersebut memiliki pengaruh yang mengarah ke arah vektor eigen terkait. Nilai eigen juga dapat digunakan dalam transformasi matriks, pemampatan data, analisis faktor, dan berbagai aplikasi lainnya dalam aljabar linier dan statistik.
Dalam konteks distribusi normal bivariat, kita dapat menggunakan konsep nilai dan vektor eigen untuk memahami hubungan antara variabel-variabel yang saling terkait. Dalam distribusi normal bivariat, nilai eigen dari matriks kovarians adalah ukuran karakteristik dari hubungan linier antara dua variabel tersebut. Vektor eigen yang terkait dengan nilai eigen tersebut menunjukkan arah dan kekuatan hubungan antara variabel-variabel tersebut.
Dengan pemahaman tentang nilai dan vektor eigen, kita dapat menggali lebih dalam tentang sifat-sifat matriks dan hubungan antara variabel-variabel dalam analisis aljabar linier dan statistik. Pertama, kami mengunggah semua paket yang diperlukan:
library(mvtnorm)
library(ggplot2)
library(matlib)
Paket ggplot2 digunakan untuk membuat plot. Selanjutnya, kita definisikan mean (rata-rata) dan standard deviation (deviasi standar) sebagai:
## Standarddeviation
sigma <-matrix(c(4,3,3,4),ncol=2,nrow=2)
sigma
## [,1] [,2]
## [1,] 4 3
## [2,] 3 4
## Mean
mu <-c(5,5)
mu
## [1] 5 5
library(magick)
## Linking to ImageMagick 6.9.12.3
## Enabled features: cairo, freetype, fftw, ghostscript, heic, lcms, pango, raw, rsvg, webp
## Disabled features: fontconfig, x11
showimg <- image_read("definevector1.png")
plot(showimg)
Untuk data ini, kita memiliki ukuran sampel n = 1000.
n <-1000
Fungsi set.seed() mengatur seed (benih) yang merupakan nilai awal untuk menghasilkan angka acak:
set.seed(123)
Terakhir, kami menghasilkan titik-titik data dengan menggunakan…
x <-rmvnorm(n=n,mean=mu,sigma=sigma)
Untuk membuat plot data tersebut, kita menetapkan titik-titiknya dalam suatu data frame.
d <-data.frame(x)
Dengan menggunakan paket ggplot2, kita buat plot titik data tersebut:
p2 <-ggplot(d,aes(x=X1,y=X2))+
geom_point(alpha =.5)+
geom_density_2d()
p2
GAMBAR 6.2 Distribusi normal bivariat yang didefinisikan oleh mean (μ) dan standard deviation (σ) dengan ukuran sampel sebesar 1000.
Lanjut
Di R, kita dapat menggunakan fungsi eigen() untuk menghitung eigenvalues dan eigenvectors dari sebuah matriks. Sebagai contoh, pertimbangkan sebuah matriks 141:
showimg <- image_read("contoh141.png")
plot(showimg)
Pertama kita definisikan matriks-nya di R :
A <-matrix(c(2,1,1,2),2,2)
A
## [,1] [,2]
## [1,] 2 1
## [2,] 1 2
Lalu kita panggil fungsi eigen() -nya
eigen(A)
## eigen() decomposition
## $values
## [1] 3 1
##
## $vectors
## [,1] [,2]
## [1,] 0.7071068 -0.7071068
## [2,] 0.7071068 0.7071068
Di sini, kolom pertama dari vectors∗adalahvektoreigenyangterkaitdengannilaieigenyangsamadengan3,yangmerupakannilaipertamadari∗ values. Kolom kedua dari $vectors adalah vektor eigen yang terkait dengan nilai eigen yang sama dengan 1, yang merupakan nilai kedua dari $values. Perhatikan bahwa vektor-vektor ini sudah “dinormalisasi”, artinya panjang vektor-vektor tersebut adalah 1.
Untuk aplikasi praktis dalam bagian ini, kita akan membahas bagaimana kita dapat menghitung komponen utama pertama dan kedua dari dataset. Kembali ke contoh kerja pada bagian ini, kita telah menghasilkan 1000 titik data di bawah distribusi normal bivariat dengan…
showimg <- image_read("pa_eigen.png")
plot(showimg)
Dalam keadaan sebenarnya, kita tidak mengamati nilai mean (μ) dan covariancematrix (Σ) secara langsung. Yang kita amati hanyalah dataset x yang berisi 1000 titik data. Oleh karena itu, kita harus mengestimasi nilai-nilai ini dari titik data yang ada. Sekarang kita akan mengestimasi covariancematrix. Anggap x adalah matriks yang setiap barisnya mewakili satu titik data dalam dataset dan setiap kolomnya mewakili setiap variabel. Dengan demikian, kita dapat mengestimasi covariancematrix ^Σ dengan x^T x, di mana x^T adalah transpose dari matriks x. ^Σ adalah matriks simetris kxk di mana k adalah jumlah variabel acak.
Perlu dicatat bahwa covariancematrix harus simetris. Ini berarti Σ harus sama dengan transpose dari Σ. Dalam rangka mendefinisikan deviasi standar untuk distribusi normal bivariat, covariancematrix ini harus simetris.
Dalam kehidupan nyata, kita tidak mengamati langsung nilai mean (μ) dan covariancematrix (Σ). Yang kita amati hanyalah dataset x yang berisi 1000 titik data. Oleh karena itu, kita harus mengestimasi nilai-nilai ini dari titik data yang ada. Sekarang kita akan mengestimasi covariancematrix. Anggap x adalah matriks di mana setiap barisnya mewakili satu titik data dalam dataset dan setiap kolomnya mewakili setiap variabel. Dengan demikian, kita dapat memperkirakan covariancematrix ^Σ dengan x^T x, di mana x^T adalah transpose dari matriks x. ^Σ adalah matriks simetris kxk di mana k adalah jumlah variabel acak.
Di R, kita dapat mengestimasi dengan:
y <-t(x)%*%x
Kemudian kita menggunakan fungsi eigen() untuk menghitung nilai dan vektor eigen dari covariance matrix yang telah diestimasi ini:
eigen(y)
## eigen() decomposition
## $values
## [1] 58081.296 1069.938
##
## $vectors
## [,1] [,2]
## [1,] 0.7067305 -0.7074829
## [2,] 0.7074829 0.7067305
showimg <- image_read("eigenvaluesvector.png")
plot(showimg)
Karena eigenvalues dari ^Σ berbeda-beda dan ^Σ simetris, eigenvectors dari ^Σ adalah ortogonal dan linearly independent. Sebenarnya, ^Σ selalu simetris dan jika titik-titik ini cukup acak, maka eigenvalues adalah berbeda-beda, dan semua eigenvectors dari ^Σ saling ortogonal. Ini adalah salah satu properti paling penting untuk PCA.
Sekarang kita melihat ke eigenvectors yang dihasilkan dari fungsi eigen() pada ^Σ. Komponen utama pertama untuk dataset x adalah eigenvector untuk eigenvalue terbesar dari ^Σ. Komponen utama kedua adalah eigenvector untuk eigenvalue kedua terbesar dari ^Σ. Faktanya, garis biru pada Gambar 6.4 didefinisikan oleh eigenvector dari eigenvalue terbesar dari ^Σ, yaitu kumpulan semua titik yang didefinisikan oleh…
showimg <- image_read("2.png")
plot(showimg)
di mana v adalah vektor eigenvector yang terkait dengan eigenvalue tertentu, dan λ adalah bilangan real. Pada Gambar 6.4, garis biru dihasilkan oleh komponen utama pertama dan garis merah muda dihasilkan oleh komponen utama kedua.
Untuk memeriksa apakah vektor-vektor ini sebenarnya adalah komponen utama pertama dan kedua, kita dapat menggunakan fungsi prcomp() untuk memverifikasi:
prcomp(d,center=FALSE)
## Standard deviations (1, .., p=2):
## [1] 7.624922 1.034896
##
## Rotation (n x k) = (2 x 2):
## PC1 PC2
## X1 -0.7067305 -0.7074829
## X2 -0.7074829 0.7067305
showimg <- image_read("gambar6.4.png")
plot(showimg)
Gambar 6.4
Distribusi normal bivariat didefinisikan oleh mean (μ) dan covariancematrix (Σ) dengan ukuran sampel sebesar 1000. Garis biru disebabkan oleh komponen utama pertama dan garis merah muda disebabkan oleh komponen utama kedua.