pymc.icdf#

pymc.icdf(rv, value, warn_rvs=None, **kwargs)[源代码]#

为随机变量的逆累积分布函数创建一个图。

参数:
rvTensorVariable
value : 类似张量tensor_like

应与随机变量(rv)具有相同类型(形状和数据类型)。

warn_rvs : 布尔值,默认值 Truebool, 默认 python:True

如果在 icdf 图中发现 RVs,则发出警告。当一个变量以其他随机变量为输入时,可能会发生这种情况。在这种情况下,这些随机变量应替换为其各自的值。

返回:
icdfTensorVariable
Raises:
RuntimeError

如果无法推导出 icdf。

示例

创建一个编译函数,用于计算变量的逆累积分布函数(icdf)

import pymc as pm
import pytensor.tensor as pt

mu = pt.scalar("mu")
rv = pm.Normal.dist(mu, 1.0)

value = pt.scalar("value")
rv_icdf = pm.icdf(rv, value)

# Use .eval() for debugging
print(rv_icdf.eval({value: 0.9, mu: 0.0}))  # 1.28155157

# Compile a function for repeated evaluations
rv_icdf_fn = pm.compile_pymc([value, mu], rv_icdf)
print(rv_icdf_fn(value=0.9, mu=0.0))  # 1.28155157

推导随机变量变换的图

import pymc as pm
import pytensor.tensor as pt

mu = pt.scalar("mu")
rv = pm.Normal.dist(mu, 1.0)
exp_rv = pt.exp(rv)

value = pt.scalar("value")
exp_rv_icdf = pm.icdf(exp_rv, value)

# Use .eval() for debugging
print(exp_rv_icdf.eval({value: 0.9, mu: 0.0}))  # 3.60222448

# Compile a function for repeated evaluations
exp_rv_icdf_fn = pm.compile_pymc([value, mu], exp_rv_icdf)
print(exp_rv_icdf_fn(value=0.9, mu=0.0))  # 3.60222448