R에서 이변량 정규 분포를 시뮬레이션하고 플롯하는 방법


통계에서 두 변수는 함께 더해졌을 때 정규 분포를 갖는 경우 이변량 정규 분포를 따릅니다.

이 튜토리얼에서는 R에서 다음 작업을 수행하는 방법을 설명합니다.

  • 이변량 정규분포 시뮬레이션
  • 등고선 플롯(2D 플롯)을 사용하여 이변량 정규 분포 플롯
  • 표면 플롯(3D 플롯)을 사용하여 이변량 정규 분포 플롯

갑시다!

예 1: R에서 이변량 정규 분포 시뮬레이션

R에서 이변량 정규 분포를 시뮬레이션하는 가장 간단한 방법은 MASS 패키지의 mvrnorm() 함수를 사용하는 것입니다.

다음 코드는 이 함수를 사용하여 실제로 이변량 정규 분포를 시뮬레이션하는 방법을 보여줍니다.

 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

mvrnorm() 함수의 각 인수가 수행하는 작업은 다음과 같습니다.

  • n : 샘플 크기를 정의합니다.
  • mu : 각 변수의 평균을 정의합니다.
  • Sigma : 두 변수의 공분산 행렬을 정의합니다.

최종 결과는 함께 더해지면 정규 분포를 따르는 두 개의 변수가 있는 데이터 프레임입니다.

예 2: 이변량 정규 분포 도표화

R에서 이변량 정규 분포를 그리는 가장 쉬운 방법은 mnormt() 패키지의 함수를 사용하는 것입니다.

예를 들어, 이 패키지의 Contour() 함수를 사용하여 이변량 정규 분포의 2D 시각화를 제공하는 등고선 플롯을 생성할 수 있습니다.

 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)

R의 이변량 정규 등고선 플롯

persp() 함수를 사용하여 이변량 정규 분포의 3D 시각화를 제공하는 표면 플롯을 만들 수도 있습니다.

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

R의 이변량 정규 분포 표면 플롯

persp() 함수의 각 인수가 수행하는 작업은 다음과 같습니다.

  • theta, phi : 보는 방향 각도를 설정합니다.
  • Expand : z축의 크기를 제어합니다.
  • Ticktype : 축의 눈금 모양을 제어합니다.

최종 결과는 이변량 정규 분포의 3D 표면 플롯입니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 확률 분포를 사용하는 방법을 설명합니다.

R에서 정규분포를 사용하는 방법
R에서 이항 분포를 사용하는 방법
R에서 포아송 분포를 사용하는 방법
R에서 다항 분포를 사용하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다