pymc3: modelo jerárquico con múltiples variables obsesionadas

Tengo un modelo jerárquico simple con muchas personas para las que tengo pequeñas muestras de una distribución normal. Los medios de estas distribuciones también siguen una distribución normal.

import numpy as np

n_individuals = 200
points_per_individual = 10
means = np.random.normal(30, 12, n_individuals)
y = np.random.normal(means, 1, (points_per_individual, n_individuals))

Quiero usar PyMC3 para calcular los parámetros del modelo de la muestra.

import pymc3 as pm
import matplotlib.pyplot as plt

model = pm.Model()
with model:
    model_means = pm.Normal('model_means', mu=35, sd=15)

    y_obs = pm.Normal('y_obs', mu=model_means, sd=1, shape=n_individuals, observed=y)

    trace = pm.sample(1000)

pm.traceplot(trace[100:], vars=['model_means'])
plt.show()

Esperaba el posterior demodel_means para parecerse a mi distribución original de medios. Pero parece converger a30 La media de los medios. ¿Cómo recupero la desviación estándar original de las medias (12 en mi ejemplo) del modelo pymc3?

Respuestas a la pregunta(1)

Su respuesta a la pregunta