pymc.ICAR#
- class pymc.ICAR(name, *args, rng=None, dims=None, initval=None, observed=None, total_size=None, transform=UNSET, **kwargs)[源代码]#
内在的条件自回归先验。它主要用于建模相邻区域之间的协方差。这是
CAR
分布的一个特例,其中 alpha 设置为 1。对数概率密度函数是
\[f(\phi| W,\sigma) = - \frac{1}{2\sigma^{2}} \sum_{i\sim j} (\phi_{i} - \phi_{j})^2 - \frac{1}{2}*\frac{\sum_{i}{\phi_{i}}}{0.001N}^{2} - \ln{\sqrt{2\pi}} - \ln{0.001N}\]第一个项表示空间协方差分量。每个 $phi_{i}$ 根据其与每个邻居的平方距离进行惩罚。符号 $isim j$ 表示对 $phi_{i}$ 的所有邻居求和。最后三项是正态对数密度函数,其中均值为零,标准差为 $N * 0.001$(其中 N 是向量 $phi$ 的长度)。这一部分通过求和向量 $phi$ 并根据其与零的距离进行惩罚,施加了零和约束。
- 参数:
参考文献
示例
此示例展示了如何在中置和非中置参数化之间切换。
import numpy as np import pymc as pm # 4x4 adjacency matrix # arranged in a square lattice W = np.array([ [0,1,0,1], [1,0,1,0], [0,1,0,1], [1,0,1,0] ]) # centered parameterization with pm.Model(): sigma = pm.Exponential('sigma', 1) phi = pm.ICAR('phi', W=W, sigma=sigma) mu = phi # non-centered parameterization with pm.Model(): sigma = pm.Exponential('sigma', 1) phi = pm.ICAR('phi', W=W) mu = sigma * phi
方法
ICAR.dist
(W[, sigma, zero_sum_stdev])创建一个与 cls 分布相对应的张量变量。