3

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

Error in node Y[107]
Invalid parent values

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

pi[j,1] <- 1 - M[site[j]] * phi[j] * (1 - (1 - q[j])^6)
pi[j,2] <- M[site[j]] * phi[j] * (1 - q[j])^interval[j] * q[j]
pi[j,3] <- 1 - pi[j,1] - pi[j,2]
Y[j] ~ dcat(pi[j,])

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

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

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

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

R> outRJ <- run.jags("tmp_bugs_model.txt", params, win.data, nc, inits,
      nb, ni - nb, thin = 1, summarise=TRUE, plot=FALSE, adapt = adapt, 
      modules = "glm",
      keep.jags.files = TRUE, method = "interruptible", 
      jags = "c:/Program Files/JAGS/JAGS-3.4.0/i386/bin/")

Running the simulation using the simple method... (output will be displayed once the
simulation has termianted)
Welcome to JAGS 3.4.0 on Thu Nov 27 10:33:49 2014
JAGS is free software and comes with ABSOLUTELY NO WARRANTY
Loading module: basemod: ok
Loading module: bugs: ok
. Loading module: glm: ok
. . Reading data file data.txt
. Compiling model graph
   Resolving undeclared variables
   Allocating nodes
   Graph Size: 2451

WARNING: Unused variable(s) in data table:
desetiminutovka

. Reading parameter file inits1.txt
. Reading parameter file inits2.txt
. Reading parameter file inits3.txt
. Initializing model
Error in node Y[107]
Invalid parent values
Deleting model
. Updating 500
-------------------------------------------------| 500
Can't update. No model!

. Can't set monitor. No model!
. Can't set monitor. No model!
. Can't set monitor. No model!
. Can't set monitor. No model!
. Can't set monitor. No model!
. Can't set monitor. No model!
. Updating 500
-------------------------------------------------| 500
Can't update. No model!

. No model
. No model
. No model
. Can't dump CODA output. No model!
. Updating 0
Can't update. No model!
Can't update. No model!
. Deleting model
. 
Error in runjags.readin(directory = startinfo$directory, copy = (keep.jags.files &  : 
  The simulation appears to have crashed - check the model output in failedjags$output for clues
In addition: Warning messages:
1: running command '"TASKLIST"' had status 1 
2: Parallel and interruptible methods aren't available on your machine because testing the TASKLIST system command produced an error; switching to the simple method 
JAGS files were saved to the 'runjagsfiles_3' folder in your current working
directory

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

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

JAGS 3.4.0 を使用しています。

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

4

1 に答える 1

2

残念ながら、モデルから値をダンプする方法はありません。JAGSマニュアルから引用した重要な行は「正しく初期化します」です-これはモデルでは発生しなかったため、ダンプするものはありません。申し訳ありません。@nicola が示唆するように、Y[] の (確率的) 親の賢明な初期値を手動で指定する必要があります。

ところで - 私はあなたのシステムでの TASKLIST の失敗に興味があります. あなたのプラットフォームの詳細を教えてもらえますか?

于 2014-11-28T09:45:34.807 に答える