Trying to replicate the example of hierarchical logistic model in section 1.9 of the user guide : 1.9 Hierarchical logistic regression | Stan User’s Guide (mc-stan.org)
A parse error appeared when I tried to compile the original example code.
data {
int<lower=1> D;
int<lower=0> N;
int<lower=1> L;
array[N] int<lower=0, upper=1> y;
array[N] int<lower=1, upper=L> ll;
array[N] row_vector[D] x;
}
parameters {
array[D] real mu;
array[D] real<lower=0> sigma;
array[L] vector[D] beta;
}
model {
for (d in 1:D) {
mu[d] ~ normal(0, 100);
for (l in 1:L) {
beta[l, d] ~ normal(mu[d], sigma[d]);
}
}
for (n in 1:N) {
y[n] ~ bernoulli(inv_logit(x[n] * beta[ll[n]]));
}
}
SYNTAX ERROR, MESSAGE(S) FROM PARSER:
error in ‘model1de0632d175f_test’ at line 17, column 2
15: int<lower=0> N;
16: int<lower=1> L;
17: array[N] int<lower=0, upper=1> y;
^
18: array[N] int<lower=1, upper=L> ll;
Here is the error message:
PARSER EXPECTED: <one of the following:
a variable declaration, beginning with type,
(int, real, vector, row_vector, matrix, unit_vector,
simplex, ordered, positive_ordered,
corr_matrix, cov_matrix,
cholesky_corr, cholesky_cov
or ‘}’ to close variable declarations>
Error in stanc(filename, allow_undefined = TRUE) :
failed to parse Stan model ‘test’ due to the above error.If your question relates to installation please provide the following information:
- Operating System
- RStan Version
- Output of
writeLines(readLines(file.path(Sys.getenv("HOME"), ".R/Makevars")))
- Output of
devtools::session_info("rstan")
It seems the array declaration was not recognized. Since the model code itself was directly copied from the user guide without any change, the code should be validated. Therefore I suppose there could be something wrong with my rstan setup and configuration. I have tried diagnostics on the start guide, and uninstall and reinstall rstan but made no progress.