#================================================================================== model { # ここは無情報事前分布のためのパラメーターを定義しています Tau.noninformative <- 1.0E-3 # これは平均ゼロのひらべったい事前分布 Hyper.gamma <- 1.0E-2 # これは分散パラメーターのための無情報な事前分布 # observations: ムシの密度を平均とするポアソン分布の尤度を評価しています for (i in 1:N.sample) { Shieldbug[i] ~ dpois(shieldbug[i]) Spider[i] ~ dpois(spider[i]) Weed[i] ~ dpois(weed[i]) #Logit.grass[i] ~ dnorm(logit.grass[i], tau[4]) } # Grass データをいれると収束が悪くなるので使うのをやめました # そのかわりブロック差は gamma[*, Block[i]] に押しつけています # process variables for (i in 1:N.sample) { # 1. shieldbug : カメムシの密度 log(shieldbug[i]) <- log.shieldbug[i] log.shieldbug[i] ~ dnorm(mu.log.shieldbug[i], tau[1]) # 水田の効果 mu.log.shieldbug[i] <- ( # 線形予測子,ただし水田差は上の行でいれてます beta[1] + beta[2] * spider[i] + beta[3] * weed[i] # + beta[*] * logit.grass[i] # grass は使わないことにしました + gamma[1, Block[i]] # ブロックの効果 ) # 2. spider : クモの密度 log(spider[i]) <- log.spider[i] log.spider[i] ~ dnorm(mu.log.spider[i], tau[2]) # 水田の効果 mu.log.spider[i] <- ( # 線形予測子,ここでも水田差は上の行で beta[4] + beta[5] * weed[i] + gamma[2, Block[i]] # ブロックの効果 ) # 3. weed : 雑草の密度 log(weed[i]) <- log.weed[i] log.weed[i] ~ dnorm(mu.log.weed, tau[3]) # mu.log.weed は下で定義してます # 4. grass #logit.grass[i] ~ dnorm(0.0, Tau.noninformative) } # parameters and hyper-parameters mu.log.weed ~ dnorm(0.0, Tau.noninformative) # 調査地全体の平均雑草密度 # coefficients (beta) for (k in 1:N.beta) { beta[k] ~ dnorm(0.0, Tau.noninformative) # 係数は無情報事前分布から発生させる } # random effects of blocks (j) for (k in 1:N.gamma) { for (j in 1:N.block) { gamma[k, j] ~ dnorm(0.0, tau.gamma[k]) # ブロック差の効果 } tau.gamma[k] ~ dgamma(Hyper.gamma, Hyper.gamma) # ブロック差のばらつき } # variance of the effects of i for (k in 1:N.tau) { tau[k] ~ dgamma(Hyper.gamma, Hyper.gamma) # 水田差のばらつき } } #==================================================================================