I have a model where I am estimating 84 parameters.
The problem I am having is that the NUTS sampler seems to converge (I get 0 divergences), but it is not to the correct value.
Here is the code I use for sampling:
step = mc.NUTS() trace = mc.sample(2000, step=step, init='advi_map', tune=1000, cores=2, chains=3, nuts_kwargs=None, discard_tuned_samples=True, progressbar=True)
I first used the initial jitter+adapt_diag but that gave worse results so I tried advi_map which gave better results, but as you will see not the wanted result.
I will show you the diagnostic of the trace for one of the parameters I am estimating:
The true value for this parameter is 163, and as you can see below the posterior distribution for the variable has long tails but the most probable solution is around 63.
The energy plot for all samples for all parameters can be seen below:
The marginal energy and energy transition do look similar, to me. That said the energy transition is higher.
Here you can see the MCMC mean of the logged sample of one of the parameters, with the logged true value in grey (5.095). As you see the NUTS sampler seem to converge, at least by looking at this plot, but not to the correct value…
Lastly I want to show you the summary for some of the parameters that I am trying to estimate:
How do I proceed? I know something is wrong but I am unsure how I can fix this issue…