Perrtama, kita upload semua package yang diperlukan
library(mvtnorm)
library(ggplot2)
library(matlib)
Kemudian, kita definisikan terlebih dulu mean dan standard deviation
##Standard deviation
sigma <- matrix(c(4,2,2,3), ncol = 2, nrow = 2)
##Mean
mu <- c(1,2)
Untuk data ini kita memiliki ukuran sampel n = 1000
n <- 1000
Gunakan set.seed untuk mendapatkan angka acak
set.seed(123)
Akhirnya, kita mendapatkan data points dengan
x<- rmvnorm(n=n, mean=mu, sigma=sigma)
Untuk memplot data kita menetapkan points di sebuah data frame:
d <- data.frame(x)
menggunakan ggplot2 kita memplot data points sebagai
p2 <- ggplot(d, aes(x = X1, y = X2)) +
geom_point(alpha = .5) +
geom_density_2d()
p2
Pertama kita terjemahkan semua data points yang tersimpan sebagai variabel x dari -mu = [-1, -2] karena nilai tengah dari distribusinya ada pada mu = [1,2]
y <- x- mu
Kita simpan data point tersebut dalam variabel y. Kemudian kita hitung eigen vectors dari sigma.
E <- eigen(sigma)
E$vectors
## [,1] [,2]
## [1,] -0.7882054 0.6154122
## [2,] -0.6154122 -0.7882054
Kemudian kita inverse transpose variabel y
y <- y %*% t(inv(E$vectors))
Kita siapkan data ini sebagai “data frame” menggunakan function data.frame()
dd <- data.frame(y)
Sekarang, kita memplotnya dengan
p3 <- ggplot(dd, aes(x = X1, y = X2)) +
geom_point(alpha = .5) +
geom_density_2d()
p3
Sehingga menghasilkan tampilan plot seperti di atas.