したがって、sn
パッケージはrmsn
明確にコードの次のセクションを示しています
function (n = 1, xi = rep(0, length(alpha)), Omega, alpha, tau = 0, dp = NULL) {
//....
lot <- dp2cpMv(dp = dp0, family = "SN", aux = TRUE)
d <- length(dp0$alpha)
y <- matrix(rnorm(n * d), n, d) %*% chol(lot$aux$Psi)
//....
}
これはどのようにmvtnorm::rmvn
作品に非常によく似ているだけでchol()
法におけるマトリックスは、コアライブラリhereにdp2cpMv機能から来ています。それをあなたのfunctions{}
ブロックに移植することができます。そして、あなたのスタンプログラムにあなたが行くdp2cvClone()
への入力がある場合は、変換パラメータからのものをシフトすることもできます。また
functions {
// Contains code for your ported cholesky factor
}
transformed parameters {
matrix[K, J] z;
cholesky_factor_corr[K] L_tri = dp2cvClone(...); // Cholesky factor from your function{} block..
beta = foo + (L_tri * z)'; // Assuming foo is baseline parameter representing the mean of dimensionality J*K.
....
}
parameters {
matrix[K, J] beta; //# J levels/groups and K dimensional parameters
to_vector(z) ~ normal_pdf(0, 1);
....
}
データをブロックしたり、変換されたデータブロック(Iはchol()
でCOV行列を想定していますと、パラメータがあります)データ。しかし、あなたはポイントを得る。 この最後のコードセクションはスタンマニュアルsection 8.15
から抜粋し、簡潔にするために言い換えて、機能させるために必要な重要な部分をキャプチャしたいと考えています。
出典
2017-05-10 18:43:16
Sid
私はスタンコードを持っていませんが、これは役立つかもしれません:http://www.anstuocmath.ro/mathematics/pdf10/83_96_RVernic.pdf。 –