How to put a prior on the correlation structure of the multivariate normal distribution?

  • From what I gather, the only distribution that can be used as the prior for
    the precision matrix in the multivariate normal distribution is the wishart
    distribution. And furthermore, it must be used directly, without multiplying or anything.

    So this is allowed

    for( i in 1:n) {
        x[i,] ~ dmnorm(mu, omega)
    omega ~ dwish(R,k)

    where mu is the mean vector, and omega is the precision matrix.

    In the model I am building I have multiple multivariate normal distributions. They have a common overarching correlation structure, but each is scaled with a "variance" term.

    So, omega[i] = inverse(correlation)/variance[i], where variance[i] is a scalar.
    I imagine it would be something like this:

    for (i in 1:n) {
        for (j in 1:k) {
            x[i,j,] ~ dmnorm(mu, omega * tau[i])
        tau[i] ~ dgamma(s,r)
    omega <- transform_precision_to_inverse_correlation(womega)
    womega ~ dwish(R,k)

    Is this possible in any way?
    I'm guessing that to do something like this, as Martyn Plummer wrote, the sampler for a scaled inverse Wishart prior, must be implemented first...

    Are there any other ways of putting a prior on a correlation structure out there?

    Thank you for your help!