PyMC:独立分布的两个值之和

2024-06-16 11:26:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过使用pymc从观察中学习潜在变量。 简化版本如下:

我想学习两个隐藏参数$\lambda_0,\lambda\u 1$

虽然有两个分布$X_0,X_1$分别使用这些参数:

$X_0\sim Expon(\lambda_0)$,$X_1\sim Expon(\lambda_1)$。在

我没有关于$X\u I$的观察结果。 相反,我观察到这些变量的线性组合: $x{0^{(0)}+x}1^{(1)}+x}1^{(1)}=6$, $x_0^{(1)}=2$。在

我最初的做法不太管用,但我认为:

import pymc

lambda0 = pymc.Uniform('lambda0', 0, 10)
lambda1 = pymc.Uniform('lambda1', 0, 10)
x00 = pymc.Exponential('x00', lambda0)
x01 = pymc.Exponential('x01', lambda0)
x10 = pymc.Exponential('x10', lambda1)
x11 = pymc.Exponential('x11', lambda1)
z = pymc.Normal('z', mu=[x00+x10+x11, x01], tau=1.0, value=[6, 2], observed=True)

model = pymc.Model([lambda0, lambda1, x00, x01, x10, x11, z])
mcmc = pm.MCMC(model)
mcmc.sample(10000)

你能帮我举这个玩具的例子吗?在


Tags: lambda参数modeluniformsimpymcmcmcx10
1条回答
网友
1楼 · 发布于 2024-06-16 11:26:17

在使用指数变量作为参数之前,您应该创建一个确定性的指数变量。试试这个:

mu = [x00+x10+x11, x01]
z = pymc.Normal('z', mu=mu, tau=1.0, value=[6, 2], observed=True)

另外,您不需要同时实例化ModelMCMC对象。只是后者:

^{pr2}$

相关问题 更多 >