Hierarchical model suddenly gets divergent transitions

I worked on a logistic hierarchical model in january and posted a question about it here on stan discourse, see: Fitting hierarchical logistic regression to large dataset. I fitted a model with 2000 data points and 710 “slopes” without problems and without errors or warnings. Now that I have decided to take up stan modelling again, I run into some issue that weren’t there last time I worked on the model. There is no problems with compiling the model. I have tried to fit the model on a shortened version of the dataset, with 100 data points and 20 “slopes”. This results in the dreaded warning:

Warning messages:
1: There were 52 divergent transitions after warmup. Increasing adapt_delta above 0.8 may help. See
http://mc-stan.org/misc/warnings.html#divergent-transitions-after-warmup 
2: There were 50 transitions after warmup that exceeded the maximum treedepth. Increase max_treedepth above 10. See
http://mc-stan.org/misc/warnings.html#maximum-treedepth-exceeded 
3: There were 4 chains where the estimated Bayesian Fraction of Missing Information was low. See
http://mc-stan.org/misc/warnings.html#bfmi-low 
4: Examine the pairs() plot to diagnose sampling problems
 
5: The largest R-hat is 1.06, indicating chains have not mixed.
Running the chains for more iterations may help. See
http://mc-stan.org/misc/warnings.html#r-hat 
6: Bulk Effective Samples Size (ESS) is too low, indicating posterior means and medians may be unreliable.
Running the chains for more iterations may help. See
http://mc-stan.org/misc/warnings.html#bulk-ess 
7: Tail Effective Samples Size (ESS) is too low, indicating posterior variances and tail quantiles may be unreliable.
Running the chains for more iterations may help. See
http://mc-stan.org/misc/warnings.html#tail-ess 

Increasing adapt_delta to 0.99 or increasing iterations did not help. Besides this, stan also seems off at some points. Stan models takes a really long to time save (simply crtl+s) and the model often complains about missing newline in the end, even though there is a newline at the end of the model. Fitting the model to the entire dataset yields this:

Warning message:
Bulk Effective Samples Size (ESS) is too low, indicating posterior means and medians may be unreliable.
Running the chains for more iterations may help. See
http://mc-stan.org/misc/warnings.html#bulk-ess

My model looks like this.

// h_logreg.stan

data{
  int<lower=1> N; // Rows
  int<lower=1> M; // Columns
  
  int<lower=0, upper=1> y[N]; // Outcome variables
  matrix<lower=0, upper=2>[N, M] x; // Predictor variables
}

parameters{
  // Hyper priors
  real mu;
  real<lower=0> sigma;
  
  // Priors
  real a;
  vector[M] b;
}

model{
  // Hyper-priors
  mu ~ normal(0, 5);
  sigma ~ cauchy(0, 5);
  
  // Priors
  a ~ normal(0, 5);
  b ~ normal(mu, sigma);
  // Likelihood
  //y ~ bernoulli_logit(a + x * b);
  y ~ bernoulli_logit_glm(x, a, b);
}


My rstan code looks like this:

library(BEDMatrix)
library(rstan)
library(scales)
library(shinystan)
library(devtools)
rstan_options(auto_write=TRUE)
options(mc.cores = parallel::detectCores())

y <- read.delim("file.txt", head=FALSE)
y <- y$V1
y <- ifelse(y=="2", 1, 0)
path <- "C:/Users/Documents/Stan/sim1.bed"
m <- BEDMatrix(path, n=2000, p=710)
x <- m[1:100, 1:20]
y <- y[1:100]

logModel <- stan_model("h_logreg.stan")
logFit <- sampling(logModel,
                   list(N = 100, M = 20, y=y, x=x),
                   iter=2000,
                   chains = 4,
                   save_warmup=FALSE)


My computer specifications are:

  • Processor: Intel® Core(MT) i7-10510U CPU @ 1.80 GHz 2.30 GHz
  • Installed RAM: 16,0 GB (15,8 GB usable)
  • System type: 64-bit operating system, x64 based processor

I hope some of you can shed light on this issue, since last january I didn’t have these issues with the same model and the same data.