########################################################################
# Regression example
########################################################################
model
{
for(i
in 1:n)
{
logtime[i]
<- log(time[i])
logtime[i]
~ dnorm(mu[i], inv.sigma2)
mu[i]
<- b[1] + b[2]*nesting[i] + b[3]*size[i] + b[4]*status[i]
}
b[1]
~ dnorm(0, 0.000001)
b[2]
~ dnorm(0, 0.000001)
b[3]
~ dnorm(0, 0.000001)
b[4]
~ dnorm(0, 0.000001)
inv.sigma2
~ dgamma(0.0001, 0.0001) #
approximates the improper prior
sigma2
<- 1/inv.sigma2
sigma <- sqrt(sigma2)
#
prediction of means (mu_p) and new obs (y_p).
for(i
in 1:4)
{
mu_p[i]
<-b[1]+b[2]*nesting_p[i]+b[3]*size_p[i]+b[4]*status_p[i]
y_p[i] ~ dnorm(mu_p[i], inv.sigma2)
}
#
prediction of new obs (ystar) using observed x.
for(i
in 1:n)
{
ystar[i] ~ dnorm(mu[i], inv.sigma2)
pright[i]
<- step(ystar[i] - logtime[i])
pleft[i] <- step(logtime[i] - ystar[i])
}
}
# Data 1
list(n = 62)
# Data 2
time[] nesting[] size[] status[]
3.030 1.000 0 1
5.464 2.000 0 1
4.098 1.210 0 1
1.681 1.125 0 1
8.850 5.167 0 1
1.493 1.000 0 0
7.692 2.750 0 1
3.846 5.630 0 1
16.667 3.000 0 1
4.219 4.670 0 0
8.130 4.056 0 1
5.000 1.000 0 1
7.299 6.960 0 0
1.000 1.670 0 0
27.027 5.560 0 1
3.106 2.830 0 0
4.000 4.375 0 0
16.129 4.125 0 0
3.484 3.670 0 1
37.037 8.330 0 1
7.299 2.750 0 1
2.525 1.430 0 0
4.132 2.000 0 1
2.000 2.750 0 1
10.000 4.500 0 1
2.667 7.120 0 1
4.587 4.580 0 1
58.824 2.350 0 1
32.258 6.870 1 1
2.571 3.830 1 0
2.160 5.000 1 0
1.000 1.250 1 0
2.967 2.270 1 1
9.524 5.350 1 1
11.111 8.700 1 1
7.299 6.100 1 1
4.000 3.330 1 1
2.381 3.640 1 1
2.611 4.830 1 0
3.257 4.670 1 1
1.701 1.700 1 1
1.795 1.330 1 1
1.198 1.000 1 0
3.185 1.900 1 0
2.273 4.420 1 0
1.111 1.250 1 0
1.000 1.000 1 0
1.000 1.000 1 1
1.230 1.000 1 0
6.061 2.500 1 1
3.175 1.500 1 1
2.000 2.500 1 1
5.076 5.630 1 1
1.934 2.370 1 1
1.493 1.500 1 1
1.000 1.000 1 1
5.102 6.500 1 1
3.003 4.500 1 1
1.898 2.170 1 1
41.667 11.620 1 1
1.000 1.000 1 0
1.000 1.000 1 1
END
# Data 3
nesting_p[] size_p[] status_p[]
4 0 0
4 1 0
4 0 1
4 1 1
END
# Initial values. Initialize other values using
"gen inits".
list( b=c(0, 0, 0, 0), inv.sigma2 = 1, y_p=c( 0, 0, 0, 0))