[英]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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.