In these examples, the trace contains 2 chains, each of 5000 posterior samples.
Which chain (in the trace) does pm.sample_posterior_predictive use to generate 500 data sets? If the chains are very different (unlike this example where chains are very close) this makes a difference.
If the chains in the trace are very different. Is there any way to pass the trace of a particular chain to the sample_posterior_predictive function to generate data sets corresponding to the samples of the passed chain?