PyMC3:如何从转换后的随机变量中采样?
PyMC3: how to sample from transformed random variable?
我有一个超级基本的 PYMC3 问题:如何从改造后的 RV 中采样?我需要它主要用于调试目的。
例如:
import pymc3 as pm
with pm.Model():
A = pm.Normal('A')
B = pm.Deterministic('B', A + 1)
# or
B = A + 1
我可以使用 A.random()
从 A 生成样本,但未为 B
定义该函数。 + 1
是一个微不足道的变换,但如果涉及更多,我想从变形的 A
中抽取一些样本,即 B
,以确保一切正常。
就是这样——PyMC3
要求你首先构建一个你已经完成的模型,然后使用 pm.sample
.
您要查找的语法是:
with pm.Model():
A = pm.Normal('A')
B = pm.Deterministic('B', A + 1)
trace = pm.sample(1000)
(trace['B'] == trace['A'] + 1).all() # True
我有一个超级基本的 PYMC3 问题:如何从改造后的 RV 中采样?我需要它主要用于调试目的。
例如:
import pymc3 as pm
with pm.Model():
A = pm.Normal('A')
B = pm.Deterministic('B', A + 1)
# or
B = A + 1
我可以使用 A.random()
从 A 生成样本,但未为 B
定义该函数。 + 1
是一个微不足道的变换,但如果涉及更多,我想从变形的 A
中抽取一些样本,即 B
,以确保一切正常。
就是这样——PyMC3
要求你首先构建一个你已经完成的模型,然后使用 pm.sample
.
您要查找的语法是:
with pm.Model():
A = pm.Normal('A')
B = pm.Deterministic('B', A + 1)
trace = pm.sample(1000)
(trace['B'] == trace['A'] + 1).all() # True