Cara mensimulasikan & merencanakan distribusi normal bivariat di r


Dalam statistik, dua variabel mengikuti distribusi normal bivariat jika keduanya mempunyai distribusi normal jika dijumlahkan.

Tutorial ini menjelaskan cara melakukan tugas-tugas berikut di R:

  • Simulasikan distribusi normal bivariat
  • Plot distribusi normal bivariat menggunakan plot kontur (plot 2D)
  • Plot distribusi normal bivariat menggunakan plot permukaan (plot 3D)

Ayo pergi!

Contoh 1: Simulasikan distribusi normal bivariat di R

Cara paling sederhana untuk mensimulasikan distribusi normal bivariat di R adalah dengan menggunakan fungsi mvrnorm() dari paket MASS .

Kode berikut menunjukkan cara menggunakan fungsi ini untuk mensimulasikan distribusi normal bivariat dalam praktiknya:

 library (MASS)

#make this example reproducible
set. seed ( 0 )

#simulate bivariate normal distribution
bivariate_data <- as. data . frame (mvrnorm(n= 100 ,
                                        mu=c(0, 0),
                                        Sigma=matrix(c(5, 3, 4, 4), ncol= 2 )))

#view first six rows of bivariate dataset
head(bivariate_data)

           V1 V2
1 -2.03600343 -2.9623059
2 0.07719131 1.2948982
3 -3.26729701 -1.7928069
4 -2.62985132 -2.3015471
5 -1.75126215 0.3056698
6 3.67698436 2.2020238

Inilah fungsi setiap argumen pada fungsi mvrnorm() :

  • n : Mendefinisikan ukuran sampel
  • mu : Mendefinisikan rata-rata setiap variabel
  • Sigma : Mendefinisikan matriks kovarians kedua variabel

Hasil akhirnya adalah kerangka data dengan dua variabel yang mengikuti distribusi normal jika dijumlahkan.

Contoh 2: Merencanakan Distribusi Normal Bivariat

Cara termudah untuk memplot distribusi normal bivariat di R adalah dengan menggunakan fungsi dalam paket mnormt() .

Misalnya, kita dapat menggunakan fungsi contour() pada paket ini untuk membuat plot kontur, yang memberikan visualisasi 2D dari distribusi normal bivariat:

 library (mnormt)

#make this example reproducible
set. seed ( 0 )

#create bivariate normal distribution
x <- seq(-3, 3, 0.1) 
y <- seq(-3, 3, 0.1)
mu <- c(0, 0)
sigma <- matrix(c(2, -1, -1, 2), nrow= 2 )
f <- function(x, y) dmnorm(cbind(x, y), mu, sigma)
z <- outer(x, y, f)

#create contour plot
contour(x, y, z)

plot kontur normal bivariat di R

Kita juga dapat menggunakan fungsi persp() untuk membuat plot permukaan, yang memberikan visualisasi 3D dari distribusi normal bivariat:

 library (mnormt)

#make this example reproducible
set. seed ( 0 )

#create bivariate normal distribution
x <- seq(-3, 3, 0.1) 
y <- seq(-3, 3, 0.1)
mu <- c(0, 0)
sigma <- matrix(c(2, -1, -1, 2), nrow= 2 )
f <- function(x, y) dmnorm(cbind(x, y), mu, sigma)
z <- outer(x, y, f)

#create surface plot
persp(x, y, z, theta= -30 , phi= 25 , expand= 0.6 , ticktype=' detailed ')

plot permukaan distribusi normal bivariat di R

Inilah fungsi setiap argumen pada fungsi persp() :

  • theta, phi : Mengatur sudut arah tampilan.
  • expand : Mengontrol ukuran sumbu z.
  • ticktype : Mengontrol tampilan tanda centang pada sumbu.

Hasil akhirnya adalah plot permukaan 3D dari distribusi normal bivariat.

Sumber daya tambahan

Tutorial berikut menjelaskan cara menggunakan distribusi probabilitas lain di R:

Cara menggunakan distribusi normal di R
Cara menggunakan distribusi binomial di R
Cara menggunakan distribusi Poisson di R
Cara menggunakan distribusi multinomial di R

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *