I am writing a Gibbs sampler from scratch. As recommended in various places (http://www3.stat.sinica.edu.tw/statistica/oldpdf/A10n416.pdf, and in another question Covariance matrix proposal distribution) I have split covariance matrices for random effects (e.g. $A$) into a vector $\sigma$ of standard deviations and a correlation matrix $\Omega$ in the following way:
$A=\text{diag_matrix}(\sigma)\text{ }\Omega \text{ diag_matrix}(\sigma)$
I have assigned half student t priors to the standard deviations $\sigma$ and an LKJ prior to the correlation matrix $\Omega$ (see e.g. recommendations under Hyperpriors in https://mc-stan.org/docs/2_18/stan-users-guide/multivariate-hierarchical-priors-section.html). I wanted to update the correlation matrix $\Omega$ in a single block rather than update each unique element of it individually.
From my model, the posterior for updating the correlation matrix $\Omega$ does not have a standard form, and so I was considering using a Metropolis Hastings step to update it. However I'm not sure what proposal to use, because:
- Most examples I have seen suggest proposals for covariance matrices rather than correlation matrices
- The proposal will need to restrict the off-diagonals of the correlation matrix to fall between -1 and 1, and the on diagonals to equal 1
- I don't see how you could use an LKJ distribution as a proposal and make it rely on the current $\Omega$ when sampling the new $\Omega'$
What proposals would allow update of the correlation matrix in a single step, relying on the current value for $\Omega$, whilst ensuring the elements of the matrix are contrained as I described? Any advice would be very welcome.