Bayesian Fraction of Missing Information was low

Hi,

I am trying to use blocker example in https://github.com/stan-dev/example-models/tree/master/bugs_examples/vol1/blocker but receive this terrible message. The convergence is not too terrific as well. Any advice?

Thanks for help.
CTbinomial1.stan (535 Bytes)

image

The R code is:
n.draws <- 1000
warmup <- 6000
n.chains <- 4
init <- list()
for (i in 1:n.chains)
init[[i]] <- list(d = 0, delta = rep(0, N), sigmasq_delta = 1,
mu = rep(0, N))
fit <- stan(file = stan.model.file, data = model,
warmup = warmup, iter = n.draws + warmup,
chains = n.chains,
pars = pars, init = init, open_progress = TRUE,
control = list(adapt_delta = 0.999, stepsize = 0.001,
max_treedepth = 20))

Help us reparameterize those simply translated BUGS models. We’ve been meaning to do it for ages. This particular example, blocker.stan, is very badly coded given what we know now.

  1. Those inverse-gamma priors are terrible. Use something at least weakly informative that is consistent with zero.

  2. The normal priors are bad, but not as harmful as the inverse gamma. Use something weakly informative.

  3. The hierarchical part of the model uses a centered parameterization—the critical change will be to make that non-centered.

Thanks. I will do and let forum know about the results.

1 Like

As a heads-up, we kept going back-and-forth about whether we should try to implement the same bad model as was being used in BUGS, but in the end, we decided we should just apply Stan best practice. That would include putting a prior directly on sigma rather than on sigma_sq, for example.

1 Like

This one did amazingly well on my data.

a. I am not completely sure that priors for mu are good enough since 95% CR spans from -24 to 4.

b. Priors on d and sigma_delta might be too informative as well based on the chart below.

c. I also wonder if it makes sense to estimate nu instead of using nu=4 in delta ~ student_t(4, 0, 1);

image.png

CTbinomial2.stan (445 Bytes)

I’m just pasting this in here:

data {
  int<lower=0> N; 
  int<lower=0> nt[N]; 
  int<lower=0> rt[N]; 
  int<lower=0> nc[N]; 
  int<lower=0> rc[N]; 
} 
parameters {
  real d; 
  real<lower=0> sigma_delta; 
  vector[N] mu;
  vector[N] delta;
} 
model {
  rt ~ binomial_logit(nt, mu + d + sigma_delta * delta);
  rc ~ binomial_logit(nc, mu);
  delta  ~ student_t(4, 0, 1); 
  mu ~ normal(0, 10);
  d ~ normal(0, 10); 
  sigma_delta ~ student_t(4, 0, 1); 
}

Go non-centered parameterization! This is why slight parameteization changes make a huge difference. And just for the record, this isn’t just for Stan—you get the same advantages reparameterizing with Gibbs samplers like BUGS/JAGS.

1 Like