在 PyMC3 ( https://docs.pymc.io/notebooks/GLM-hierarchical.html ) 的这个例子中,用一维样本估计后验分布(数据集中的样本只有一个特征)。
# Hyperpriors for group nodes
mu_a = pm.Normal('mu_a', mu=0., sigma=100)
sigma_a = pm.HalfNormal('sigma_a', 5.)
mu_b = pm.Normal('mu_b', mu=0., sigma=100)
sigma_b = pm.HalfNormal('sigma_b', 5.)
# Intercept for each county, distributed around group mean mu_a
# Above we just set mu and sd to a fixed value while here we
# plug in a common group distribution for all a and b (which are
# vectors of length n_counties).
a = pm.Normal('a', mu=mu_a, sigma=sigma_a, shape=n_counties)
# Intercept for each county, distributed around group mean mu_a
b = pm.Normal('b', mu=mu_b, sigma=sigma_b, shape=n_counties)
# Model error
eps = pm.HalfCauchy('eps', 5.)
radon_est = a[county_idx] + b[county_idx]*data.floor.values
# Data likelihood
radon_like = pm.Normal('radon_like', mu=radon_est,
sigma=eps, observed=data.log_radon)
如果我的数据集样本具有N 维特征,如何概括?我试图用
radon_est = a[county_idx] + np.dot(b[county_idx],data)
但它不起作用