サンプラー サンプラー pymc.sample pymc.sample_prior_predictive pymc.sample_posterior_predictive pymc.sample_posterior_predictive_w pymc.sampling.jax.sample_blackjax_nuts pymc.sampling.jax.sample_numpyro_nuts pymc.init_nuts pymc.draw pymc.NUTS pymc.NamiltonianMC pymc.BinaryGibbsMetroplis pymc.BinaryMetropolis pymc.CategoricalGibbsMetropolis pymc.CauchhyProposal pymc.DEMetropolis pymc.DEMetropolisZ pymc.LaplaceProposal pymc.Metropolis pymc.MutivariateNormalProposal pymc.NormalProposal pymc.PoissonProposal pymc.UniformProposal pymc.CompoundStep pymc.Slice
pymc.sample 事後分布からサンプルを出力する。
pymc.sample(draws=1000, *, tune=1000, chains=None, cores=None, random_seed=None, progressbar=True, step=None, nuts_sampler='pymc', initvals=None, init='auto', jitter_max_retries=10, n_init=200000, trace=None, discard_tuned_samples=True, compute_convergence_checks=True, keep_warning_stat=False, return_inferencedata=True, idata_kwargs=None, nuts_sampler_kwargs=None, callback=None, mp_ctx=None, model=None, **kwargs)
変数 型 draw int 出力するサンプル数 tune int tuneのための繰り返し数 chains int チェイン数 cores int 並列に動かすチェイン数、(CPUコア数) random_seed int サンプリングステップに使うランダムシード progressbar bool コマンドラインに進捗バーを出力するかどうか step funstion ステップ関数。 nuts_sampler str 実行するNUTSの実装。(pymc,nutpie,blackjax,numpyro) intervals dict, dictの配列 dictに設定した初期値。 init str NUTSサンプラーを使う初期化メソッド jitter_max_retires int 初期行列を作る時に(チェインごとに)繰り返しに達する最大値 n_init int 初期化の繰り返し回数 trace バックエンドのインスタンス discard_tuned bool tuneインターバルの事後サンプルを破棄するかどうか compute_convergence_checks bool サンプラーの統計値を計算するかどうか return_inferencedata bool トレースを返すかどうか idata_kwargs dict pymc.to_inference_data()のキーワード引数 nuts_sampler_kwargs dict サンプリングライブラリのキーワード引数 callback チェインのトレースから各サンプルを呼び出す関数 mp_ctx multiprocessing.context.BaseContent 並列サンプリングのための多重処理コンテキスト model Model
(使用例)
import pymc as pm
n = 100
h = 61
alpha = 2
beta = 2
with pm.Model() as model: # context management
p = pm.Beta("p", alpha=alpha, beta=beta)
y = pm.Binomial("y", n=n, p=p, observed=h)
idata = pm.sample()
az.summary(idata, kind="stats")
Out[3]:
mean sd hdi_3% hdi_97%
p 0.609 0.047 0.528 0.699
pymc.sample_prior_predictive 事前予測分布からサンプルを生成する
pymc.sample_prior_predictive(samples=500, model=None, var_names=None, random_seed=None, return_inferencedata=True, idata_kwargs=None, compile_kwargs=None)
変数 samples 事前予測から生成するサンプル数 model Model var_names 事前予測サンプルを計算するための変数名のリスト random_seed 乱数生成用のシード return_inferencedata bool arviz.InferenceDataオブジェクト(True)またはdict(False)を返す. idata_kwargs dict pymc.to_inference_data()のためのキーワード引数 compile_kwargs pymc.pytensorf.compile_pymc()へのキーワード引数
リターン arviz.InferenceData 事前予測サンプルを含むarviZ InferenceDataオブジェクト
pymc.sample_posterior_predictive_w トレースを与えられたモデルから事後予測分布を生成する
pymc.sample_posterior_predictive(trace, model=None, var_names=None, sample_dims=None, random_seed=None, progressbar=True, return_inferencedata=True, extend_inferencedata=False, predictions=False, idata_kwargs=None, compile_kwargs=None)
変数 trace MCMCサンプリングから生成するトレース model Model 事後予測サンプルを生成するトレース var_names 事後予測サンプルを計算するための変数名のリスト random_seed 乱数生成用のシード progressbar コマンドラインに進捗バーを表示させるかどうか return_inferencedata bool arviz.InferenceDataオブジェクト(True)またはdict(False)を返す. extend_inferencedata bool 事後予測サンプルをtraceに追加するためにarviz.InferenceData.extend()を自動で使うかどうか predictions bool 戻り値arviz.InferenceDataオブジェクトの中の事後予測サンプルの位置をセットする idata_kwargs dict False:pymc.to_inference_data()のためのキーワード引数, True:pymc.predictions_to_inference_data() compile_kwargs pymc.pytensorf.compile_pymc()へのキーワード引数
(使用例)
thinned_idata = idata.sel(draw=slice(None, None, 5))
with model:
idata.extend(pymc.sample_posterior_predictive(thinned_idata))
expanded_data = idata.posterior.expand_dims(pred_id=5)
with model:
idata.extend(pymc.sample_posterior_predictive(expanded_data))
pymc.sampling.jax.sample_blackjax_nuts blackjaxライブラリのNUTSメソッドを使った事後分布からサンプルを出力
pymc.sampling.jax.sample_blackjax_nuts(draws=1000, tune=1000, chains=4, target_accept=0.8, random_seed=None, initvals=None, model=None, var_names=None, keep_untransformed=False, chain_method='parallel', postprocessing_backend=None, postprocessing_chunks=None, idata_kwargs=None, **kwargs)
変数 型 draw int 出力するサンプル数 tune int tuneのための繰り返し数 chains int チェイン数 target_accept float 調整されるステップサイズ random_seed int サンプリングステップに使うランダムシード initvals ランダム変数をマッピングしたdict型で与えられるランダム変数の初期値 var_names 事後サンプルを計算する変数名 keep_untransformed 事後サンプルの変換しない変数を含む chain_method サンプルの出力法。 pararell または vectorized postprocessing_backend 後処理の計算方法、gpu または cpu idata_kwargs dict pymc.to_inference_data()のキーワード引数
リターン arviz.InferenceData 事後サンプルを含むarviZ InferenceDataオブジェクト
pymc.sampling.jax.sample_numpyro_nuts numpyroライブラリのNUTSメソッドを使った事後分布からサンプルを書き出す。
pymc.sampling.jax.sample_numpyro_nuts(draws=1000, tune=1000, chains=4, target_accept=0.8, random_seed=None, initvals=None, model=None, var_names=None, progressbar=True, keep_untransformed=False, chain_method='parallel', postprocessing_backend=None, postprocessing_chunks=None, idata_kwargs=None, nuts_kwargs=None, **kwargs)
変数 型 draw int 出力するサンプル数 tune int tuneのための繰り返し数 chains int チェイン数 target_accept float 調整されるステップサイズ random_seed int サンプリングステップに使うランダムシード initvals ランダム変数をマッピングしたdict型で与えられるランダム変数の初期値 model Model サンプラーのモデル var_names str 事後サンプルを計算する変数名 progressbar bool コマンドラインに進捗バーを表示されるかどうか keep_untransformed 事後サンプルの変換しない変数を含む chain_method str サンプルの出力法。 pararell または vectorized postprocessing_backend 後処理の計算方法、gpu または cpu postprocessing_chunks 計算する後処理のチャンク数 idata_kwargs dict pymc.to_inference_data()のキーワード引数 nuts_kwargs numpyro.infer.NUTS()のキーワード引数
リターン arviz.InferenceData 事後サンプルを含むarviZ InferenceDataオブジェクト
pymc.init_nuts NUTSのための行列の塊の初期化
pymc.init_nuts(*, init='auto', chains=1, n_init=500000, model=None, random_seed=None, progressbar=True, jitter_max_retries=10, tune=None, initvals=None, **kwargs)
変数 型 init str 初期化メソッド chains int チェイン数 initvals dict dictまたはdictのリスト。ランダム変数をマッピングしたdict型で与えられるランダム変数の初期値 n_init int 初期化の繰り返し回数 model Model random_seed int サンプリングステップに使うランダムシード progressbar bool adviサンプリングの進捗バーを表示するかどうか jitter_max_retries int 初期行列を作る時に到達する繰り返し数の最大値 idata_kwargs dict pymc.NUTSにわたされるキーワード引数
リターン arviz.InferenceData 事後サンプルを含むarviZ InferenceDataオブジェクト
pymc.draw 変数または変数のリスト
pymc.draw(vars, draws=1, random_seed=None, **kwargs)
変数 型 vars TensorVariable サンプルを出力するための変数、または変数のリスト draws int 出力するサンプル数 random_seed int サンプリングステップに使うランダムシード **kwargs dict pymc.to_inference_data()のキーワード引数
リターン ndarrayのリスト numpy配列のリスト
(使用例)
import pymc as pm
# Draw samples for one variable
with pm.Model():
x = pm.Normal("x")
x_draws = pm.draw(x, draws=100)
print(x_draws.shape)
# Draw 1000 samples for several variables
with pm.Model():
x = pm.Normal("x")
y = pm.Normal("y", shape=10)
z = pm.Uniform("z", shape=5)
num_draws = 1000
# Draw samples of a list variables
draws = pm.draw([x, y, z], draws=num_draws)
assert draws[0].shape == (num_draws,)
assert draws[1].shape == (num_draws, 10)
assert draws[2].shape == (num_draws, 5)
pymc.NUTS ハミルトニアンの仕組みを基にした連続変数のサンプラー
class pymc.NUTS(*args, **kwargs)
メソッド NUTS.__init__([vars,max_treedepth,...]) No-U-Turnサンプラーの設定 NUTS.astep(q0) 単一のHMC繰り返しの実行 NUTS.competence(var,has_grad) ランダム変数のサンプリングにどの程度、このクラスが適当かチェックする NUTS.reset([start]) NUTS.reset_tuning([start]) NUTS.step(point) サンプラーを1ステップ実行する NUTS.stop_tuning()
属性 default_blocked name stats_dtypes 1<= 以下のdict型の値を含むリスト stats_dtypes_shapes vars ステップメソッドがアサインされた変数
pymc.HamiltonianMC ハミルトニアン仕組みを基にした連続変数のサンプラー
class pymc.HamiltonianMC(*args, **kwargs)
メソッド HamiltonianMC.__init__([vars,max_treedepth,...]) ハミルトニアン・モンテカルロサンプラーの設定 HamiltonianMC.astep(q0) 単一のHMC繰り返しの実行 HamiltonianMC.competence(var,has_grad) ランダム変数のサンプリングにどの程度、このクラスが適当かチェックする HamiltonianMC.reset([start]) HamiltonianMC.reset_tuning([start]) HamiltonianMC.step(point) サンプラーを1ステップ実行する HamiltonianMC.stop_tuning()
属性 default_blocked name stats_dtypes 1<= 以下のdict型の値を含むリスト stats_dtypes_shapes vars ステップメソッドがアサインされた変数
pymc.BinaryGibbsMetropolis バイナリ変数のために最適化されたメトロポリス ギッブスステップ法
class pymc.BinaryGibbsMetropolis(*args, **kwargs)
変数 型 vars TensorVariable サンプラーための変数のリスト order int ギッブス更新順序を示す整数のリスト transit_p int カーネル遷移の対角線 model dict サンプリングステップのための任意のモデル
メソッド BinaryGibbsMetropolis.__init__([vars,max_treedepth,...]) BinaryGibbsMetropolis.astep(apoint,*args) 混乱して、パラメータ空間を連結させたシングルステップの実行 BinaryGibbsMetropolis.competence(var,has_grad) バイナリメトロポリスはベルヌーイと分類変数(K=2)に適しています。 BinaryGibbsMetropolis.step(point) サンプラーを1ステップ実行する BinaryGibbsMetropolis.stop_tuning()
属性 name stats_dtypes 1<= 以下のdict型の値を含むリスト stats_dtypes_shapes 統計名をdtypes と shapes にマップする vars ステップメソッドがアサインされた変数
pymc.BinaryMetropolis バイナリ変数に最適化したメトロポリス・ヘイスティング
class pymc.BinaryMetropolis(*args, **kwargs)
変数 型 vars TensorVariable サンプラーための変数のリスト scaling int 提案する初期スケール因子 tune bool チューニングフラグ tune_interval int チューニングの頻度 model dict サンプリングステップのための任意のモデル
メソッド BinaryMetropolis.__init__([vars,max_treedepth,...]) BinaryMetropolis.astep(apoint,*args) 混乱して(raveled)、パラメータ空間を連結させたシングルステップの実行 BinaryMetropolis.competence(var,has_grad) バイナリメトロポリスはバイナリと分類変数(K=1)に最適となります BinaryMetropolis.step(point) サンプラーを1ステップ実行する BinaryMetropolis.stop_tuning()
属性 name stats_dtypes 1<= 以下のdict型の値を含むリスト stats_dtypes_shapes 統計名をdtypes と shapes にマップする vars ステップメソッドがアサインされた変数
pymc.CategoricalGibbsMetropolis 分類変数のために最適化したメトロポリス・ギッブス・ステップ法
class pymc.CategoricalGibbsMetropolis(*args, **kwargs)
メソッド CategoricalGibbsMetropolis.__init__([vars,max_treedepth,...]) CategoricalGibbsMetropolis.astep(apoint,*args) 混乱して(raveled)、パラメータ空間を連結させたシングルステップの実行 CategoricalGibbsMetropolis.astep_prop CategoricalGibbsMetropolis.astep_unif CategoricalGibbsMetropolis.competence(var,has_grad) 分類ギッブスメトロポリスはベルヌーイと分類変数に最適となります CategoricalGibbsMetropolis.metropolis_proportional(q,...) CategoricalGibbsMetropolis.step(point) サンプラーを1ステップ実行する CategoricalGibbsMetropolis.stop_tuning()
属性 name stats_dtypes 1<= 以下のdict型の値を含むリスト stats_dtypes_shapes 統計名をdtypes と shapes にマップする vars ステップメソッドがアサインされた変数
pymc.CauchyProposal class pymc.CauchyProposal(s)
メソッド CauchyProposal.__init__(s)
pymc.DEMetropolis 差分進化メトロポリス サンプリングステップ
遺伝アルゴリズムを用いた最適化アルゴリズム、より詳しい情報は以下の文献Statistics and Computingを参照
A Markov Chain Monte Carlo version of the genetic algorithm Differential Evolution: easy Bayesian computing for real parameter spaces
Cajo J. F. Ter Braak class pymc.DEMetropolis(*args, **kwargs)
変数 型 lamb float DE提案する仕組みのLambdaパラメータ vars TensorVariable サンプラーための変数のリスト S 標準偏差または共分散行列 母数の提案分布のための基準の変数 proposal_dist 母数がSの平均ゼロを返す関数 scaling int epsilonのための初期スケール因子 tune str どのパラメータをチューニングするか tune_interval int チューニングの頻度 model dict サンプリングステップのための任意のモデル mode str PyTensor関数に渡すコンパイルモード
メソッド CategoricalGibbsMetropolis.__init__([vars,max_treedepth,...]) CategoricalGibbsMetropolis.astep(apoint,*args) 混乱して(raveled)、パラメータ空間を連結させたシングルステップの実行 CategoricalGibbsMetropolis.competence(var,has_grad) 分類ギッブスメトロポリスはベルヌーイと分類変数に最適となります CategoricalGibbsMetropolis.link_population(population,...) サンんプラーを母集団にリンクする CategoricalGibbsMetropolis.step(point) サンプラーを1ステップ実行する CategoricalGibbsMetropolis.stop_tuning()
属性 name stats_dtypes 1<= 以下のdict型の値を含むリスト stats_dtypes_shapes 統計名をdtypes と shapes にマップする vars ステップメソッドがアサインされた変数
pymc.DEMetropolisZ 適応差分進化メトロポリス・サンプリングステップ
class pymc.DEMetropolisZ(*args, **kwargs)
変数 型 lamb float DE提案する仕組みのLambdaパラメータ vars TensorVariable サンプラーための変数のリスト S 標準偏差または共分散行列 母数の提案分布のための基準の変数 proposal_dist 母数がSの平均ゼロを返す関数 scaling int epsilonのための初期スケール因子 tune str どのパラメータをチューニングするか tune_interval int チューニングの頻度 tune_drop_fraction float チューニングが終了した時にサンプラーの履歴から除去するチューニングステップの部分 model dict サンプリングステップのための任意のモデル mode str PyTensor関数に渡すコンパイルモード
アルゴリズムのより詳しい情報は以下の文献Statistics and Computingを参照
Differential Evolution Markov Chain with snooker updater and fewer chains
Cajo C.F. ter Braak メソッド DEMetropolisZ.__init__([vars,max_treedepth,...]) DEMetropolisZ.astep(q0) 混乱した(raveled)、パラメータ空間を連結させたシングルステップの実行 DEMetropolisZ.competence(var,has_grad) DEMetropolisZ.reset_tuning() 初期値の履歴とチューニングしたサンプラーのパラメータをリセットする DEMetropolisZ.step(point) サンプラーを1ステップ実行する DEMetropolisZ.stop_tuning() チューニングフェイズの終了時、履歴の最初のX%をこのメソッドで除去する。
属性 default_blocked name stats_dtypes 1<= 以下のdict型の値を含むリスト stats_dtypes_shapes 統計名をdtypes と shapes にマップする vars ステップメソッドがアサインされた変数
pymc.LaplaceProposal class pymc.LaplaceProposal(s)
メソッド LaplaceProposal.__init__(s)
pymc.Metropolis メトロポリス・ヘイスティング サンプリングステップ
class pymc.Metropolis(*args, **kwargs)
メソッド Metropolis.__init__([vars,max_treedepth,...]) メトロポリスステッパーのインスタンスを生成する。 Metropolis.astep(q0) 混乱して(raveled)、パラメータ空間を連結したシングルステップの実行 Metropolis.competence(var,has_grad) Metropolis.reset_tuning() 初期値の履歴とチューニングしたサンプラーのパラメータをリセットする Metropolis.step(point) サンプラーを1ステップ実行する Metropolis.stop_tuning() チューニングフェイズの終了時、履歴の最初のX%をこのメソッドで除去する。
属性 default_blocked name stats_dtypes 1<= 以下のdict型の値を含むリスト stats_dtypes_shapes 統計名をdtypes と shapes にマップする vars ステップメソッドがアサインされた変数
pymc.MultivariateNormalProposal class pymc.MultivariateNormalProposal(s)
メソッド MultivariateNormalProposal.__init__(s)
pymc.NormalProposal class pymc.NormalProposal(s)
メソッド NormalProposal.__init__(s)
pymc.PoissonProposal class pymc.PoissonProposal(s)
メソッド PoissonProposal.__init__(s)
pymc.UniformProposal class pymc.UniformProposal(s)
メソッド PoissonProposal.__init__(s)
pymc.CompoundStep 順番に適用する他のいくつかのステップのリストからなるステップ法
class pymc.CompoundStep(methods)
メソッド Metropolis.__init__([vars,max_treedepth,...]) メトロポリスステッパーのインスタンスを生成する。 Metropolis.reset_tuning() 初期値の履歴とチューニングしたサンプラーのパラメータをリセットする Metropolis.step(point) サンプラーを1ステップ実行する Metropolis.stop_tuning() チューニングフェイズの終了時、履歴の最初のX%をこのメソッドで除去する。
pymc.Slice 単一変数スライスサンプラー・ステップ法
class pymc.Slice(*args, **kwargs)
変数 型 vars TensorVariable サンプラーための変数のリスト w float 初期スライス幅、デフォルト値1 tune bool チューニングフラグ model dict サンプリングステップのための任意のモデル
メソッド Slice.__init__([vars,max_treedepth,...]) メトロポリスステッパーのインスタンスを生成する。 Slice.astep(apoint,*args) もつれて(raveled)、パラメータ空間を連結させた単一のステップの実行 Slice.competence(var,has_grad) Slice.step(point) サンプラーを1ステップ実行する Slice.stop_tuning() チューニングフェイズの終了時、履歴の最初のX%をこのメソッドで除去する。
属性 default_blocked name stats_dtypes 1<= 以下のdict型の値を含むリスト stats_dtypes_shapes 統計名をdtypes と shapes にマップする vars ステップメソッドがアサインされた変数