pymc.model.transform.conditioning.observe#

pymc.model.transform.conditioning.observe(model, vars_to_observations)[源代码]#

将自由随机变量或确定性变量转换为观测随机变量。

参数:
模型: PyMC 模型
vars_to_observations: 变量或名称到 TensorLike 的字典

将模型变量(或名称)映射到观测值的字典。观测值必须具有与原始模型变量兼容的形状和数据类型。

返回:
new_model: PyMC model

一个具有相关变量观测的独立 PyMC 模型。所有剩余变量都被克隆,并且可以通过 new_model[“var_name”] 获取。

示例

import pymc as pm

with pm.Model() as m:
    x = pm.Normal("x")
    y = pm.Normal("y", x)
    z = pm.Normal("z", y)

m_new = pm.observe(m, {y: 0.5})

确定性变量也可以被观察。这依赖于 PyMC 推断底层表达式对数概率的能力。

import pymc as pm

with pm.Model() as m:
    x = pm.Normal("x")
    y = pm.Normal.dist(x, shape=(5,))
    y_censored = pm.Deterministic("y_censored", pm.math.clip(y, -1, 1))

new_m = pm.observe(m, {y_censored: [0.9, 0.5, 0.3, 1, 1]})