Hey all,
A simple question (hopefully): Is using lkj_corr_cholesky(1) the same thing as having no prior at all on the cholesky correlation matrix?
I was under the impression that not having a prior on a cholesky factorized cor matrix implies lkj(1).
However, I was fitting two models - identical, but coded differently, that involves a 4x4 correlation matrix. One model had lkj(1), one had no prior. The two yielded very similar, but still consistently different correlation estimates. Once I added the lkj(1) prior to the model missing it, the two lined up perfectly (within MCMC error, anyway).
Is there a reason for this?
L ~ lkj_corr_cholesky(1)
is a non-uniform prior on L
that implies L * L'
is uniformally distributed over correlation matrices of that size. There is really no such thing as “no prior”. However, if you were to omit the L ~ lkj_corr_cholesky(1)
, then you would be expressing your beliefs that L
is uniformally distributed over the space of Cholesky factors of correlation matrices of that size, in which case L * L'
would be non-uniformally distributed over correlation matrices of that size in a weird way.
2 Likes
Excellent, thank you.
So if I instead had a cor matrix (not a cholesky cor matrix), then lkj_corr(1) would be the same as no [expressed] prior. (Sorry - I mispoke; I meant no expressed prior).
That is:
R ~ lkj_corr(1)
is the same as //R ~ lkj_corr(1)
[as in - it’s commented out and is not evaluated].
Yeah, if lkj_corr(1)
gets called then it does check that it is a valid correlation matrix and throws and exception otherwise, but that should be valid by construction if you declare it in the parameters block.
1 Like
As always, thank you. Very helpful.