Update: When I first wrote this I didn’t understand how the plotting was being done. Now that I do, I can see that this shows one of the chains (probably the fourth) just not moving at all – I didn’t realize that samples from the chains were being plotted one after another – rather than all of the chains getting stuck. But this remains a failure mode that is completely new to me.
I have never seen this before, and was looking for some suggestions. Hoping that someone will look at the behavior I have and say “I’ve seen that before!”
When I look at the trace for my model the sampler seems to have gotten stuck and not been able to get out of a local minimum:
Another oddity, by the way, when I try to do
pm.stats.summary(trace) PyMC3 hangs.
There’s a term for influences of one independent variable (the growth medium), and terms for the “ideal output” (IO) and “deviation output” (DO). There are also four input conditions – plotted as the colors in the XOR IO, XOR DO, and Cluster plots.
Some of my data is bimodal, so I added the possibility that some of the observations come from a “deviation group” and get their output from DO instead of IO. Whether they do or not is switched based on the Bernoulli variable Cluster, which has a beta prior, one for each input condition.
As you will see, at some point the “medium influences” get pinned to a high value, and stick. But, since it’s the same high value for each of the three, this seems to be a reflection of the fact that (as far as I can tell by eyeballing the data) the choice of growth medium has a minimal effect on the observed output.
Interestingly, the Cluster variable seems to be making roughly the right inference – the input condition that is colored orange is the one with the most pronounced bimodality.
The one odd thing about my model is that I have separate 1/0 cov matrices for the growth medium and the input condition, so I have a cascaded linear sum instead of one. Diagram follows: