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)

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

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