Jak symulować i wykreślać dwuwymiarowy rozkład normalny w r


W statystyce dwie zmienne mają dwuwymiarowy rozkład normalny, jeśli po dodaniu mają rozkład normalny.

W tym samouczku wyjaśniono, jak wykonać następujące zadania w języku R:

  • Symuluj dwuwymiarowy rozkład normalny
  • Wykreśl dwuwymiarowy rozkład normalny za pomocą wykresu konturowego (wykres 2D)
  • Wykreśl dwuwymiarowy rozkład normalny za pomocą wykresu powierzchniowego (wykres 3D)

Chodźmy!

Przykład 1: Symuluj dwuwymiarowy rozkład normalny w R

Najprostszym sposobem symulacji dwuwymiarowego rozkładu normalnego w R jest użycie funkcji mvrnorm() z pakietu MASS .

Poniższy kod pokazuje, jak w praktyce używać tej funkcji do symulacji dwuwymiarowego rozkładu normalnego:

 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

Oto, co robi każdy argument funkcji mvrnorm() :

  • n : Określa wielkość próbki
  • mu : Określa średnią każdej zmiennej
  • Sigma : definiuje macierz kowariancji dwóch zmiennych

Efektem końcowym jest ramka danych zawierająca dwie zmienne, które po dodaniu mają rozkład normalny.

Przykład 2: Wykreślanie dwuwymiarowego rozkładu normalnego

Najłatwiejszym sposobem wykreślenia dwuwymiarowego rozkładu normalnego w R jest użycie funkcji z pakietu mnormt() .

Na przykład możemy użyć funkcji kontur() tego pakietu, aby utworzyć wykres konturowy, który zapewnia wizualizację 2D dwuwymiarowego rozkładu normalnego:

 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)

dwuwymiarowy normalny wykres konturowy w R

Możemy również użyć funkcji persp() do utworzenia wykresu powierzchniowego, który zapewnia wizualizację 3D dwuwymiarowego rozkładu normalnego:

 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 ')

dwuwymiarowy wykres powierzchni rozkładu normalnego w R

Oto, co robi każdy argument funkcji persp() :

  • theta, phi : Ustawia kąty kierunku oglądania.
  • rozwiń : Steruje rozmiarem osi Z.
  • ticktype : Kontroluje wygląd znaczników na osiach.

Efektem końcowym jest trójwymiarowy wykres powierzchniowy dwuwymiarowego rozkładu normalnego.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak używać innych rozkładów prawdopodobieństwa w R:

Jak korzystać z rozkładu normalnego w R
Jak korzystać z rozkładu dwumianowego w R
Jak korzystać z rozkładu Poissona w R
Jak korzystać z rozkładu wielomianowego w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *