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?