I find the Winbugs code about GMCAR(α1, α2, η0, η1, τ 1, τ 2) model. (Xi Jin (2005) et.al)
but I want to fix this code to GMCAR(α, α, η0, 0, τ 1, τ 2) model.
Can someone help me?
I tried a lot to modify the code, but it doesn’t work. I would like you to modify the code.
`model <- {
for (i in 1:N) {
Y1[i] ~ dnorm(mu1[i], Tau)
Y2[i] ~ dnorm(mu2[i], Tau)
mu1[i] <- phi1[i]
mu2[i] <- phi2[i]
}
for (i in 1:N) {
m[i] <- 1 / num[i] # scaling factor for variance in each county
}
for (i in 1:N) {
mu_phi2[i] <- beta02
for (j in 1:N) {
count[i, j] <- W[i, j] * (phi2[j] - beta02) # mean for phi_2
}
mu_phi1[i] <- beta01 + eta[1] * (phi2[i] - beta02) + eta[2] * sum(count[i, ])
# conditional mean for phi_1 | phi_2
}
#prior
beta01 ~ dnorm(0, 1.0E-6)
beta02 ~ dnorm(0, 1.0E-6)
eta[1] ~ dnorm(0, 0.01)
eta[2] ~ dnorm(0, 0.01)
tau2 ~ dgamma(1, 0.1)
tau1 ~ dgamma(1, 0.1)
alpha ~ dunif(-0.999, 0.999) # avoid improper CAR to maintain identifiability
Tau
sigma2 <- 1 / Tau
sigmasq[1] <- 1 / tau[1]
sigmasq[2] <- 1 / tau[2]
phi2[1:N] ~ car.proper(mu_phi2[1:N], C[], adj[], num[], m[], tau[2], alpha)
phi1[1:N] ~ car.proper(mu_phi1[1:N], C[], adj[], num[], m[], tau[1], alpha)
## set up the weight matrix C
cumsum[1] <- 0
for (i in 2:(N + 1)) {
cumsum[i] <- sum(num[1:(i - 1)])
}
for (kk in 1:sumNumNeigh) {
for (i in 1:N) {
pick[kk, i] <- step(kk - cumsum[i] - epsilon) * step(cumsum[i + 1] - kk) # pick[kk, i] = 1 if cumsum[i] < kk <= cumsum[i+1]; otherwise, pick[kk, i] = 0
}
C[kk] <- 1 / inprod(num[], pick[kk, ]) # weight for each pair of neighbours
}
epsilon <- 0.0001
}
`
New contributor
spatialman is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.