Thanks guys, I have read the manual already but still I can't grasp the concept for vectors.
let me see if I got it.
data {
int<lower=1> N; // number of regressions
int<lower=1> S; // number of points for regression
int y[N,S]; // observed
int K; // k = 2
matrix[S,K] X; // the model matrix
}
parameters {
vector<lower=0>[N] sigma; // overdispersion
real<lower=0> sigma_mu; // prior overdispersion
real<lower=0> sigma_sd; // prior overdispersion
vector[K] g[N]; // the regression parameters
vector<lower=1>[N] alpha; // prior predicted points
vector<lower=0>[N] beta; // prior predicted points
real<lower=1> alpha_alpha; // Hyper prior predicted points
real<lower=0> alpha_beta; // Hyper prior predicted points
real<lower=1> beta_alpha; // Hyper prior predicted points
real<lower=0> beta_beta; // Hyper prior predicted points
}
transformed parameters {
vector<lower=0>[S] e[N]; //the linear predictor
for(n in 1:N) e[n] = exp(X*g[n]); //using the log link
}
model {
//-----------------------------------------------------//
//--------------REGRESSION--------------------//
//-----------------------------------------------------//
for(n in 1:N) for(s in 1:S) y[n,s] ~ neg_binomial_2( e[n, s], sigma[n]);
sigma ~ normal(sigma_mu, sigma_sd);
//-----------------------------------------------------//
//--------------JACOBIAN-------------------------//
//-----------------------------------------------------//
for(n in 1:N) e[n] ~ gamma(alpha[n], beta[n]);
for(n in 1:N) target += X*g[n];
// //-----------------------------------------------------//
// //-----------------------------------------------------//
alpha ~ gamma(alpha_alpha,alpha_beta);
beta ~ gamma(beta_alpha,beta_beta);
}