如何在pyMC3中为多个随机变量实现似然加权产品?

时间:2019-06-24 19:25:30

标签: bayesian pymc3

我需要根据几个随机变量构建一个超似然函数。每个变量的分布是标准的。

以两个随机变量为例,目标超似然如下: S = F1 ^ w1 * F2 ^ w2(单位w1 + w2 = 1) 或等效地, logS = w1 logF1 + w2 log F1(s.t. w1 + w2 = 1)。

其中F1〜正态分布和F2〜Bernoulli分布

我使用以下代码

data = <load my data> 

[w1,w2] = [0.5,0.5]

with Model() as model:
    mu = pm.Uniform('mu',lower=0,upper=1)
    sd = pm.Uniform('sd',lower=0,upper=1)
    p = pm.Uniform('p',lower=0,upper=1)

    F1 = pm.Normal("F1", mu = mu, sigma = sd)
    F1 = pm.Bernoulli("F2",p)

    S = pm.Deterministic('S',F1**w1*F2**w2, observed=data)

    step = Metropolis()
    trace = pm.sample(2000, step=step)

但这不起作用。

请帮助在pyMC3中实现这种加权似然模型。

1 个答案:

答案 0 :(得分:0)