**[edit: escaped and indented code]
Hello there, I am fresh to research and totally new to Bayes and hence stand scripts. I have been working in a group but currently, the support team is out and alone here trying to figure out something. I have a stan script that is giving somewhat a similar challenge like this but I am lost in the details provided.
here is my script, any help will be appreciated.
data {
int<lower=1> Nobs; // number of observations
int<lower=1> N1; // number of students
int<lower=1> N2; // number of course units
int<lower=1> J; // number of fixed effects
int y[Nobs]; // resits
matrix[Nobs,J] X; //the model matrix
int male[Nobs]; // sex of student
int bbs[Nobs]; // BBS student
int bps[Nobs]; // BPS student
int bqe[Nobs]; // BQE student
int sas[Nobs]; // SAS student
int<lower=1, upper=N1> id[Nobs]; // student
int<lower=1, upper=N2> course[Nobs]; // course unit
}
parameters {
vector[J] delta;
vector<lower=0>[J] tau;
vector<lower=0, upper=1>[N2] gamma; // geometric paratemeter
vector[N2] theta1; // scale parameter
real<lower=0> sigma1; // scale parameter
real<lower=0> sigma2;
vector[J] beta[N2]; // fixed effects parameters
real b[N1]; // student random effects
}
transformed parameters {
vector<lower=0>[N2] mu ; // scale parameter
vector<lower=0>[N2] theta ; // scale parameter
vector<lower=0>[Nobs] mu1[N2];
vector<lower=0>[N2] betamu; // mean parameter
vector<lower=0>[N2] betasigm; // variance parameter
for (k in 1:N2){
for (i in 1:Nobs){
mu1[k,i] = inv_logit(X[i]*beta[course[i]] + b[id[i]]);
}
}
for (n in 1:N2){
mu[n] = mean(mu1[n]);
theta[n] = exp(theta1[n]);
betamu[n] =(1-theta[n])/(mu[n]-theta[n]);
betasigm[n] = (mu[n]*(1-mu[n])*(1-theta[n]))/pow((mu[n] -theta[n]),2)*(mu[n] -(2*theta[n]));
}
}
model {
target += lognormal_lpdf(theta1 | 0, 1); // hyperprior half-normal log-density
target += cauchy_lpdf(sigma1 |0.0, 2.5); // hyperprior log-density
target += cauchy_lpdf(sigma2 |0.0, 2.5); // hyperprior log-density
target += normal_lpdf(beta |0,1); // hyperprior log-density
target += normal_lpdf(b |0.0, sigma1); // hyperprior log-density
target += normal_lpdf(g |0.0, sigma2); // hyperprior log-density
target += beta_lpdf(gamma | mu/theta, (1 - mu)/theta); // prior log-density
target += neg_binomial_lpmf(x | 1, gamma/(1-gamma)); // log-likelihood
}
generated quantities {
int y_rep[Nobs];
vector[Nobs] log_lik;
for (i in 1:Nobs) {
y_rep[i] = neg_binomial_rng(1, gamma[course[i]]/(1-gamma[course[i]]));
log_lik[i] = neg_binomial_lpmf(y[i] |1, gamma[course[i]]/(1-gamma[course[i]]));
}
}
when I run that in r, I get the following error message
SYNTAX ERROR, MESSAGE(S) FROM PARSER:
No matches for:
normal_lpdf(vector[ ], int, int)
Available argument signatures for normal_lpdf:
normal_lpdf(real, real, real)
normal_lpdf(real, real, real[ ])
normal_lpdf(real, real, vector)
normal_lpdf(real, real, row_vector)
normal_lpdf(real, real[ ], real)
normal_lpdf(real, real[ ], real[ ])
normal_lpdf(real, real[ ], vector)
normal_lpdf(real, real[ ], row_vector)
normal_lpdf(real, vector, real)
normal_lpdf(real, vector, real[ ])
normal_lpdf(real, vector, vector)
normal_lpdf(real, vector, row_vector)
normal_lpdf(real, row_vector, real)
normal_lpdf(real, row_vector, real[ ])
normal_lpdf(real, row_vector, vector)
normal_lpdf(real, row_vector, row_vector)
normal_lpdf(real[ ], real, real)
normal_lpdf(real[ ], real, real[ ])
normal_lpdf(real[ ], real, vector)
normal_lpdf(real[ ], real, row_vector)
normal_lpdf(real[ ], real[ ], real)
normal_lpdf(real[ ], real[ ], real[ ])
normal_lpdf(real[ ], real[ ], vector)
normal_lpdf(real[ ], real[ ], row_vector)
normal_lpdf(real[ ], vector, real)
normal_lpdf(real[ ], vector, real[ ])
normal_lpdf(real[ ], vector, vector)
normal_lpdf(real[ ], vector, row_vector)
normal_lpdf(real[ ], row_vector, real)
normal_lpdf(real[ ], row_vector, real[ ])
normal_lpdf(real[ ], row_vector, vector)
normal_lpdf(real[ ], row_vector, row_vector)
normal_lpdf(vector, real, real)
normal_lpdf(vector, real, real[ ])
normal_lpdf(vector, real, vector)
normal_lpdf(vector, real, row_vector)
normal_lpdf(vector, real[ ], real)
normal_lpdf(vector, real[ ], real[ ])
normal_lpdf(vector, real[ ], vector)
normal_lpdf(vector, real[ ], row_vector)
normal_lpdf(vector, vector, real)
normal_lpdf(vector, vector, real[ ])
normal_lpdf(vector, vector, vector)
normal_lpdf(vector, vector, row_vector)
normal_lpdf(vector, row_vector, real)
normal_lpdf(vector, row_vector, real[ ])
normal_lpdf(vector, row_vector, vector)
normal_lpdf(vector, row_vector, row_vector)
normal_lpdf(row_vector, real, real)
normal_lpdf(row_vector, real, real[ ])
normal_lpdf(row_vector, real, vector)
normal_lpdf(row_vector, real, row_vector)
normal_lpdf(row_vector, real[ ], real)
normal_lpdf(row_vector, real[ ], real[ ])
normal_lpdf(row_vector, real[ ], vector)
normal_lpdf(row_vector, real[ ], row_vector)
normal_lpdf(row_vector, vector, real)
normal_lpdf(row_vector, vector, real[ ])
normal_lpdf(row_vector, vector, vector)
normal_lpdf(row_vector, vector, row_vector)
normal_lpdf(row_vector, row_vector, real)
normal_lpdf(row_vector, row_vector, real[ ])
normal_lpdf(row_vector, row_vector, vector)
normal_lpdf(row_vector, row_vector, row_vector)
error in 'model5c9714bd0cb_Modified_courseunits_model_12_08_2022' at line 57, column 39
-------------------------------------------------
55: target += cauchy_lpdf(sigma1 |0.0, 2.5); // hyperprior log-density
56: target += cauchy_lpdf(sigma2 |0.0, 2.5); // hyperprior log-density
57: target += normal_lpdf(beta |0,1); // hyperprior log-density
^
58: target += normal_lpdf(b |0.0, sigma1); // hyperprior log-density
-------------------------------------------------
Error in stanc(file = file, model_code = model_code, model_name = model_name, :
failed to parse Stan model 'Modified_courseunits-model-12-08-2022' due to the above error.
how do i solve this