pymc-devs/pymc

BUG: `pm.sample_posterior_predictive` discards new results when `extend_inferencedata=True` and `posterior_predictive` group already exists

Open

#7,214 opened on Mar 22, 2024

View on GitHub
 (2 comments) (0 reactions) (0 assignees)Python (7,926 stars) (1,902 forks)batch import
bughelp wantedtrace-backend

Description

Describe the issue:

pm.sample_posterior_predictive silently fails when extend_inferencedata = True and posterior_predictive group exists

Reproduceable code example:

import pymc as pm
import numpy as np

y = np.random.normal(loc=1, size=(100,))
with pm.Model() as m:
    mu = pm.Normal('mu')
    y_hat = pm.Normal('y_hat', mu=mu, sigma=1, observed=y)
    idata = pm.sample()
    idata = pm.sample_posterior_predictive(idata, extend_inferencedata=True)

with pm.Model() as m2:
    new_mu = pm.Normal('mu2', sigma=10)
    y_hat = pm.Normal('y_hat', mu=new_mu, sigma=1)
    idata = pm.sample_posterior_predictive(idata, extend_inferencedata=True)

Error message:

No response

PyMC version information:

Context for the issue:

In the above snippet, the 2nd sample_posterior_predictive will not error, but the samples will not be associated with the new_mu model.

Contributor guide

BUG: `pm.sample_posterior_predictive` discards new results when `extend_inferencedata=True` and `posterior_predictive` group already exists · pymc-devs/pymc#7214 | Good First Issue