我有一个超级基本的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
,以确保一切都健康。
答案 0 :(得分:1)
就是这样 - 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