python – PyMC观察到一组随机变量的数据

我试图用PyMC推断模型参数.特别地,观察到的数据被建模为两个不同随机变量的总和:负二项式和泊松.

在PyMC中,随机变量的代数组合由“确定性”对象描述.是否可以将观察到的数据分配给此确定性对象?

如果不可能,我们仍然知道总和的PDF是组件的PDF的卷积.有效地计算这个卷积有什么技巧吗?

解决方法:

不可能在PyMC2中观察确定性节点,​​但是通过使卷积的一部分成为潜在变量,可以实现等效模型.这是一个小例子:

def model(values):
    # priors for model parameters
    mu_A = pm.Exponential('mu_A', beta=1, value=1)
    alpha_A = pm.Exponential('alpha_A', beta=1, value=1)
    mu_B_minus_A = pm.Uninformative('mu_B_minus_A', value=1)

    # latent variable for negative binomial
    A = pm.NegativeBinomial('A', mu=mu_A, alpha=alpha_A, value=0)

    # observed variable for conditional poisson
    B = pm.Poisson('B', mu=mu_B_minus_A+A, value=values, observed=True)

    return locals()

这是a notebook that tests it out.如果没有关于模型参数的一些额外信息,似乎很难适应.也许有一种聪明的方法可以计算或近似NB和Poisson的卷积,您可以将其用作自定义观察随机.

上一篇:fluid.io.load_inference_model 载入多个模型的时候会报错 -- [paddlepaddle]


下一篇:PLC.台达_范例