我需要根据几个随机变量构建一个超似然函数。每个变量的分布是标准的。
以两个随机变量为例,目标超似然如下: 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中实现这种加权似然模型。
答案 0 :(得分:0)