When i run the attached code i am getting an error "Stan model 'negbin-glm' does not contain samples", please help clarifying why I am getting that error and how i can debug it.
Thanks.
# data processing
getwd()
setwd("C:/Users/n01066737/Desktop/Angela")
getwd()
crashdata<-read.csv(file.choose(), header = T)
crashdata
summary(crashdata)
names(crashdata)
str(crashdata)
### converting factor variables to as.factors
crashdata$time_indicator<-as.factor(crashdata$time_indicator)
crashdata$treatment<-as.factor(crashdata$treatment)
crashdata$median_type<-as.factor(crashdata$median_type)
crashdata$landuse<-as.factor(crashdata$landuse)
crashdata$speed<-as.factor(crashdata$speed)
### checking the structure after converting the factor variables
str(crashdata)
### loading the rstan package
library(rstan)
### creating dummy variables for factor variables
cat_time<-model.matrix(~crashdata$time_indicator, data=crashdata)
cat_treatment<-model.matrix(~crashdata$treatment, data=crashdata)
cat_median_type<-model.matrix(~crashdata$median_type, data=crashdata)
cat_landuse<-model.matrix(~crashdata$landuse, data=crashdata)
cat_speed<-model.matrix(~crashdata$speed, data=crashdata)
### specifying the poisson-gamma mixture model
negbin<-"
data{
int<lower=0> N; # rows of data
vector[N] cat_time; # predictor variable
vector[N] cat_treatment; # predictor variable
vector[N] cat_median_type; # predictor variable
vector[N] cat_landuse; # predictor variable
vector[N] cat_speed; # predictor variable
vector[N] ln_maj_aadt; # predictor variable
vector[N] ln_min_aadt; # predictor variable
vector[N] no_lanes_maj; # predictor variable
vector[N] no_lanes_min; # predictor variable
vector[N] no_lanes_min; # predictor variable
vector[N] median_width; # predictor variable
int<lower=0> total_crashes[N]; # response variable
}
parameters {
real<lower=0> phi; # negative binomial dispersion parameter
real beta0; # intercept
real beta1;
real beta2;
real beta3;
real beta4;
real beta5;
real beta6;
real beta7;
real beta8;
real beta9;
real beta10;
}
model {
### priors
phi ~ cauchy(0.001,0.001);
beta0 ~ normal(0.0, 1.0E4);
beta1 ~ normal(0.0, 1.0E4);
beta2 ~ normal(0.0, 1.0E4);
beta3 ~ normal(0.0, 1.0E4);
beta4 ~ normal(0.0, 1.0E4);
beta5 ~ normal(0.0, 1.0E4);
beta6 ~ normal(0.0, 1.0E4);
beta7 ~ normal(0.0, 1.0E4);
beta8 ~ normal(0.0, 1.0E4);
beta9 ~ normal(0.0, 1.0E4);
beta10 ~ normal(0.0, 1.0E4);
# data model
total_crashes~ neg_binomial_2_log(beta0 + beta1*cat_time + beta2*cat_treatment + beta3*cat_median_type + beta4*cat_landuse + beta5*cat_speed + beta6*ln_maj_aadt + beta7*ln_min_aadt + beta8*no_lanes_maj + beta9*no_lanes_min +beta10*median_width, phi);
}
"
write(negbin, file="negbin-glm.stan")
sm<-stan_model("negbin-glm.stan")
set.seed(1000)
N<- 849
phi<-0.7349047
beta0<--3.150702
beta1<-0.0479721
beta2<-0.3503469
beta3<-0.0028539
beta4<--0.1059735
beta5<-0.6936886
beta6<-0.2642703
beta7<-0.121047
beta8<-0.0255357
beta9<-0.1235194
beta10<--0.0093531
expected_crashes<-sampling(sm, data=list(N=N, crashes=crashdata$total_crashes, cat_time=crashdata$time_indicator -mean((crashdata$time_indicator)), cat_treatment=crashdata$treatment-mean((crashdata$treatment)), cat_median_type=crashdata$median-type-mean((crashdata$median-type)), cat_landuse=crashdata$landuse-mean((crashdata$landuse)), cat_speed=crashdata$speed-mean((crashdata$speed)), ln_maj_aadt=crashdata$ln_aadt_maj-mean((crashdata$ln_aadt_maj)), ln_min_aadt=crashdata$ln_min_aadt-mean((crashdata$ln_min_aadt)), no_lanes_maj=crashdata$no_lanes_maj-mean((crashdata$no_lanes_maj)), no_lanes_min=crashdata$no_lanes_min-mean((crashdata$no_lanes_min)), median_width=crashdata$median_width-mean((crashdata$median_width))), pars=c("beta0", "beta1", "beta2", "beta3", "beta4", "beta5", "beta6", "beta7", "beta8", "beta9", "beta10", "phi"), iter=50000, warmup=20000, chains=1)
expected_crashes
# plot the output
rstan::traceplot(expected_crashes, inc_warmup=FALSE)
library(rstanarm)
library(shinystan)
launch_shinystan(expected_crashes)