pyMC API ベイズ・確率プログラミング

pyMC API 分布4 混合分布

混合分布

混合分布
pymc.Mixture
pymc.NormalMixture

pymc.Mixture

混合対数尤度

class pymc.Mixture(name, *args, rng=None, dims=None, initval=None, observed=None, total_size=None, transform=UNSET, **kwargs)

変数
w浮動小数点のtensor_like 0 <= w <= 1
comp_distdist() APIで分布を作ります。

(使用例)

# Mixture of 2 Poisson variables
with pm.Model() as model:
    w = pm.Dirichlet('w', a=np.array([1, 1]))  # 2 mixture weights

    lam1 = pm.Exponential('lam1', lam=1)
    lam2 = pm.Exponential('lam2', lam=1)

    # As we just need the logp, rather than add a RV to the model, we need to call `.dist()`
    # These two forms are equivalent, but the second benefits from vectorization
    components = [
        pm.Poisson.dist(mu=lam1),
        pm.Poisson.dist(mu=lam2),
    ]
    # `shape=(2,)` indicates 2 mixture components
    components = pm.Poisson.dist(mu=pm.math.stack([lam1, lam2]), shape=(2,))

    like = pm.Mixture('like', w=w, comp_dists=components, observed=data)

メソッド
Mixture.__init__(*args,**kwargs)
Mixture.dist(w, comp_dists,**kwargs)c/s分布に一致したテンソル変数を生成する。
Mixture.rv_op(weights,*components[,size])

pymc.NormalMixture

正規混合対数尤度

class pymc.NormalMixture(name, w, mu, sigma=None, tau=None, comp_shape=(), **kwargs)
変数
w浮動小数点のtensor_like 0 <= w <= 1
mu浮動小数点のtensor_likeコンポーネントの平均
sigma浮動小数点のtensor_likeコンポーネントの標準偏差
tau浮動小数点のtensor_likeコンポーネント精度
comp_shape混合分布のシェイプとは異なる

(使用例)

n_components = 3

with pm.Model() as gauss_mix:
    μ = pm.Normal(
        "μ",
        mu=data.mean(),
        sigma=10,
        shape=n_components,
        transform=pm.transforms.ordered,
        initval=[1, 2, 3],
    )
    σ = pm.HalfNormal("σ", sigma=10, shape=n_components)
    weights = pm.Dirichlet("w", np.ones(n_components))

    y = pm.NormalMixture("y", w=weights, mu=μ, sigma=σ, observed=data)

メソッド
NormalMixture.__init__(*args,**kwargs)
NormalMixture.dist(w, mu[,sigma,tau,...])

-pyMC API, ベイズ・確率プログラミング
-,