【问题标题】:Supplying test values in pymc 3在 pymc 3 中提供测试值
【发布时间】:2013-11-05 21:06:17
【问题描述】:

我正在探索在 pymc 中使用有界分布。我试图在两个值之间绑定 Gamma 先验分布。由于缺少测试值,模型规范似乎失败了。如何传递 testval 参数以便我能够指定这些类型的模型?

为了完整起见,我已经包含了错误,以及下面的一个最小示例。谢谢!

AttributeError: <pymc.quickclass.Gamma object at 0x110a62890> has no default value to use, checked for: ['median', 'mean', 'mode'] pass testval argument or provide one of these.

import pymc as pm
import numpy as np

ndims = 2
nobs = 20

zdata = np.random.normal(loc=0, scale=0.75, size=(ndims, nobs))

BoundedGamma = pm.Bound(pm.Gamma, 0.5, 2)

with pm.Model() as model:
    xbound = BoundedGamma('xbound', alpha=1, beta=2)
    z = pm.Normal('z', mu=0, tau=xbound, shape=(ndims, 1), observed=zdata)

编辑:出于参考目的,这是一个利用有界伽马先验分布的简单工作模型:

import pymc as pm
import numpy as np

ndims = 2
nobs = 20

zdata = np.random.normal(loc=0, scale=0.75, size=(ndims, nobs))

BoundedGamma = pm.Bound(pm.Gamma, 0.5, 2)

with pm.Model() as model:
    xbound = BoundedGamma('xbound', alpha=1, beta=2, testval=2)
    z = pm.Normal('z', mu=0, tau=xbound, shape=(ndims, 1), observed=zdata)

with model:
    start = pm.find_MAP()

with model:
    step = pm.NUTS()

with model: 
    trace = pm.sample(3000, step, start)

pm.traceplot(trace);

【问题讨论】:

    标签: python pymc theano


    【解决方案1】:

    使用该行:

    xbound = BoundedGamma('xbound', alpha=1, beta=2, testval=1)
    

    【讨论】:

    • 太简单了,谢谢。完美运行。我会将完整的工作代码添加到我的原始评论中。
    猜你喜欢
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多