問題タブ [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 投票する
2 に答える
2280 参照

python - Windows での PyMC インストール エラー

Windowsにpymcをインストールするのに非常に苦労しています。そうです

しかし、それはエラーを与えます

ただし、MinGW 内に gFortran コンパイラをインストールしました。環境変数などを変更する必要がありますか?

ありがとう、

0 投票する
0 に答える
119 参照

python - pymc.NormApprox の予期しない動作 - mu と C が表示されず、名前空間が nuking される

私はpymcを初めて使用し、楽しんでいますが、非常に奇妙な動作に遭遇しました。動いているものを追跡するために使用したい。チュートリアルに従って、いくつかの確率論を設定し、それを使用しようとしpymc.NormApprox()ました。fit()実行されているようですが、出力を取得しようとすると、KeyError. 使用に切り替えると、pymc.MCMC`sample() OK が実行されますが、名前空間が破棄されます (Python は exit() の方法さえ忘れてしまいます)。

システム: Ubuntu 12.04、scipy numpy などをインストール、pymc を easy_install 経由でインストール。gitからも試しました。

再現するコード: test.py::

次に、python または ipython: を実行しているシェルで:

私が期待するもの: foo.mu[foo.x]後部に近い法線を教えてくれるはずです。キーエラーが発生するべきではなく、侵入する必要もありませんfoo._mu

代わりに私は得る:

また、docstring forfoo.muは言うN.mu(p1,p2)が、オンライン ドキュメントにはN.mu[N.p1,N.p2].

MCMC 後の名前空間のメルトダウンに関しては、exit() の方法さえ忘れています。

また、別のインストール (Enthought Python) を実行している別のマシン (MacBook Pro) でも同じ問題が発生することを確認できます。

0 投票する
2 に答える
563 参照

python - enpkg を使用して Canopy EPD free に pymc をインストールする

enpkg に pymc をインストールしようとしていますが、障害があります。次のステップは何ですか?

これが私のバッシュです:

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

python - PyMC の動的 (ODE ベース) モデル

私は PyMC ( https://github.com/pymc-devs/pymc ) の初心者であり、動的コンポーネントを使用してモデルを構築しようとしています。基本的に、モデルが実行されるたびに常微分方程式 (ODE) の小さなシステムを解いています。呼ばれた。

Google と (非推奨の) PyMC メーリング リストを可能な限り検索し、モデル構造 (pk_model.py) と呼び出し元 (pk_fit.py) を見つけました。

https://gist.github.com/gyromagnetic/6097271

pk_fit を実行すると、最初はうまくいくように見えますが、ODE ソルバーに関連する多くのエラー メッセージがダンプされます。ODE とソルバー (PyMC コードと統合されていない) のスタンドアロン バージョンは正常に動作します。

さまざまな print ステートメントを挿入すると、最初はコードが機能しているように見えますが、ある時点で、不明なパラメーター引数 (kcp、kpc、ke) がスカラーから numpy.ndarrays に変更されます。これは問題の一部のようです。

PyMC の初心者なので、明らかに間違ったことをしていると思います。

これについて何か助けていただければ幸いです。

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

python - 未知のアルファを持つ PyMC パレート + 法線は、非常に小さなノイズでは収束しません

私は単純なモデルを解決するためにpymcを使用しようとしています:

  • パレート分布から引き出されたことがわかっている N=1000 フラックスがあります: フラックス ~ パレート(アルファ, 1)

  • パレートのアルファパラメータを計算しようとしています: alpha ~ Uniform(1, 3)

  • フラックスの測定値がガウス ノイズによって汚染されています。flux_meas ~ Gaussian(flux, tau)

現在、ノイズの量を変更するとどうなるかをシミュレートしようとしています。

問題は、非常に少量の (つまり無視できる) 量のノイズでモデルを実行すると、アルファの平均値が実行ごとに根本​​的に変化し、アルファの真の値とはまったく関係がないように見えることです。しかし、ガウス ノイズを完全に無視して、パレート分布を直接観察しただけだとすると、期待どおりに機能します。

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

動作するコード スニペットはこちら: (より複雑な古いものはこちら)

キービットは次のとおりです。

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

python - MCMCサンプラー出力から最も可能性の高い値を見つける

私は PyMC に比較的慣れていないので、MCMC サンプラーからの出力に関して簡単な質問があります。MCMC サンプラーによって検出された変数の最も可能性の高い値 (事後変数の最大値) を見つけてほしいと思います。これを行う簡単な方法はありますか?おそらく、MCMC サンプラーによって検出された事後変数の最大値は、PyMC の MAP メソッドによって検出された値とは大幅に異なる可能性があります。

PyMC を提供してくれた開発者に感謝します。それは私の仕事に非常に役立ちます。この質問は、PyMC google グループにも投稿されています。

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

pymc - PyMCで3つの法線の混合物をモデル化するには?

PyMC を使用して 2 つの正規分布をデータに適合させる方法について、CrossValidated に関する質問があります。Cam.Davidson.Pilonの答えは、ベルヌーイ分布を使用して、2 つの法線のいずれかにデータを割り当てることでした。

今私の質問は: 3 つの法線でそれを行う方法は?

基本的に、問題はベルヌーイ分布と 1-ベルヌーイを使用できなくなったことです。しかし、それを行う方法は?


編集: CDP の提案により、次のコードを書きました。

次のサンプリング手順によるトレースも良好に見えます。解決しました!

0 投票する
2 に答える
1381 参照

mcmc - PyMC を使用した 3 つの法線のフィッティング: 単純なデータでの不適切な収束

(この質問のものと同様) を使用して、3 つの法線をデータに適合させるための PyMC モデルを作成しました。

データをサンプリングした分布は明らかに重複していますが、3 つの明確なピークがあります (下の画像を参照)。この種のデータに 3 つの法線を当てはめるのは簡単で、MCMC 実行の 99% で (-10, 0, 10) からサンプリングした平均値が得られると期待しています。 3 つの正規分布からのデータ 私が期待する結果の例。これは 10 件中 2 件で発生しました。 ぴったりフィットする MCMC トレース 10 件中 6 件で発生した予期しない結果の例。これは奇妙です。なぜなら、-5 ではデータにピークがないため、サンプリングが行き詰まる可能性のある深刻な極小値 ((-5,-5) から (-6,-4) への移行) を実際に求めることができないからです。フィット感を改善する必要があります)。 不適切な適合を生成する MCMC トレース

ほとんどの場合、(アダプティブ メトロポリス) MCMC サンプリングが停止する理由は何ですか? サンプリング手順を改善するために可能な方法は何ですか?

したがって、実行は収束しますが、実際には適切な範囲を探索しません。


更新: 異なる事前確率を使用して、5/10 で正しい収束 (約 1 番目の画像) を取得し、他の 5/10 で間違った収束 (約 2 番目の画像) を取得します。基本的に、変更された行は以下の行で、AdaptiveMetropolis ステップ メソッドが削除されています。

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

pymc - PyMC エラー: hasattr(): 属性名は文字列でなければなりません

PyMC のモデルで推論を実行する際に問題が発生しています。かなり複雑なモデルで MCMC を実行しようとしていますが、エラーが発生します

これは、このコード ブロックの最後の行にあります (申し訳ありませんが、複雑ですが、どこに問題があるのか​​ 本当にわかりません)。

どんな助けでも本当に感謝しています。PyMC に関する優れたチュートリアルはほとんどありません。私は Cameron Davidson-Pilon の優れた本に従っていますが、これまでのところ、このエラーが発生する理由については何も見つかりません。

再度、感謝します。


Cam.Davidson.Pilon への応答:

このモデルは、少数の集団における麻疹を表しています。重要な要因は、人口の規模がはしかの収容能力よりも小さいことです。したがって、はしかは常に風土病であるのではなく、流行のたびに絶滅します. その後、移民を通じて再導入され、国内で流行が発生した場合は都市間の国レベルの移動を通じて再導入されます。

文脈はアイスランド、1900 年から 1964 年 (ワクチン接種前) です。麻しんは、ポアソン過程を介して、海外 ( Y 変数 ) からラムダ率で輸入されるか、アイスランドの他の都市 ( X ) から若干の遅延 ( d ) で輸入されると仮定します。X は観測され、毎月サンプリングされ、その月に流行があった場合は 1、そうでない場合は 0 になります。

すべての都市 i に対して X_i と Y_i があります。X_i の値は、その特定の都市への移民の関数である流行 p_i の確率でベルヌーイ分布されていると仮定します。これは、重要度が alpha_i であり、他の都市からの移民の関数でもあります。 X_j, j =/= i )、係数 beta_ij、およびはしかの症例がどこから来た可能性があるかを表す不確実性を表すノイズ イプシロンのバックグラウンド レベル。また、不応期デルタを課して、都市の影響を受けやすい個人が生まれ変わることを可能にします。

私が確信していないこと:

  • イプシロンは必要ないか、および/または良いことかもしれません
  • alpha_i + sum_j beta_ij, i =/= j が 1 未満であるという制約を課したいと思います
  • 月次データしかないため、デルタを指数形式で分散させたいのですが、明らかに離散的です。
  • d が DiscreteUniform である必要があることがわかりました
  • X_j を渡して p_i を決定するとき、おそらくハニング ウィンドウで畳み込みを使用するだけで、一時的なジッタを考慮して平滑化することができます。

私はそれが何が起こっているのかをカバーしていると思います。ご不明な点がありましたらお知らせください。繰り返しますが、どんな入力でも大歓迎です。

再度、感謝します、

クエンティン