R의 sn
패키지의 rmsn
명령을 사용하여 다 변수 skew 정규 분포를 사용하여 임의의 숫자를 생성하려고합니다. 이상적으로는 3 개의 숫자 열을 얻을 수 있기를 바랍니다. 하나의 열이 크게 왜곡 된 상태에서 지정된 분산 및 공분산. 하지만 두 목표를 동시에 달성하기 위해 애 쓰고 있습니다.R의 다 변수 skew normal
의 게시물은 관련성이 있고 유용합니다 (아래 코드 중 일부 소스). 그러나이 문제를 완전히 명확히하지 않았습니다.
나는 노력했습니다
a <- c(5, 0, 0) # set shape parameter
s <- diag(3) # create variance-covariance matrix
w <- sqrt(1/(1-((2*(a^2)/(1 + a^2))/pi))) # determine scale parameter to get sd of 1
xi <- w*a/sqrt(1 + a^2)*sqrt(2/pi) # determine location parameter to get mean of 0
apply(rmsn(n=1000, xi=c(xi), Omega=s, alpha=a), 2, sd)
colMeans(rmsn(n=1000, xi=c(xi), Omega=s, alpha=a))
열 수단과 표준 편차는 (않는) (스큐이없는) 두 번째와 세 번째 열에 대한 올바른하지만 처음이 아니다. 누구든지 위의 코드 또는 내 생각이 어디에 잘못되었는지 명확히 할 수 있습니까? 내가 rmsn
, 또는 출력을 사용하는 방법을 오해하고있을 수 있습니다. 어떤 도움을 주시면 감사하겠습니다.