6
私は正規分布からの小さなサンプルを持っている多くの個体を持つ単純な階層モデルを持っています。これらの分布の手段もまた正規分布に従う。pymc3:複数のobsesrved変数を持つ階層モデル
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))
サンプルからモデルパラメータを計算するには、PyMC3を使用します。
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()
私は手段の私の元の分布のように見えるようにmodel_means
の後部を期待していました。しかし、それは平均の30
に収束しているようです。平均(私の例では12)の元の標準偏差をpymc3モデルから回復するにはどうすればよいですか?