So simulieren und zeichnen sie eine bivariate normalverteilung in r


In der Statistik folgen zwei Variablen einer bivariaten Normalverteilung , wenn sie addiert eine Normalverteilung aufweisen.

In diesem Tutorial wird erläutert, wie Sie die folgenden Aufgaben in R ausführen:

  • Simulieren Sie eine bivariate Normalverteilung
  • Zeichnen Sie eine bivariate Normalverteilung mithilfe eines Konturdiagramms (2D-Diagramm)
  • Zeichnen Sie eine bivariate Normalverteilung mithilfe eines Oberflächendiagramms (3D-Diagramm)

Lass uns gehen!

Beispiel 1: Simulieren Sie eine bivariate Normalverteilung in R

Der einfachste Weg, eine bivariate Normalverteilung in R zu simulieren, ist die Verwendung der Funktion mvrnorm() aus dem MASS- Paket.

Der folgende Code zeigt, wie diese Funktion zur Simulation einer bivariaten Normalverteilung in der Praxis verwendet wird:

 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

Hier ist, was jedes Argument der mvrnorm()- Funktion bewirkt:

  • n : Definiert die Stichprobengröße
  • mu : Definiert den Durchschnitt jeder Variablen
  • Sigma : Definiert die Kovarianzmatrix der beiden Variablen

Das Endergebnis ist ein Datenrahmen mit zwei Variablen, die bei Addition einer Normalverteilung folgen.

Beispiel 2: Zeichnen einer bivariaten Normalverteilung

Der einfachste Weg, eine bivariate Normalverteilung in R darzustellen, ist die Verwendung der Funktionen im mnormt() -Paket.

Beispielsweise können wir die Funktion context() dieses Pakets verwenden, um ein Konturdiagramm zu erstellen, das eine 2D-Visualisierung der bivariaten Normalverteilung bereitstellt:

 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)

bivariates Normalkonturdiagramm in R

Wir können auch die Funktion persp() verwenden, um ein Oberflächendiagramm zu erstellen, das eine 3D-Visualisierung der bivariaten Normalverteilung bietet:

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

bivariates Normalverteilungsflächendiagramm in R

Hier ist, was jedes Argument der persp() -Funktion bewirkt:

  • Theta, Phi : Legt die Blickrichtungswinkel fest.
  • expand : Steuert die Größe der Z-Achse.
  • ticktype : Steuert das Erscheinungsbild von Häkchen auf den Achsen.

Das Endergebnis ist ein 3D-Oberflächendiagramm der bivariaten Normalverteilung.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie man andere Wahrscheinlichkeitsverteilungen in R verwendet:

So verwenden Sie die Normalverteilung in R
Wie man die Binomialverteilung in R verwendet
So verwenden Sie die Poisson-Verteilung in R
Wie man die Multinomialverteilung in R verwendet

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert