Orange Trees: Non-linear growth curve
We repeat the Otrees example, replacing the 3 independent univariate Normal priors for each
φik, k=1,2,3 by a multivariate Normal prior
φi ~ MNV(
μ,
Τ)
model {
for (i in 1:K) {
for (j in 1:n) {
Y[i, j] ~ dnorm(eta[i, j], tauC)
eta[i, j] <- phi[i, 1] / (1 + phi[i, 2] * exp(phi[i, 3] * x[j]))
}
phi[i, 1] <- exp(theta[i, 1])
phi[i, 2] <- exp(theta[i, 2]) - 1
phi[i, 3] <- -exp(theta[i, 3])
theta[i, 1:3] ~ dmnorm(mu[1:3], tau[1:3, 1:3])
}
mu[1:3] ~ dmnorm(mean[1:3], prec[1:3, 1:3])
tau[1:3, 1:3] ~ dwish(R[1:3, 1:3], 3)
sigma2[1:3, 1:3] <- inverse(tau[1:3, 1:3])
for (i in 1 : 3) {sigma[i] <- sqrt(sigma2[i, i]) }
tauC ~ dgamma(1.0E-3, 1.0E-3)
sigmaC <- 1 / sqrt(tauC)
}
Data
list(n = 7, K = 5, x = c(118.00, 484.00, 664.00, 1004.00, 1231.00, 1372.00, 1582.00),
Y = structure(
.Data = c(30.00, 58.00, 87.00, 115.00, 120.00, 142.00, 145.00,
33.00, 69.00, 111.00, 156.00, 172.00, 203.00, 203.00,
30.00, 51.00, 75.00, 108.00, 115.00, 139.00, 140.00,
32.00, 62.00, 112.00, 167.00, 179.00, 209.00, 214.00,
30.00, 49.00, 81.00, 125.00, 142.00, 174.00, 177.00),
.Dim = c(5, 7)),
mean = c(0, 0, 0),
R = structure(.Data = c(0.1, 0, 0,
0, 0.1, 0,
0, 0, 0.1), .Dim = c(3, 3)),
prec = structure(.Data = c(1.0E-6, 0, 0,
0, 1.0E-6, 0,
0, 0, 1.0E-6), .Dim = c(3, 3)))
Inits for chain 1
list(theta = structure(
.Data = c(5, 2, -6,
5, 2, -6,
5, 2, -6,
5, 2, -6,
5, 2, -6),
.Dim = c(5, 3)),
mu = c(5, 2, -6),
tau = structure(.Data = c(0.1, 0, 0,
0, 0.1, 0,
0, 0, 0.1), .Dim = c(3, 3)),
tauC = 20)
Inits for chain 2
list(theta = structure(
.Data = c(3.0, 1.0, -1.0,
3.0, 1.0, -1.0,
3.0, 1.0, -1.0,
3.0, 1.0, -1.0,
3.0, 1.0, -1.0),
.Dim = c(5, 3)),
mu = c(3.0, 1.0, -1.0),
tau = structure(.Data = c(2.0, 0, 0,
0, 2.0, 0,
0, 0, 2.0), .Dim = c(3, 3)),
tauC = 2)
Results ![[otreesmvn1]](otreesmvn1.bmp)