問題タブ [runjags]

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 に答える
289 参照

r - runjags プロットのオプションの設定

パッケージを使用してJAGSを実行し、runjagsカスタマイズされたプロットを作成しようとしています-チェーンの色を変更します(完全なモデルコードは質問にあります https://stats.stackexchange.com/q/62006/5509):

しかし、プロット パラメーターを変更することは不可能のようです。?runjagsclass では、 次のように記述します。

plot メソッドは、トレースと密度のプロットを作成します (これらは事前にプロットされて runjags オブジェクト内に保存されるため、ラティスまたはプロット関数の通常のオプションは使用できないことに注意してください)。

これは、プロットがrun.jags呼び出しで既に作成されているようです! しかし、それではプロットオプションも変更できないようです。

質問:

  1. チェーンの色など、プロット パラメータを変更するにはどうすればよいですか?

  2. なぜ彼らはrun.jagsすでにプロットを作成するのですか? 通常、適切に設計されたアプリケーションは、ロジック (モデル計算) と出力を分離します。それには特別な理由がありますか?

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

r - runjags オブジェクトが大きすぎます

R2jags にはバグがあるため、新しいパッケージrunjagsを使用して JAGS を実行しようとしています(完全なモデル コードは質問https://stats.stackexchange.com/q/62006/5509にあります)。

それは魅力として機能しますが、このパッケージの欠点はrunjags、関数によって返されるオブジェクトがrun.jags、準備されたチャートと出力に既にバンドルされており、大きすぎることです。比較のために、対応する .Rdata ファイルのサイズ (2 つのチェーン、それぞれ 500 回の保存された反復、合計 1000 回の反復):

  • runjagsオブジェクト - 1.2 MB
  • R2jagsオブジェクト - 212 kB
  • mcmc.listオブジェクト - 33 kB

オブジェクトは巨大ですが、後でモデルのインターフェイスrunjagsを使用できるように保存する必要があります。runjags

この問題の回避策はありますか?

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

r - Runjags - JAGS に適応フェーズを決定させる方法は?

Runjagsパッケージrun.jagsの機能を使用しています。問題は、それを必要としないモデルに対しても適応フェーズを強制することです。JAGS 自体に、適応フェーズの必要性とデフォルトの長さを決定させたいと考えています (適応フェーズが必要なモデルもあれば、そうでないモデルもあります)。ただし、ラッパーは、明らかにそれを必要としないモデルに対しても、適応フェーズのデフォルトの 1000 回の反復を強制します。run.jagsrun.jags

この問題を説明する再現可能な例:

ここで、出力 R2jags::jags を見ると、このモデルは実際には適応を必要とadaptせず、 への呼び出しは何もしません。おそらく JAGS に決定させるためです (詳細はこちら)。一方run.jags、このモデルの (不必要な) 適応を強制するため、実行に時間がかかります。適応のために 1000 回、次にバーンインのために 1000 回、サンプルのために 1000 回の反復を行います。

JAGS を介して実行するときに、適応フェーズについて JAGS に決定させるにはどうすればよいrun.jagsですか?


余談ですが、適応段階とバーンイン段階を混同しないでください。JAGS では別の段階です。適応フェーズは実際には MCMC のようには機能せず、一部のモデルでは必要ありません (これが、このバグが時々しか発生しない理由です)。

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

r - 要約/プロットの追加/削除には、runjags オブジェクトの再コンパイルが必要です

すべてのプロットを含む runjags オブジェクトが大きすぎるため、 を使用して、結果のオブジェクトをファイルに保存し、新しい R セッションで (as として) 復元してから、プロットを生成しようとしrun.jagsましたplot=FALSErunjagsout

(このトリックについては、こちらのディスカッションを参照してください: https://stackoverflow.com/a/21859618/684229 )

ただし、理由は不明ですが、これはモデルを再コンパイルして再度適応させます! を設定してもsample = 0, adapt = 0

グラフをプロットするだけでもかなり時間がかかり、かなり面倒です。プロットを使用して runjags オブジェクトを計算し、それらを削除して runjags オブジェクトを小さく保存しようとすると、同じことが起こります

この問題を修正する方法に関するヒントはありますか (独自のプロット関数を作成することは別として)?

警告:extend.jags同じ runjags オブジェクトで関数を2 回実行すると、すでに高速です。しかし、runjags オブジェクトを保存して新しいセッションで再度ロードすると、再びextend.jags遅くなります。または JAGS が何かをキャッシュしているようrunjagsです (ただし、元の runjags オブジェクト内ではありません)。

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

r - runjags サマリーの psrf 値が低すぎませんか?

Runjags はpsrf = 1.0047、明らかに収束の問題があるチェーンに対して非常に低いと報告しています。

ここに画像の説明を入力

using codaを計算しようとすると、psrfより合理的に見える結果が得られます。

psrfでは、runjags による報告がこれほど低いのはなぜでしょうか。それはrunjagsの問題ですか、それとも何か間違っていますか?

R 3.1.0 で現在のバージョンの runjags (1.2.1-0) を使用しています。

編集:要約の作成中に警告が表示されました-前に言及しなかったことをお詫びします:

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

r - デバッグ目的で JAGS ノード値をダンプする方法はありますか?

JAGS から次のエラーが発生しました。

この単なる情報から、そこで何が起こっているかを知ることは非常に困難です。コードの次の部分が原因です。

Y[107]ノードの親の値、つまりノードを出力すると非常に便利でしたpi[107,]。これにより、エラーを探す場所が非常に明確なフィードバックが得られます。JAGSにそのような方法はありますか?

JAGS マニュアルの第 3.2 章で、JAGS はいくつかの有用なjags.dumpN.Rファイルを残すことについて話しています。

モデルが正しくコンパイルおよび初期化されても、更新中にエラーが発生した場合、モデルの現在の状態が jags.dumpN.R という名前のファイルにダンプされます。ここで、N はチェーン番号です。次に、ダンプされたデータを R にロードして、エラーが発生したときの各チェーンの状態を調べる必要があります。

ただし、これが私のケースに当てはまるかどうかはわかりません。そこで、ダンプファイルを取得しようとしました。私はrunjags::run.jags()JAGSを実行するために使用しているので、デバッグモードで実行しようとしました:

runjagsfiles_3残念ながら、ディレクトリには有用な情報を含むダンプやファイルはありません 。

これらの「無効な親の値」をJAGSから取得する方法はありますか?

JAGS 3.4.0 を使用しています。

PS: 意図的に完全なモデル コードをここに提出しません。私の質問は JAGS に関する一般的なものであり、私のモデルが機能しない理由ではありません。

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

r - R で Coda オブジェクトを保存する方法

R で coda (mcmc.list) オブジェクトを保存する方法がわかりません。他の人から同様の質問がありましたが、回答が特に明確ではないことがわかりました。理想的には、coda オブジェクトを R.data ファイルまたはテキスト ファイル (csv など) として保存し、モデルを再実行することなく再インポートして JAGS チェーンを分析できるようにしたいと考えています (これには約 30 分かかります)。私のコンピューター)。現在、私の coda オブジェクト "coda.samples" は次のようになっています。

ご覧のとおり、これは 1094 個のパラメーターの 3334 個の推定値を含む 3 つのマトリックスのリストです (つまり、長さ 3334 の 3 つのチェーン)。この coda オブジェクトを保存して、毎回モデルを再実行することなく R にコールバックできるようにしたいと考えています。また、独自のチェーンが 3 つあるという事実も維持したいと考えています。

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

r - 初期値で失敗した後に自動的に再起動するようJAGSに指示できますか?

私のモデルは次のエラーで失敗しました:

いくつかの診断を行ったところ、チェーン 3 の初期値に問題があることがわかりました。ただし、これは時々発生する可能性があります。run.jagsこのような場合、モデルを再試行して再実行するよう JAGS 自体に指示する方法はありますか? たとえば、モデルを適切に初期化するために、別の N 回の試行を行うように彼に指示します。それはただ失敗するのではなく、非常に論理的なことです。それとも、何らかの方法で手動で行う必要がありtryCatchますか?

run.jagsPS: 現在、R から JAGS を実行するために使用していることに注意してください。