Truncated model works on one cmdstan version, not on another

I have a very simple test model with a truncated likelihood statement in it:

  int nbirds;
  vector[nbirds] darrive;
  array[nbirds] int clutch;
  array[nbirds] int success;
parameters {
  real logit_psuccess;
  real log_avgclutch;
  real log_b_date;
model {
  success ~ binomial_logit(clutch, logit_psuccess);
  logit_psuccess ~ normal(1, .2);
  log_avgclutch ~ normal(1, .2);
  log_b_date ~ normal(0, .2);
  vector[nbirds] alpha = log_avgclutch + log_b_date * darrive;
  clutch ~ poisson(exp(alpha)) T[1,];

On my Mac, with cmdstan 2.31.0 , this runs with no trouble.

On my Windows machine, with cmdstan 2.30.1, the compilation fails and I get:

Outcomes in truncated distributions must be univariate.

The versions are different, but is that really the cause of my problem here? And why does the version on windows think that the likelihood for clutch is multivariate ?

Yes, 2.31 relaxed a previous restriction which prevented you from truncating vectorized distributions. See the release notes

1 Like