問題タブ [mcmc]
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.
r - RでOpenBUGS Codaファイルをmcmcオブジェクトに変換するにはどうすればよいですか?
私は OpenBUGS を使用し、MCMC 出力の coda ファイルを作成しました。Gelman Rubin と Geweke の診断を計算してプロットするには、この coda.odc ファイルを R の mcmc オブジェクトに変換する必要がありますか? これを行う方法はありますか?または、この分析を行うための他の方法をお勧めしますか?
ありがとう
python - PyMC で一般的な決定論的関数を定義する方法
私のモデルでは、複雑な Python 関数を使用して一連の親変数から決定論的変数の値を取得する必要があります。
それは可能ですか?
以下は、単純化されたケースで何をしようとしているのかを示す pyMC3 コードです。
このコードを実行すると、y_hat の段階でエラーが発生します。これは、int()
関数内のFindFromGrid(x,w,z)
関数が FreeRV ではなく整数を必要とするためです。
y_haty_hat
の実際のモデルには表現する分析形式がないため、事前に計算されたグリッドからの検索は重要です。
以前に OpenBUGS を使用しようとしましたが、ここで OpenBUGS でこれを行うことができないことがわかりました。PyMC で可能ですか?
アップデート
pyMC github ページの例に基づいて、関数に次のデコレータを追加する必要があることがわかりましたFindFromGrid(x,w,z)
。
これにより、上記の問題が解決されるようです。しかし、グラデーションが必要なため、NUTSサンプラーを使用できなくなりました。
メトロポリスは収束していないようです。
このようなシナリオでは、どのステップ メソッドを使用すればよいですか?
python - PyMC で @pm.stochastic を使用するにはどうすればよいですか?
かなり単純な質問: どのように使用すればよい@pm.stochastic
ですか? @pm.stochastic
負の対数値が期待されると主張するいくつかのブログ投稿を読みました。
最近これを試しましたが、本当に悪い結果が見つかりました。一部の人々が -np.log の代わりに np.log を使用していることにも気付いたので、試してみると、はるかにうまく機能しました。本当に期待していることは何@pm.stochastic
ですか?np.log(1/(1+t_1-t_0))
次のように書かれたようなものを使用した非常に人気のある例のために、必要な記号に小さな混乱があったと思います-np.log(1+t_1-t_0)
別の質問: このデコレータはvalue
引数に対して何をしているのでしょうか? 私が理解しているように、尤度に入力する必要がある事前確率の提案された値から始めます。@pm.stochastic
基本的には、この尤度をサンプリングプロセスの前の反復によって生成された数値と比較するための数値を生成するという考え方です。尤度は引数と事前確率のいくつかの値を受け取る必要がありますが、これが唯一の必要な引数であるため、value
これですべてが機能しているかどうかはわかりませんが、次のように書くことができます。value
そして、私が知る限り、それは以前と同じ結果を生み出します。たぶん、observed=True
デコレータに追加したので、このように機能します。observed=False
デフォルトで確率変数でこれを試した場合value
、より良い可能性を取得しようとする各反復で変更されます。
python - numpy ベクトル化の使用
データ拡張を使用してベイジアン プロビット コードを実行しようとしています。出力行列の行をループすれば動作させることができますが、それをベクトル化し、すべてを 1 回で実行したいと考えています (おそらくその方が高速です)。
ループをコメント アウトし、コメント アウトされた行を使用すると、前に示した行 (sigma を定義する行) で次のエラーが発生します。
python - PyMC での順次更新
私はPyMCを独学していますが、次の問題に行き詰まりました:
連続測定からパラメーターを決定する必要があるモデルがあります。最初は、パラメータの事前確率は有益ではありませんが、各測定後に更新する必要があります (つまり、事後確率に置き換えます)。要するに、PyMC で順次更新を行いたいということです。
次の (多少構成された) 例を考えてみましょう。
- 測定 1: 10 問、9 問正解
- 測定 2: 5 問、3 問正解
もちろん、これはベータ/二項共役事前確率で分析的に解決できますが、これはここでのポイントではありません:)
あるいは、両方の測定値を組み合わせて n=15 と k=12 にすることもできます。ただし、これは単純すぎます。私は教育目的のために困難な道を歩みたい.
この回答で解決策を見つけました。ここでは、新しい事前確率が事後からサンプリングされます。これはほとんど私が望んでいるものですが、結果はサンプル数やその他の設定に依存するため、事前のサンプリングは少し面倒です。
私が試みた解決策は、次のように、測定と事前分布の両方を 1 つのモデルに別々に配置します。
theta1
の事前としての事後を取得するにはどうすればよいtheta2
ですか? これは可能ですか、それとも私はベイジアン統計について究極の無知を示しただけですか?
python - MCMCアプローチを使用した頭の確率の推定
ベイジアン パラメーター推定について学習しようとしていますが、ここで非常に優れたチュートリアルを見つけました(チュートリアル 1 & 2)。私の理解をテストするために、特定のデータセットに基づいてヘッドを取得する確率を推定するための MCMC アプローチを実装しようとしています。入力データセットには、8 つの表と 2 つの裏があります。事前確率が Beta(2,2) に従うと仮定すると、分析的に頭が上がる確率 = (8+2)/(10+2+2) = 0.71 です。ただし、大都市ヘイスティングス アルゴリズムを使用しようとすると、非常に異なる答えが得られます。誰かがここで私の実装をチェックアウトして、私が欠けているものを説明できますか
http://nbviewer.ipython.org/github/ragrawal/meetup/blob/master/notebook/MCMC.ipynb
bayesian - pymc を使用してベイジアン モデルでパネル データ分析を行う方法
みんな。pymc を使用してベイジアン モデルでパネル データ分析を行う方法について質問があります。データは次のようになります。
現在、T 倍のサンプル (N≫T)、独立変数 (x1、x2、x3) および従属変数 (Y) に N ユーザーがいます。
ここで、集団レベルで X が Y に与える影響を分析したいと思います。例として最も単純な線形回帰を取り上げます。「ベイジアン計量経済学入門」(PP.145) の本に従ってください。一般的なモデルは次のように記述されることがよくあります。
$$ y_{it} = x_{it}{\beta}+ w_{it}{b_i}+ {u_{it}}, i = 1,...,n;\;\;t = 1,. ..、T $$
$i$ はユーザーを示します。$t$ は時刻を表します。${\beta}$ は固定効果と呼ばれる $i$ 間で違いはありません。${b_i}$ は、ランダム効果と呼ばれる $i$ 間で異なります。
ベイズの意見では、${\beta}$ と ${b_i}$ の両方が確率変数と見なされます。${\beta} $~$ N({\beta}_0,{\beta}_1)$ と ${b_i} $~$ N({\lambda_0},{\lambda_1})$
ただし、これは理論上の一般的な考え方ですが、モデル化してpymcに適合させる方法についてはまったくわかりません。
インスピレーションやサンプルコードを教えてくれてありがとう。