pymc.TruncatedNormal#
- class pymc.TruncatedNormal(name, *args, rng=None, dims=None, initval=None, observed=None, total_size=None, transform=UNSET, **kwargs)[源代码]#
单变量截断正态对数似然。
此分布的pdf是
\[f(x;\mu ,\sigma ,a,b)={\frac {\phi ({\frac {x-\mu }{\sigma }})}{ \sigma \left(\Phi ({\frac {b-\mu }{\sigma }})-\Phi ({\frac {a-\mu }{\sigma }})\right)}}\]截断正态分布可以用精度或标准差来参数化。这两种参数化之间的联系由以下公式给出:
\[\tau = \dfrac{1}{\sigma^2}\](
Source code
,png
,hires.png
,pdf
)支持
\(x \in [a, b]\)
均值
\(\mu +{\frac {\phi (\alpha )-\phi (\beta )}{Z}}\sigma\)
方差
\(\sigma ^{2}\left[1+{\frac {\alpha \phi (\alpha )-\beta \phi (\beta )}{Z}}-\left({\frac {\phi (\alpha )-\phi (\beta )}{Z}}\right)^{2}\right]\)
- 参数:
- mu : 类张量 的
float
,默认值为 0tensor_like of python:float, 默认值为 0 平均值。
- sigma : 类似张量 的
float
, 可选tensor_like 的 python:float, 可选 标准差(sigma > 0)(仅在未指定 tau 时需要)。如果既未指定 sigma 也未指定 tau,则默认为 1。
- tau : 类似张量 的
float
, 可选tensor_like 的 python:float, 可选 精度(tau > 0)(仅在未指定 sigma 时需要)。
- lowertensor_like of python:float, 默认 - numpy.inf
左边界。
- uppertensor_like of python:float, 默认 numpy.inf
右边界。
- mu : 类张量 的
示例
with pm.Model(): x = pm.TruncatedNormal('x', mu=0, sigma=10, lower=0) with pm.Model(): x = pm.TruncatedNormal('x', mu=0, sigma=10, upper=1) with pm.Model(): x = pm.TruncatedNormal('x', mu=0, sigma=10, lower=0, upper=1)
方法
TruncatedNormal.dist
([mu, sigma, tau, ...])创建一个与 cls 分布相对应的张量变量。