qbsacd2="functions{
real eta(real Q, real alpha){
real eta;
eta=alpha*Q+((alpha*Q)^2+4)^(1/2);
return eta;
}
vector a1(vector y,real Q, real alpha, vector E){
vector[num_elements(y)]a1;
for(i in 1:num_elements(y)){
a1[i]=1/alpha*((y[i]*(eta(Q,alpha))^2/(4*E[i]))^(1/2)-(4*E[i]/(y[i]*(eta(Q,alpha))^2))^(1/2));
}
return a1;
}
vector log_a2(vector y,real Q, real alpha, vector E){
vector[num_elements(y)]log_a2;
for(i in 1:num_elements(y)){
log_a2[i]=log(1/(2*alpha*y[i])*((y[i]*(eta(Q,alpha))^2/(4*E[i]))^(1/2)-(4*E[i]/(y[i]*(eta(Q,alpha))^2))^(1/2)));
}
return log_a2;
}
real sqcd_lpdf(vector y,real Q,real lambda, real alpha, vector E){
vector[num_elements(y)]lliksqcd;
real prob;
lliksqcd=log(2)+std_normal_lpdf(a1(y,Q,alpha,E))+normal_lcdf(lambda*a1(y,Q,alpha,E)|0,1)+log_a2(y,Q,alpha,E);
prob=sum(lliksqcd);
return(prob);
}
}
data{
int N;
vector<lower=0>[N]y;
real Q;
}
parameters{
real<lower=0>alpha;
real<lower=0>lambda;
real<lower=0,upper=1>omega;
real<lower=0,upper=1>rho;
real<lower=0,upper=1-rho>sigma;
}
transformed parameters{
vector<lower=0>[N]E;
E[1]=1;
for(i in 2:N){
E[i]=exp(omega+rho*log(E[i-1])+(sigma*y[i-1])/E[i-1]);
}
}
model{
alpha~cauchy(0,25)T[0,];
lambda~inv_gamma(0.001,0.001);
omega~normal(0,5)T[0,1];
rho~normal(0,5)T[0,1];
sigma~normal(0,5)T[0,1-rho];
y~sqcd(Q,lambda,alpha,E);
}
"
require(rstan)
N=length(mydata)
N
dacd=list(y=mydata,N=N,Q=1.141535)
Qbsacd=stan(model_code=qbsacd2,data=dacd,iter=5000,chains=2)
When i run this code stan rejecting the initial values, and the error is given below
Chain 1: Log probability evaluates to log(0), i.e. negative infinity.
Chain 1: Stan can't start sampling from this initial value.
Chain 1: Rejecting initial value:
Chain 1: Log probability evaluates to log(0), i.e. negative infinity.
Chain 1: Stan can't start sampling from this initial value.
Chain 1:
Chain 1: Initialization between (-2, 2) failed after 100 attempts.
Chain 1: Try specifying initial values, reducing ranges of constrained values, or reparameterizing the model.
[1] "Error in sampler$call_sampler(args_list[[i]]) : Initialization failed."
[1] "error occurred during calling the sampler; sampling not done"
Does anyone know what is going wrong with my code, please help
[edit: formatted code]