# About sample\_posterior\_predictive

**URL:** https://discourse.pymc.io/t/about-sample-posterior-predictive/12396
**Category:** v5
**Tags:** bug
**Created:** [June 28, 2023, 2:03pm UTC](https://discourse.pymc.io/t/about-sample-posterior-predictive/12396 "2023-06-28T14:03:30Z")
**Posts on this page:** 2
**Page:** 1

<div class="post-metadata">

### Author: ![Yamaguchi](https://avatars.discourse-cdn.com/v4/letter/y/c2a13f/32.png) [@Yamaguchi](https://discourse.pymc.io/u/Yamaguchi)
#### Post date: [June 28, 2023, 2:03pm UTC](https://discourse.pymc.io/t/about-sample-posterior-predictive/12396/1 "2023-06-28T14:03:30Z")

</div>

Hi all,

I run the tutorial Using shared variables (`Data` container adaptation)[#](https://www.pymc.io/projects/examples/en/latest/howto/data_container.html#using-shared-variables-data-container-adaptation)  
However, it does not seem to work correctly as shown in the following code.

I would be thankful if you could help me with this question.

```python
import os
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
import arviz as az

import pymc as pm
import pytensor.tensor as pt

assert pm. __version__ == "5.5.0"

# Initialize random number generator
RANDOM_SEED = 8927
rng = np.random.default_rng(RANDOM_SEED)
az.style.use("arviz-darkgrid")

x = rng.random(100)
y = x > 0

with pm.Model() as model:
    x_shared = pm.Data("x_shared", x, mutable=True)
    coeff = pm.Normal("x", mu=0, sigma=1)

    logistic = pm.math.sigmoid(coeff * x_shared)
    pm.Bernoulli("obs", p=logistic, observed=y)

    # fit the model
    trace = pm.sample(return_inferencedata=True, tune=2000)
    
new_values = [-1, 0, 1.0]
with model:
    # Switch out the observations and use `sample_posterior_predictive` to predict
    pm.set_data({"x_shared": new_values})
    post_pred = pm.sample_posterior_predictive(trace, var_names=["obs"])

```

```auto
Auto-assigning NUTS sampler...
Initializing NUTS using jitter+adapt_diag...
Initializing NUTS using jitter+adapt_diag...
Multiprocess sampling (4 chains in 4 jobs)
NUTS: [x]
Sampling 4 chains for 2_000 tune and 1_000 draw iterations (8_000 + 4_000 draws total) took 1 seconds.

Output exceeds the size limit. Open the full output data in a text editor
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
File ~/Desktop/programming/05_PyMC/.venv/lib/python3.9/site-packages/pytensor/compile/function/types.py:970, in Function. __call__ (self, *args, **kwargs)
    968 try:
    969 outputs = (
--> 970 self.vm()
    971 if output_subset is None
    972 else self.vm(output_subset=output_subset)
    973 )
    974 except Exception:

File ~/Desktop/programming/05_PyMC/.venv/lib/python3.9/site-packages/pytensor/graph/op.py:543, in Op.make_py_thunk..rval(p, i, o, n, params)
    539 @is_thunk_type
    540 def rval(
    541 p=p, i=node_input_storage, o=node_output_storage, n=node, params=None
    542 ):
--> 543 r = p(n, [x[0] for x in i], o)
    544 for o in node.outputs:

File ~/Desktop/programming/05_PyMC/.venv/lib/python3.9/site-packages/pytensor/tensor/random/op.py:378, in RandomVariable.perform(self, node, inputs, outputs)
    376 rng_var_out[0] = rng
--> 378 smpl_val = self.rng_fn(rng, *(args + [size]))
    380 if (
    381 not isinstance(smpl_val, np.ndarray)
    382 or str(smpl_val.dtype) != out_var.type.dtype
...
Inputs values: [Generator(PCG64) at 0x17653C740, array([100]), array(4), array([0.01249068, 0.5 , 0.98750932])]
Outputs clients: [['output'], ['output']]

HINT: Re-running with most PyTensor optimizations disabled could provide a back-trace showing when this node was created. This can be done by setting the PyTensor flag 'optimizer=fast_compile'. If that does not work, PyTensor optimizations can be disabled with 'optimizer=None'.
HINT: Use the PyTensor flag `exception_verbosity=high` for a debug print-out and storage map footprint of this Apply node.

```

---

<div class="post-metadata">

### Author: ![Yamaguchi](https://avatars.discourse-cdn.com/v4/letter/y/c2a13f/32.png) [@Yamaguchi](https://discourse.pymc.io/u/Yamaguchi)
#### Post date: [June 28, 2023, 2:16pm UTC](https://discourse.pymc.io/t/about-sample-posterior-predictive/12396/2 "2023-06-28T14:16:03Z")

</div>

Sorry. I solved it myself.  
In case of pymc 5.5.0, this document was helpful

> **[General API quickstart](https://www.pymc.io/projects/examples/en/latest/howto/api_quickstart.html#posterior-predictive-sampling)**
>
> 1. Model creation: Models in PyMC are centered around the Model class. It has references to all random variables (RVs) and computes the model logp and its gradients. Usually, you would instantiate ...
