Is This The Proper Way to Use Observed RVs of Different Lengths?

The model logp will includes two more constants from the normal, but because they are constants MCMC will essentially ignore it.

To do what you intended, you need to find a way to set up two latent variables, and let the information in the observed Y propagate back to these said latent variables, something like:

with pm.Model() as model:
    a = pm.Normal('a', 0, 10)
    b = pm.Normal('b', 0, 10, shape=2)
    
    idx = [0,0,0,0,0,1,1,1,1,1,1]
    
    ymu = pm.Normal('mu', 0, 10, shape=2)
    obs0 = pm.Normal('y0', ymu[0], 1., observed=[1, 2, 1, 2, 3])
    obs1 = pm.Normal('y1', ymu[1], 1., observed=[1, 2, 1, 2, 5, 6])
    
    y = a + b[idx] * ymu[idx]
2 Likes