Disabling missing data imputation

I don’t know what you tried exactly. This works for me:

import pymc as pm
import numpy as np
print(pm.__version__)  # 5.9.0

obs_dataset = np.random.normal(size=(100,))
mask = obs_dataset > 0

with pm.Model() as m:
    mu = pm.Normal("mu")
    sigma = pm.HalfNormal("sigma")
    # We need the value variables of mu and sigma
    mu_value, sigma_value = m.replace_rvs_by_values([mu, sigma])
    pm.Potential(
        'likelihood',
        pm.logp(
            pm.Normal.dist(mu_value, sigma_value, shape=(100,))[mask],
            obs_dataset[mask]
        ),
    )

m.point_logps()  # {'mu': -0.92, 'sigma': -0.73, 'likelihood': -61.98}

Sounds more complicated than just filtering out the nans.

import pytensor.tensor as pt

with pm.Model() as m:
    mu = pm.Normal("mu")
    sigma = pm.HalfNormal("sigma")

    bcast_mu = pt.broadcast_to(mu, obs_dataset.shape)
    bcast_sigma = pt.broadcast_to(sigma, obs_dataset.shape)
    pm.Normal("likelihood", bcast_mu[mask], bcast_sigma[mask], observed=obs_dataset[mask])

m.point_logps()  # {'mu': -0.92, 'sigma': -0.73, 'likelihood': -61.98}
3 Likes