This is my first time programming in pystan and first-ever multilevel model. I have data of 10 subjects, in 2 conditions, and each subject performs 40 trials each in a given condition. I am trying to instantiate a multilevel model for condition level distribution parameter values as well as each individual parameters across two conditions.
In python I use following data dictionary:
sdata = {'N':len(y), 'J':nSubject,'id':subject,'K':nCond,'cid':cond,'y':y}
But in doing so I am stuck at:
PARSER EXPECTED: <one or more container indexes followed by ‘]’> error on y[i] ~ gamma(alpha[id[i],cid[i]],beta[id[i],cid[i]])
as well as I do not understand what is the correct way to follow!
below is my stan code:
data {
int<lower = 0> N; //number of observations
int<lower = 1> J; //number of subjects
int<lower = 1> K; //number of conditions
vector<lower = 1>[N] id; //subject id vector
vector<lower = 1>[N] cid; //condition id vector
vector[N] y; //response
}
parameters{
vector<lower=0>[K] alpha[J];
vector<lower=0>[K] beta[J];
vector<lower=0>[K] mu; //hyper prior on alpha
vector<lower=0>[K] sigma; //hyper prior on alpha
vector<lower =0.1,upper=100>[K] lower_b; //hyper prior on beta
vector<lower =0.1,upper=100>[K] upper_b; //hyper prior on beta
}
model{
//likelihood
for (i in 1:N){
y[i] ~ gamma(alpha[id[i],cid[i]],beta[id[i],cid[i]]);}
//prior
for (k in 1:K){
alpha[k] ~ normal(mu,sigma);
beta[k] ~ gamma(lower_b,upper_b);
}
//hyperprior
mu ~ normal(7,1);
sigma ~ uniform(.1,100);
lower_b ~ uniform(.1,100);
upper_b ~ uniform(.1,100);
}