다변량 정규분포의 밀도

R로 배우는 다변량 확률 분포

Surajit Ray

Professor, University of Glasgow

분포의 밀도를 계산하는 이유

R로 배우는 다변량 확률 분포

분포의 밀도를 계산하는 이유

R로 배우는 다변량 확률 분포

일변량 정규 함수 dnorm() normal

R로 배우는 다변량 확률 분포

이변량 정규분포의 확률 밀도

표준 이변량 정규분포 $$ \mu = \begin{pmatrix} 0 \\ 0 \end{pmatrix} , \Sigma = \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} $$ animation

dmvnorm() function

여러 위치(xy 좌표)에서 계산된 밀도값

density

R로 배우는 다변량 확률 분포

dmvnorm으로 밀도 계산

library(mvtnorm)
dmvnorm(x, mean, sigma)
  • x can be a row vector or a matrix

 

mu1 <- c(1, 2)
sigma1 <- matrix(c(1, .5, .5, 2), 2)
dmvnorm(x = c(0, 0), mean = mu1, sigma = sigma1)
0.0384
R로 배우는 다변량 확률 분포

dmvnorm으로 여러 점의 밀도 계산

x <- rbind(c(0, 0), c(1, 1), c(0, 1)); x 
[1,]    0    0
[2,]    1    1
[3,]    0    1

 

dmvnorm(x = x, mean = mu, sigma = sigma)
[1] 0.0384 0.0904 0.0679
R로 배우는 다변량 확률 분포

원근 그래프로 이변량 밀도 시각화

단계:

  • $x$, $y$ 좌표 격자 생성
  • 격자에서 밀도 계산

R로 배우는 다변량 확률 분포

원근 그래프로 이변량 밀도 시각화

단계:

  • $x$, $y$ 좌표 격자 생성
  • 격자에서 밀도 계산
  • 밀도를 행렬로 변환
  • persp() 함수로 원근 그래프 생성

R로 배우는 다변량 확률 분포

이변량 밀도 시각화 코드

# Create grid
d <- expand.grid(seq(-3, 6, length.out = 50 ), seq(-3,  6, length.out = 50))                   

# Calculate density on grid
dens1 <- dmvnorm(as.matrix(d), mean=c(1,2), sigma=matrix(c(1, .5, .5, 2), 2))

# Convert to matrix 
dens1 <-  matrix(dens1, nrow = 50 )

# Use perspective plot
persp(dens1, theta = 80, phi = 30, expand = 0.6, shade = 0.2, col = "lightblue", xlab = "x", ylab = "y", zlab = "dens")

R로 배우는 다변량 확률 분포

원근 그래프의 시점 각도 변경

persp() with theta = 30, phi = 30

persp() with theta = 80, phi = 10

R로 배우는 다변량 확률 분포

연습해 봅시다!

R로 배우는 다변량 확률 분포

Preparing Video For Download...