Hi all,
Thank you for your time in advance.
I have quite a complex model that has mixing problems. Chain 2 is getting stuck in extreme values producing strange results.
In the model there is a time-dependent 6x6 transition matrix, where the first row is as follows:
{S0[1, t], S0[2, t], S0[3, t], S0[4, t], S0[5, t], 0} # transition probability from state 1 to 1:6
in here: S0[1:5, t] ~ ddirch(D_Alpha[1:5, t]) # prior
D_Alpha[1:5, t]<-c(1/5, 1/5, 1/5, 1/5, 1/5)
I examined the correlation of the samples for each chain and found that 2 variables are highly correlated over time.
To be more specific, for chain two:
cor(S0[3,t=16], S0[5,t=16]) =-0.993
The picture below presents a plot of the correlation matrix at different time points, each plot represents a chain 1 to 3 (left to right)
Since NIMBLE recognizes a Dirichlet distribution, it assigns a RW_dirichlet sampler to all the S0 variables.
is it possible to block this sampling in order to reduce the correlation? I try to remove the sampler and add a "RW_block" for each time point but does not seem to sample since the outcome has 0 variability.
If not, how else can I reduce this strong correlation?
Thank you for your time, any comments or ideas will be very helpful.
--
Diego