問題タブ [pymc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1080 参照

python - pymc 3.0 予測事後分布

非常に単純な例を pymc 2.3 から pymc 3.0 に変換していますが、予測事後分布からサンプリング (または MAP を取得) する方法がわかりません。ドキュメント (7.3 モデルのチェックと診断: 適合度) の提案に従って、観測されていない確率論を追加することにより、pymc 2.3 を使用してこの分布からサンプリングできます。ここにノートブックへのリンクがあります。すべてうまくいくようです。

ただし、これをpymc 3.0で実行しようとすると、2 つの奇妙なことが起こります。

  1. 観測されていない確率論が最小化に影響を与えているかのように、MAP 値は近くさえなく、観測されていない確率論の MAP 値は間違っていますか?
  2. NUTS サンプラーは観測されていない確率論の値を変更しないため、トレースは単純に 10 という単一の値になります。

もちろん、観測された確率論が存在しない場合、この値は理にかなっています。pymc 3.0 では、予測事後分布の MAP 値の検索とサンプリングはどのように変更されましたか?

アップデート:

これは、私が間違っていたことを示す最小限の例です。

私はこれに自分自身で部分的に答えたと思います。まずはサンプリング。私が知る限り、NUTS サンプラーは離散変数を処理する機能を備えていません。ただし、Metropolis サンプラーは確実に離散を処理し (issue #235 で解決)、HamiltonianMC サンプラーも離散変数を処理するようです。

ただし、離散確率論の MAP 推定値は悪い運命にあります。すべての変数を使用するように指定した場合でも (デフォルトではありません)。離散確率論の対数確率関数は、任意の離散確率論の下限の対数確率を返すため、どの scipy 最小化関数が使用されても、局所最適に捕らえられます。最小化は、離散変数の小さなステップのいずれも対数確率の改善をもたらさないため、離散確率を固定したまま、連続確率論のみを最適化します。これがバグなのか、それとも離散変数と連続変数の両方がある場合に MAP 推定値を見つける際の基本的な制限なのかはわかりません。

更新 2:

複数のステップを使用すると、サンプリングはさらにうまく機能します。上記のモデルに使用できます。

0 投票する
1 に答える
339 参照

modeling - PyMC: 独立分布からの 2 つの値の合計

私は、pymc を使用して観測から潜在変数を学習しようとしています。簡略化されたバージョンは次のとおりです。

$\lambda_0、\lambda_1$、

これらのパラメーターをそれぞれ使用する 2 つのディストリビューション $X_0、X_1$ があります。

$X_0 \sim Expon(\lambda_0)$, $X_1 \sim Expon(\lambda_1)$.

$X_i$ に関する観測はありません。代わりに、これらの変数の線形結合が観測されています: $x_0^{(0)} + x_1^{(1)} + x_1^{(1)} = 6$, $x_0^{(1)} = 2$ .

私の最初のアプローチは次のようなものでしたが、機能しているとは思いません:

このおもちゃの例を教えてください。

0 投票する
4 に答える
2443 参照

python - PyMC: 階層的隠れマルコフ モデル

これはPyMC のフォローアップです: マルコフ システムでのパラメーター推定

各タイムステップでの位置と速度によって定義されるシステムがあります。システムの動作は次のように定義されます。

これが私の PyMC モデルです。見積もりvelposそして最も重要なことdamping

これは私がサンプリングを実行する方法です:

の値dampingは事前確率によって支配されます。ユニフォームなどの前を変えてもそのままです。

私は何を間違っていますか?別のレイヤーがあるだけで、前の例とほとんど同じです。

この問題の完全な IPython ノートブックは、http: //nbviewer.ipython.org/github/sotte/random_stuff/blob/master/PyMC%20-%20HMM%20Dynamic%20System.ipynbで入手できます。

[編集: いくつかの説明とサンプリングのためのコード。]

[EDIT2: @Chris の回答は役に立ちませんでした。AdaptiveMetropolis*_states はモデルの一部ではないため、使用できませんでした。]

0 投票する
1 に答える
1136 参照

hidden-markov-models - PyMC: 状態空間モデルをどのように記述できますか?

以前は C を使用して MCMC をコーディングしていましたが、PyMC を試してみたいと思います。

X_n が基礎となる状態であり、そのダイナミクスがマルコフ連鎖に従い、Y_n が観測されたデータであるとします。特に、

Y_n は、平均が X_n に依存するポアソン分布と、未知の多次元パラメーター シータ X_n | X_{n-1} はシータに応じて分布します

PyMC を使用してこのモデルをどのように記述すればよいですか?

別の質問: X_n ではなく、theta の共役事前確率を見つけることができます。共役事前確率を使用して更新される事後と、MCMC を使用して更新される事後を指定することは可能ですか?

0 投票する
1 に答える
718 参照

python - 混合モデルのpymc3への移植

で定義されているようにガウス混合モデルを移植しようとしています: PyMC で 3 つの法線の混合をモデル化する方法は? pymc3に

コード

次のコード エラーが発生します。

私は何を間違っていますか?

0 投票する
1 に答える
147 参照

pymc - PyMC のベータ分布線形モデル

古いGoogleグループではなく、ここで質問すべきだったことを取り上げて、PyMCでベータ分散線形モデルをパラメータ化することを検討していました.Chris Fonnesbeckは、次のように提案しました:

「\alpha = \mu \phi および \beta = (1-\mu) \phi であるベータの再パラメータ化だけです。したがって、必要なのは次のようなものだけです: new_beta = Lambda('new_beta', lambda x=x 、mu=mu、phi=phi: beta_like(x, mu*phi, (1-mu)*phi))"

これは素晴らしいです。次の質問は、線形モデル コンポーネントをどこに挿入するかです。たとえば、\mu に配置する必要があると思います。

$$\mu = \exp(b_0+b_1x)$$

ガンマ分布の \phi を使用すると、次のようになります。

これは正しいです?NB ここでは PyMC2 を使用しています

ありがとうアーロン

0 投票する
1 に答える
146 参照

python - pymc の汎用混合モデル

複数のこぶがあるディストリビューションがあります。各ハンプ、ガウス、指数、ワイブイルなどにいくつかの異なるタイプの分布を当てはめたいと思います。しかし、現状では、組み合わせごとに確率クラスを手動で定義する必要があるようです。私がやりたいことは次のようなものです

このような委任は可能ですか?これを行う標準的な方法はありますか?上記のようなことを止める主な理由は、変数のセットを一緒にグループ化する方法が思いつかないということです。