Sigma ~ wishart(df, I); deltahat ~ multi_normal(mudeltahat, Sigma);
tau ~ cauchy(0,2.5);
Omega ~ lkj_corr(4);
deltahat ~ multi_normal(mudeltahat, quad_form_diag(Omega, tau));
parameters { vector[nparams] deltahat[nsubjs]; cholesky_factor_corr[nparams] L_Omega; vector<lower=0>[nparams] sigma; ...}
model { L_Omega ~ lkj_corr_cholesky(4); sigma ~ normal(0, 1);
deltahat ~ multi_normal_cholesky(mudeltahat, diag_pre_multiply(sigma, L_Omega));
...
}
generated quantities { corr_matrix[nparams] Omega; Omega <- L_Omega * L_Omega';
...}
parameters {
matrix[nparams,nsubjs] deltahat_tilde; cholesky_factor_corr[nparams] L_Omega; vector<lower=0>[nparams] sigma; ...} transformed parameters { matrix[nsubjs,nparams] deltahat; deltahat <- (diag_pre_multiply(sigma, L_Omega) * deltahat_tilde)';
...}
model { L_Omega ~ lkj_corr_cholesky(4); sigma ~ cauchy(0, 2.5); to_vector(deltahat_tilde) ~ normal(0, 1); ...
}
generated quantities { corr_matrix[nparams] Omega; Omega <- L_Omega * L_Omega';
...
}"
If you're using RStan you can specify stepwise using the argument
control = list(stepsize = value)
You can also add adapt_delta to the control list together with stepwise.
Also, yes, the non-centered parameterization has also been referred to as the Matt Trick,
although we're trying to use a more informative name. The name "non-centered parameterization"
also leaves something to be desired.
Jonah