bayesian - 如何在pyMC3中实现多个随机变量的可能性加权乘积?
问题描述
我需要从几个随机变量中构建一个超似然函数。每个变量的分布是标准的。
以两个随机变量为例,目标超似然是这样的:S = F1^w1 * F2^w2 (st w1 + w2 = 1) 或者等效地,logS = w1 logF1 + w2 log F1 (st w1 + w2 = 1)。
其中 F1 ~ 正态分布和 F2 ~ 伯努利分布
我使用以下代码
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 中实现这样的加权似然模型。
解决方案
推荐阅读
- c - 使用 fscanf 存储在数组中
- javascript - 仅使用 EJS 和 res.render 加载 JS 文件一次
- php - 需要为具有特定 php 模板的页面分配自定义分类 - Wordpress
- vba - 在 powerpoint 退出演示文稿后让代码工作
- amazon-web-services - Route53 不解析 DNS 配置
- xamarin.forms - Xamarin.forms 未在添加新项目中列出
- javascript - Javascript全局函数替换事件
- php - 在 laravel 问题中更改索引刀片
- php - 如何从 laravel 中的某个路由页面检索图像或文件?
- python - 在 python 中使用 cv2 创建图像数据集时出错