【问题标题】:PyMC observed data for a sum of random variablesPyMC 观察到随机变量总和的数据
【发布时间】:2014-12-11 10:22:46
【问题描述】:

我正在尝试使用 PyMC 推断模型参数。特别是观察到的数据被建模为两个不同随机变量的总和:负二项式和泊松。

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

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

【问题讨论】:

    标签: python model pymc inference mcmc


    【解决方案1】:

    不可能在PyMC2 中观察到deterministic 节点,但您可以通过将卷积的一部分作为潜在变量来实现等效模型。这是一个小例子:

    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 的卷积,您可以将其用作自定义观察到的随机变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 2019-07-17
      • 1970-01-01
      • 2014-09-08
      相关资源
      最近更新 更多