I am trying to do a simple AR(1) model, however, I keep getting an error that reads:
SYNTAX ERROR, MESSAGE(S) FROM PARSER:
Dimension mismatch in assignment; variable name = y_rep, type = real; right-hand side type = real[ ].
Illegal statement beginning with non-void expression parsed as
y_rep[n]
Not a legal assignment, sampling, or function statement. Note that
- Assignment statements only allow variables (with optional indexes) on the left;
- Sampling statements allow arbitrary value-denoting expressions on the left.
- Functions used as statements must be declared to have void returns
I have posted the code below.
AR1<-"
data {
int<lower=0> N;
int<lower=0> k;
vector[N] g;
matrix[N,k] x;
}
parameters {
real alpha;
real beta;
real <lower=0> sigma;
}
model {
for (n in 2: N)
g ~ normal (alpha + x[n-1]*beta, sigma);
}
generated quantities {
int<lower=0, upper=1> mean_gt;
int<lower=0, upper=1> sd_gt;
int<lower=0, upper=1> max_gt;
vector[N] log_lik;
vector[N] y_rep;
for (n in 2:N){
log_lik[n]= normal_lpdf(g | alpha + x[n-1]*beta,sigma);
}
for (n in 2:N) {
y_rep[n]= normal_rng(alpha + x[n-1]*beta, sigma) ;
mean_gt= mean(y_rep) > mean(g); // p-value for mean
sd_gt = sd(y_rep) > sd(g); // p-value for sd
max_gt = max(y_rep) > max(g); // p-value for max
}
}
"
g<- log(data$sale/data$xbar)
N=nrow(data)
x=model.matrix(~g)
N=nrow(data)
k=ncol(x)
dat <- list(N=nrow(data),k=k, g=g, x=x)
****