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

pyMC API 分布3 多変量分布

多変量分布

多変量分布
pymc.CAR
pymc.Dirchlet
pymc.DirchletMultinomial
pymc.KroneckerNormal
pymc.LKJCholeskyCov
pymc.LKJCorr
pymc.MatrixNormal
pumc.MultiNomial
pymc.MvStudentT
pymc.OrderedMultinomial
pymc.StickBreakingWeights
pymc.Wishart
pymc.WishartBarlett
pymc.ZeroSumNormal

pymc.CAR

条件自己回帰尤度

class pymc.CAR(name, *args, rng=None, dims=None, initval=None, observed=None, total_size=None, transform=UNSET, **kwargs)
変数
mu浮動小数点のtensor_like平均ベクトル
W整数のtensor_like対角行列
alpha浮動小数点のtensor_like自己回帰パラメータ
tau浮動小数点のtensor_like正の精度
メソッド
CAR.__init__(*args,**kwargs)
CAR.dist(mu,W,alpha,tau,*args,**kwargs)c/s分布に一致したテンソル変数を生成する。
CAR.logp(mu,W,alpha,tau)
CAR.moment(size,mu,W,alpha,tau)

pymc.Dirichlet

 ディリクレ対数尤度

class pymc.Dirichlet(name, *args, rng=None, dims=None, initval=None, observed=None, total_size=None, transform=UNSET, **kwargs)
変数
a浮動小数点または整数のtensor_like集約パラメータ
メソッド
Dirichlet.__init__(*args,**kwargs)
Dirichlet.dist(a,**kwargs)c/s分布に一致したテンソル変数を生成する。

pymc.DirichetMultinomial

ディリクレ多項対数尤度

class pymc.DirichletMultinomial(name, *args, **kwargs)
変数
n整数のtensor_like各リプルケイトの全数
a浮動小数点のtensor_like集約パラメータ
メソッド
DirichletMultinomial.__init__(*args,**kwargs)
DirichletMultinomial.dist(mu,W,alpha,tau,*args,**kwargs)c/s分布に一致したテンソル変数を生成する。
DirichletMultinomial.logp(mu,W,alpha,tau)
DirichletMultinomial.moment(size,mu,W,alpha,tau)

pymc.KroneckerNormal

クロネッカー構造化共分散 多変量正規対数尤度

class pymc.KroneckerNormal(name, *args, rng=None, dims=None, initval=None, observed=None, total_size=None, transform=UNSET, **kwargs)
変数
mu整数のtensor_like平均ベクトル
covs配列のリスト共分散マトリックスのセット
evdstupleのリスト固有値、固有ベクトルのセット、固有ベクトルーマトリックスペア
sigmaスカラーガウスホワイトノイズの標準偏差
(使用例)

多変量正規変数 共分散 K = K1 x K2

K1 = np.array([[1., 0.5], [0.5, 2]])
K2 = np.array([[1., 0.4, 0.2], [0.4, 2, 0.3], [0.2, 0.3, 1]])
covs = [K1, K2]
N = 6
mu = np.zeros(N)
with pm.Model() as model:
    vals = pm.KroneckerNormal('vals', mu=mu, covs=covs, shape=N)

メソッド
KroneckerNormal.__init__(*args,**kwargs)
KroneckerNormal.dist(mu[,cov,chols,...)c/s分布に一致したテンソル変数を生成する。
KroneckerNormal.logp(mu,sigma,*covs)多変量正規分布の対数確率の計算
KroneckerNormal.moment(size,mu,covs,...)

pymc.LKJCholeskyCov

 LKJ分布相関 共分散行列のラッパークラス

class pymc.LKJCholeskyCov(name, eta, n, sd_dist, *, compute_corr=True, store_in_trace=True, **kwargs)
変数
namestrモデルの変数名
eta浮動小数点のtensor_likeLKJ分布のシェイプパラメータ (eta > 0 )
n整数のtensor_like共分散行列の次元( n > 1)
sd_dist分布標準偏差への正の数値またはベクター分布
compute_corr真偽値真ならば三つの値を返す(コ-レスキー分解、相関、共分散行列の標準偏差)
store_in_trace真偽値事後トレースの共分散行列の標準偏差と相関をストアするかどうか
リターン
変数
cholTensorVariable分解されたコレスキー共分散分解
corrTensorVariable共分散行列の相関
stdsTensorVariable共分散行列の標準偏差
packed_cholTensorVariableパックされたコレスキー共分散分解

(使用例)

with pm.Model() as model:
    # Note that we access the distribution for the standard
    # deviations, and do not create a new random variable.
    sd_dist = pm.Exponential.dist(1.0, size=10)
    chol, corr, sigmas = pm.LKJCholeskyCov(
        'chol_cov', eta=4, n=10, sd_dist=sd_dist
    )

    # if you only want the packed Cholesky:
    # packed_chol = pm.LKJCholeskyCov(
        'chol_cov', eta=4, n=10, sd_dist=sd_dist, compute_corr=False
    )
    # chol = pm.expand_packed_triangular(10, packed_chol, lower=True)

    # Define a new MvNormal with the given covariance
    vals = pm.MvNormal('vals', mu=np.zeros(10), chol=chol, shape=10)

    # Or transform an uncorrelated normal:
    vals_raw = pm.Normal('vals_raw', mu=0, sigma=1, shape=10)
    vals = pt.dot(chol, vals_raw)

    # Or compute the covariance matrix
    cov = pt.dot(chol, chol.T)

メソッド
LKJCholeskyCov.__init__(*args,**kwargs)
LKJCholeskyCov.dist(eta,n,sd_dist,*[,...])
LKJCholeskyCov.logp(n,...)多変量正規分布の対数確率の計算

pymc.LKJCorr

LKJ対数尤度

class pymc.LKJCorr(name, *args, rng=None, dims=None, initval=None, observed=None, total_size=None, transform=UNSET, **kwargs)
変数
n整数のtensor_like共分散行列の次元
eta浮動小数点のtensor_likeLKJ分布のシェイプパラメータ (eta > 0 )
メソッド
LKJCorr.__init__(*args,**kwargs)
LKJCorr.dist(n,eta,**kwargs)c/s分布に一致したテンソル変数を生成する。
LKJCorr.logp(n,eta)LKJ分布の対数確率の計算
LKJCorr.moment(*args)

pymc.MatrixNormal

行列正規対数分布

class pymc.MatrixNormal(name, *args, rng=None, dims=None, initval=None, observed=None, total_size=None, transform=UNSET, **kwargs)
変数
mu浮動小数点のtensorlike平均の配列
rowcov浮動小数点のtensor_likerow(横の列)間の共分散行列
rowchol浮動小数点のtensor_like共分散行列間のコレスキー分解
colcov分布column(縦の列)間の共分散行列
colchol真偽値column間の共分散行列のコレスキー分解
store_in_trace真偽値事後トレースの共分散行列の標準偏差と相関をストアするかどうか
(使用例)

共分散行列から変数を作ります。

colcov = np.array([[1., 0.5], [0.5, 2]])
rowcov = np.array([[1, 0, 0], [0, 4, 0], [0, 0, 16]])
m = rowcov.shape[0]
n = colcov.shape[0]
mu = np.zeros((m, n))
vals = pm.MatrixNormal('vals', mu=mu, colcov=colcov,
                       rowcov=rowcov)

メソッド
MatrixNormal.__init__(*args,**kwargs)
MatrixNormal.dist(mu[,rowcov,rowchol,...])c/s分布に一致したテンソル変数を生成する。
MatrixNormal.logp(mu,rowchol,colchol)正規分布の対数確率の計算
MatrixNormal.moment(size,mu,rowchol,colchol)

pymc.MultiNomial

多項対数尤度

変数
n整数のtensor_like共分散行列の次元
p浮動小数点のtensor_like異なる結果の各確率  ( 0 <= p <= 1 )
メソッド
Multinomial.__init__(*args,**kwargs)
Multinomial.dist(n,p,*args,**kwargs)c/s分布に一致したテンソル変数を生成する。
Multinomial.logp(n,p)正規分布の対数確率の計算
Multinomial.moment(size,n,p)

pymc.MvNormal

多変量正規対数尤度

class pymc.MvNormal(name, *args, rng=None, dims=None, initval=None, observed=None, total_size=None, transform=UNSET, **kwargs)
変数
mu浮動小数点のtensorlike平均のベクトル
cov浮動小数点のtensor_likerow間の共分散行列
tau浮動小数点のtensor_like精度行列
chol分布共分散行列のコレスキー分解
lower真偽値

(使用例)

与えられた共分散行列から多変量正規変数を作る。

cov = np.array([[1., 0.5], [0.5, 2]])
mu = np.zeros(2)
vals = pm.MvNormal('vals', mu=mu, cov=cov, shape=(5, 2))
メソッド
MvNormal.__init__(*args,**kwargs)
MvNormal.dist(mu[,cov,tau,chol,lower])c/s分布に一致したテンソル変数を生成する。
MvNormal.logp(mu,cov)正規分布の対数確率の計算
MvNormal.moment(size,mu,cov)

pymc.MvStudentT

多変量ステューデントT対数尤度

class pymc.MvStudentT(name, *args, rng=None, dims=None, initval=None, observed=None, total_size=None, transform=UNSET, **kwargs)
変数
nu浮動小数点のtensorlike自由度
sigma浮動小数点のtensor_likeスケール行列
mu浮動小数点のtensor_like平均のベクトル
scale浮動小数点のtensor_likeスケール行列
tau浮動小数点のtensor_like精度行列
chol浮動小数点のtensor_likeスケール行列のコレスキー因子
lower真偽値
メソッド
MvStudentT.__init__(*args,**kwargs)
MvStudentT.dist(nu[,Sigma,mu,scale,tau,...])c/s分布に一致したテンソル変数を生成する。
MvStudentT.logp(nu,mu,scale)正規分布の対数確率の計算
MvStudentT.moment(size,nu,mu,scale)

pymc.OrderedMultinomial

多項分布のラッパークラス

class pymc.OrderedMultinomial(name, *args, compute_p=True, **kwargs)
変数
eta浮動小数点のtensorlike予測値
cutpoints浮動小数点のtensor_like長さ K-1のカットポイントの配列
n浮動小数点のtensor_like多項トライアルの合計数
compute_p真偽値各カテゴリーの推定確率のトレースを計算して保存するかどうか

(使用例)

# Generate data for a simple 1 dimensional example problem
true_cum_p = np.array([0.1, 0.15, 0.25, 0.50, 0.65, 0.90, 1.0])
true_p = np.hstack([true_cum_p[0], true_cum_p[1:] - true_cum_p[:-1]])
fake_elections = np.random.multinomial(n=1_000, pvals=true_p, size=60)

# Ordered multinomial regression
with pm.Model() as model:
    cutpoints = pm.Normal(
        "cutpoints",
        mu=np.arange(6) - 2.5,
        sigma=1.5,
        initval=np.arange(6) - 2.5,
        transform=pm.distributions.transforms.ordered,
    )

    pm.OrderedMultinomial(
        "results",
        eta=0.0,
        cutpoints=cutpoints,
        n=fake_elections.sum(1),
        observed=fake_elections,
    )

    trace = pm.sample()

# Plot the results
arviz.plot_posterior(trace_12_4, var_names=["complete_p"], ref_val=list(true_p));
メソッド
OrderedMultinomial.__init__(*args,**kwargs)
OrderedMultinomial.dist(nu[,Sigma,mu,scale,tau,...])

pymc.StickBreakingWeights

Likelihood of truncated stick-breaking weights

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

変数
alpha浮動小数点のtensorlike集約パラメータ
K浮動小数点のtensor_like最初の一つのスティックから分割するスティックン数
メソッド
StickBreakingWeights.__init__(*args,**kwargs)
StickBreakingWeights.dist(alpha,K,*args,...)c/s分布に一致したテンソル変数を生成する。
StickBreakingWeights.logp(alpha,K)正規分布の対数確率の計算
StickBreakingWeights.moment(size,alpha,K)

pymc.Wishart

ウィッシャート対数尤度

class pymc.Wishart(name, *args, rng=None, dims=None, initval=None, observed=None, total_size=None, transform=UNSET, **kwargs)
変数
mu整数のtensorlike自由度 > 0
V浮動小数点のtensor_likep x p 正の有限の行列
メソッド
Wishart.__init__(*args,**kwargs)
Wishart.dist(nu,V,*args,...)c/s分布に一致したテンソル変数を生成する。
Wishart.logp(nu,V)Wishart分布の対数確率の計算

pymc.WishartBartlett

ウィッシャート行列のバートレット分解

pymc.WishartBartlett(name, S, nu, is_cholesky=False, return_cholesky=False, initval=None)
変数
Sndarrayp x p 正の有限の行列、またはp x pの共分散行列のコレスキー因子からなる下位3角行列
nu整数のtensor_like自由度 > dim(S)
is_cholesky真偽値入力行列Sがコレスキー分解されているか S.T * S
return_cholesky真偽値コレスキー分解行列だけがリターン
initvalndarray初期化に使う p x p 正の有限の行列

pymc.ZeroSumNormal

ゼロサム正規分布

class pymc.ZeroSumNormal(*args, zerosum_axes=None, n_zerosum_axes=None, support_shape=None, dims=None, **kwargs)
変数
sigma浮動小数点のtensor_likeスケールパラメータ( sigma > 0 )
n_zerosum_axes整数のtensor_likeゼロサム軸の数
zerosum_axesゼロサム軸
dims文字列分布の次元の名称
shape整数のtuple分布のシェイプ

(使用例)

COORDS = {
    "regions": ["a", "b", "c"],
    "answers": ["yes", "no", "whatever", "don't understand question"],
}
with pm.Model(coords=COORDS) as m:
    # the zero sum axis will be 'answers'
    v = pm.ZeroSumNormal("v", dims=("regions", "answers"))

with pm.Model(coords=COORDS) as m:
    # the zero sum axes will be 'answers' and 'regions'
    v = pm.ZeroSumNormal("v", dims=("regions", "answers"), n_zerosum_axes=2)

with pm.Model(coords=COORDS) as m:
    # the zero sum axes will be the last two
    v = pm.ZeroSumNormal("v", shape=(3, 4, 5), n_zerosum_axes=2)
メソッド
ZeroSumNormal.__init__(*args,**kwargs)
ZeroSumNormal.dist(n_zerosum_axes)c/s分布に一致したテンソル変数を生成する。
ZeroSumNormal.logp([sigma,n,zerosum_axes,...])
ZeroSumNormal.moment(sigma,n_zerosum,...)

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