問題タブ [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.
mcmc - STANでローカル変数を監視するには?
現在、いくつかの JAGS モデルを STAN に移植しようとしています。「stan::prob::exponential_log(N4stan5agrad3varE): Random variable is nan:0, but must not be nan!」という奇妙なエラーが表示されます。それらをデバッグするには、いくつかのローカルパラメーターの値を知りたいです。
JAGS では、任意の変数のモニターをセットアップできます。STAN はパラメータのみを監視します。ただし、パラメーターに割り当てを行うことはできません (正しく理解していれば)。
では、中間変数を監視するにはどうすればよいでしょうか。
誰かが私が犯したばかげた間違いを見た場合に備えて、モデル コードも貼り付けます。ただし、同じモデルを二重指数関数 (2 つのレート) の CDF として定式化できることを認識していることに注意してください。これは私が計画したものを簡略化したものです。
ここにいくつかのダミーデータがあります:
bayesian - 離散値の合計を含む JAGS モデルのスタン バージョン - 可能ですか?
このモデルを Stan で実行しようとしていました。私はそれの実行中の JAGS バージョン (高度な自己相関パラメーターを返す) を持っており、おそらく問題なく実行される二重指数 (2 つのレート) の CDF として定式化する方法を知っています。しかし、私はこのバージョンを、類似しているがより複雑なモデルの出発点として使用したいと考えています.
今では、このようなモデルは Stan では不可能ではないかと疑っています。おそらく、ブール値の合計を取ることによって離散性が導入されるため、Stan は勾配を計算できない可能性があります。
これが事実かどうか、またはこのモデルで何か間違った方法で何かを行っているかどうか、誰かが知っていますか? モデルコードの下に表示されるエラーを貼り付けます。
よろしくお願いします
ここにいくつかのダミーデータがあります:
エラーは次のとおりです。
そして実行時に:
このモデルの動作する JAGS バージョンを次に示します。
min() と max() に関して: この投稿を参照してください https://stats.stackexchange.com/questions/130978/observed-node-inconsistent-when-binomial-success-rate-exactly-one?noredirect=1 #comment250046_130978 .
python - Python での pymc を使用したメモリ オーバーフロー
Python で MCMC の明らかに単純なコードに従うと、pickle バックエンドを使用しているにもかかわらず、膨大なメモリ使用量 (>15GB) が発生します。これは、pymc で観測変数の配列を使用するたびに発生します。なぜこれが起こっているのかについて何か考えはありますか?
r - R で Coda オブジェクトを保存する方法
R で coda (mcmc.list) オブジェクトを保存する方法がわかりません。他の人から同様の質問がありましたが、回答が特に明確ではないことがわかりました。理想的には、coda オブジェクトを R.data ファイルまたはテキスト ファイル (csv など) として保存し、モデルを再実行することなく再インポートして JAGS チェーンを分析できるようにしたいと考えています (これには約 30 分かかります)。私のコンピューター)。現在、私の coda オブジェクト "coda.samples" は次のようになっています。
ご覧のとおり、これは 1094 個のパラメーターの 3334 個の推定値を含む 3 つのマトリックスのリストです (つまり、長さ 3334 の 3 つのチェーン)。この coda オブジェクトを保存して、毎回モデルを再実行することなく R にコールバックできるようにしたいと考えています。また、独自のチェーンが 3 つあるという事実も維持したいと考えています。
python - PyMCモデルで状態はどこに保持されますか?
次のモデルが与えられた場合、私の質問は、 、、およびS
について何かを知る方法です。別のファイル (つまり、Python モジュール) で指定されたモデルが指定されている例を見たことがありますが、これはある程度理にかなっています。しかし、ここでは明示的にデータを渡していません。これがどのように機能するかを理解しようとしています。alpha
beta
theta
MCMC
S
python - MPI: 1 つのプロセスで他のすべてのプロセスを終了させる方法 - python -> fortran
個別のコアへの並列尤度呼び出しを開始する MPI 対応の python MCMC サンプリング コードがいくつかあります。これは (必然的に - 質問しないでください) 拒否サンプリングであるため、次の反復を開始するために成功する np サンプルの 1 つだけが必要です。
これを、可能性が f2py でラップされた fortran サブルーチンを呼び出す新しい問題に適用しました。この場合、反復ごとに、他の np-1 プロセスは、それらの np-1 の 1 つが既に受け入れられている場合でも、最も遅い (場合によっては非常に遅い) 結果が返されるのを待ちます。
したがって、次の反復を開始できるように、(速度の点で) 勝利していないすべてのプロセスにメッセージを渡して終了させる必要があると思われます。
Python コードは次のようになります。サンプラーは PyMultiNEST です。
ブロードキャストはマスター プロセスを経由する必要がありますか?
ここで注意が必要なのは、F90 コードでキル信号を受信する方法です。おそらく、コードが常にリッスンしている場合(whileループ?)、速度が大幅に低下します-しかし、とにかく次のようなものを使用する必要があります:
そして、メッセージが受信されたら、そのプロセスを強制終了する最善の方法は?
最後に、F コードで次の反復を正常に再起動したり、新しいプロセスを生成したりするために何かをする必要がありますか?
ありがとう!
r - 対数尤度を使用する場合、大都市ヘイスティングスの提案値の受け入れを評価するにはどうすればよいですか?
私は現在、R で Rasch モデル パラメーターを推定するための MCMC 手順を作成しています。これを行うには、ギブス サンプラーでメトロポリス ヘイスティングス アルゴリズムを使用します。
以下のコードでは、アイテム パラメータの提案関数の一部が示されています。
私の質問はif(runif(1)<= exp(d.l.p[i]-d.l.c[i]))
、提案値が受け入れられるべきかどうかを判断するために使用することが正しいかどうかです? 非対数尤度の場合if(runif(1)<= d.l.p[i]/d.l.c[i])
、新しい値の受け入れを決定するために使用できることを知っています。
これはコーディングの問題というよりも概念的な問題であるため、残りのコードは省略しました。ただし、すべてのコードが必要な場合は、喜んで提供します。
事前にTnx!ヨースト
mcmc - ジャグ/バグの一歩先の予測
単純な成長モデルを想像してください。一歩先の予測を取得するにはどうすればよいですか??