如何在 pymc3 中创建 SkewNormal 随机变量?

How to create a SkewNormal stochastic in pymc3?

如何使用 DensityDist 为 pymc3 创建 SkewNormal 分布?有几个指向 github 页面的死链接解释了如何创建浮动的自定义随机指标。

exp 是在 theano 中实现的,但我不认为正态累积分布或 erf 函数是。

我想我不能只使用类似的东西:

F = DensityDist('F', lambda value: pymc.skew_normal_like(value, um, std, a), shape = N)

我在哪里从 pymc2 导入 skew_normal_like 分布?

erf函数是在Theano中实现的。试试这个

skn = pm.DensityDist('skn', lambda value: tt.log(1 + tt.erf(((value - mu) * tt.sqrt(tau) * alpha)/tt.sqrt(2))) + (-tau * (value - mu)**2 + tt.log(tau / np.pi / 2.)) / 2. )

其中:

tau = sd**-2

更新:

SkewNormal 现在作为即用型 PyMC3 发行版的一部分包含在内。