pymc3: hierarchisches Modell mit mehreren beobachteten Variablen

Ich habe ein einfaches hierarchisches Modell mit vielen Individuen, für die ich kleine Stichproben aus einer Normalverteilung habe. Die Mittel dieser Verteilungen folgen ebenfalls einer Normalverteilung.

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))

Ich möchte PyMC3 verwenden, um die Modellparameter aus dem Beispiel zu berechnen.

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()

Ich erwartete den posterior vonmodel_means um wie meine ursprüngliche Mittelverteilung auszusehen. Aber es scheint zu @ konvergier30 der Mittelwert der Mittelwerte. Wie kann ich die ursprüngliche Standardabweichung des Mittels (in meinem Beispiel 12) vom pymc3-Modell wiederherstellen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage