簡體   English   中英

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

暫無
暫無

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM