로 다변량 정규 값을 시뮬레이션합니다 mvtnorm::rmvnorm
. 매개 변수 벡터를 지정할 수있는 일 변량 난수 생성기와 같이 작동하지 않는 것처럼 보이지만이 제한 사항은 간단합니다.
예를 들어, 모델을 고려하십시오
E(y1,y2,y3)=(−1+x,2x,1−3x)
여기서 는 다변량 정규 분포를 가지며 , 및 . 이 공분산 행렬을 R로 지정하겠습니다.yVar(yi)=1Cov(y1,y2)=Cov(y2,y3)=0.5Cov(y1,y3)=0
sigma <- matrix(c(1, 0.5, 0,
0.5, 1, 0.5,
0, 0.5, 1 ), 3, 3)
실험하기 위해 매번 세 번의 복제로 가 에서 까지 변화 하도록하여이 모델에 대한 일부 데이터를 생성 해 봅시다 . 상수 항도 포함시켜야합니다.x110
data <- cbind(rep(1,10*3), rep(1:10,3))
모델은 다음과 같은 평균을 결정합니다.
beta <- matrix(c(-1,1, 0,2, 1,-3), 2, 3)
means <- data %*% beta
여러 다변량 결과를 생성하는 해결 방법은 다음을 사용하는 것입니다 apply
.
library(mvtnorm) # Contains rmvnorm
sample <- t(apply(means, 1, function(m) rmvnorm(1, mean=m, sigma=sigma)))