Hi, I am working on a project, and I wanted to see if I could recover the parameters of a simulated data. I would like to recover pref and chi from the simulated data below. However, I get completely unreasonable estimates, and I get many warnings about max tree depth being too low and that the adapt_delta parameter should be higher. I increased the max tree depth and the adapt_delta control parameters, but nothing seemed to work. I would really appreciate any suggestions! (Oddly, this same model does give me very accurate parameter estimates in jags).
#stan - precip model
#precip model #NO LOG TRANSFORM
zref = 150
#chi = 0.000250
chi = 0.000250
#station elevation
zsta=rlnorm(1000, meanlog = 6, sd=.5)
x = zsta - zref
#reference value for precipitation
pref = 2
err = rnorm(1000, 0, .01)
y = pref*((1+chi*(x)) / (1 - chi*(x))) + err
N = length(y)
hist(y)
precipdata = as.data.frame(cbind(y,x))
#stan model
"
data {
int <lower=1> N;
vector [N] y;
vector [N] x;
}
parameters {
real <lower=0> sigma;
real chi;
real <lower=0> pref;
}
model {
vector [N] denom;
for (i in 1:N) denom[i] = 1 / (1 - chix[i]);
y ~ normal(pref * (1 + chix) .* denom, sigma);
sigma ~ normal(0, 10);
chi ~ normal(0, .0001);
pref ~ uniform(0, 10);
}
"
fileName <- “stanprecip.txt”
stan_code2 <- readChar(fileName, file.info(fileName)$size)
cat(stan_code2)stanprecip.txt (391 Bytes)
data for Stan
precipList <- list(N = N, y = precipdata$y, x = precipdata$x)
sample from posterior
precipstan <- stan(model_code = stan_code2, data = precipList,
chains = 3, iter = 30000, warmup = 500, thin = 10)