我正在对某些数据拟合分层模型,拟合似乎可以接受。如何拟合pymc3中呈现歪斜的数据
with pm.Model() as model:
mu_a = pm.Normal('mu_a', 0, sd=.2)
sigma_b = pm.HalfNormal('sig_a', 0.1)
mean = pm.Normal('mean', mu_a, sigma_b, shape=n)
std = pm.HalfNormal('std', 0.01 , shape=n)
means = mean[h]
stds = std[h]
y = pm.Laplace('y', mu=means, b=stds, observed=data)
hierarchical_trace = pm.sample(2000, n_init=30000)
当检查后预测尾部似乎是合理的,min,并且数据的最大值(黑线)都似乎是最小/最大生成的样本的内部(这是不与StudentT的情况下)。
ppc_trace = pm.sample_ppc(model=model, trace=hierarchical_trace)
ppc with min/max/mean of original data
然而平均(最右边的图)是的路要走,我想这是因为我的数据是负偏的,所以数据的质量移动平均太远的权利。
sp.stats.skew(data)
-0.1699020117521286
什么是Pymc3到这类数据进行建模推荐的方法。虽然它是一个对称分布,但拉普拉斯似乎非常适合我的数据。高斯不会在尾部提供足够的重量(这会排除偏斜正常?)。我如何模拟这种适度偏斜的数据?
我的目标是获得一个准确的地图估计与我的数据的不同部分可信区间(基于分级规范)