diff --git a/.gitignore b/.gitignore index d91a235..4a4996c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ irt_standard_tst* bfg-1.12.16.jar src-i386 src-x64 +*.Rproj \ No newline at end of file diff --git a/DESCRIPTION b/DESCRIPTION index ef02e95..3f18570 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: idealstan Type: Package Title: Generalized IRT Ideal Point Models with 'Stan' -Version: 0.5.0 -Date: 2018-10-27 +Version: 0.5.1 +Date: 2018-11-26 Authors@R: c(person("Robert","Kubinec", role = c("aut","cre"), email = "rmk7@nyu.edu"), person("Jonah", "Gabry", role = "ctb"), @@ -16,7 +16,7 @@ Depends: R (>= 3.4.0), Rcpp (>= 0.12.18) Imports: - rstan (>= 2.18.1), + rstan (>= 2.18.2), rstantools (>= 1.5.1), dplyr, tidyr, @@ -36,7 +36,7 @@ Suggests: R.rsp LinkingTo: StanHeaders (>= 2.18.0), - rstan (>= 2.18.1), + rstan (>= 2.18.2), BH (>= 1.66), Rcpp (>= 0.12.7), RcppEigen (>= 0.3.2.9.0) diff --git a/NEWS.md b/NEWS.md index 35e7cf0..4be1bc4 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,9 @@ +#Release v0.5.1 +* Fixed bugs in plotting functions related to plotting two groups. +* Fixed bug in AR(1) model with restricted time variance. +* Updated dependencies to rstan 2.18.2. +* Added error-catching in covariate creation. + #Release v0.5.0 * New models for Poisson, ordinal-graded response, Normal and Log-normal outcomes. * Time-varying ideal point processes: random-walks and auto-regressive priors. diff --git a/R/Estimate.R b/R/Estimate.R index 5d8654e..f295108 100644 --- a/R/Estimate.R +++ b/R/Estimate.R @@ -315,7 +315,7 @@ id_make <- function(score_data=NULL, } else { # variable does not need to be recoded, only move missing to the end score_rename$outcome <- factor(score_rename$outcome) - score_rename$outcome <- fct_relevel(score_rename$outcome,miss_val,after=Inf) + score_rename$outcome <- fct_relevel(score_rename$outcome,as.character(miss_val),after=Inf) } } @@ -671,16 +671,18 @@ id_estimate <- function(idealdata=NULL,model_type=2, # this handles the situation in which the data is fake and only # groups are used as parameters legis_pred <- idealdata@group_cov + lx <- dim(idealdata@group_cov)[3] } else { legispoints <- as.numeric(idealdata@score_matrix$person_id) num_legis <- max(legispoints) legis_pred <- idealdata@person_cov + lx <- dim(idealdata@person_cov)[3] } billpoints <- as.numeric(idealdata@score_matrix$item_id) timepoints <- as.numeric(factor(idealdata@score_matrix$time_id)) - max_t <- max(timepoints) - num_bills <- max(billpoints) + max_t <- max(timepoints,na.rm=T) + num_bills <- max(billpoints,na.rm=T) Y <- idealdata@score_matrix$outcome @@ -720,7 +722,7 @@ id_estimate <- function(idealdata=NULL,model_type=2, # set identification options - if(length(idealdata@restrict_var)==0 && is.null(prior_fit)) { + if(length(idealdata@restrict_var)==0 && is.null(prior_fit) && is.null(restrict_var)) { if(vary_ideal_pts %in% c('none','AR1')) { idealdata@restrict_var <- FALSE } else { @@ -793,7 +795,7 @@ id_estimate <- function(idealdata=NULL,model_type=2, bb=billpoints, num_fix_high=as.integer(1), num_fix_low=as.integer(1), - LX=dim(idealdata@person_cov)[3], + LX=lx, SRX=ncol(idealdata@item_cov), SAX=ncol(idealdata@item_cov_miss), legis_pred=legis_pred, @@ -839,15 +841,17 @@ id_estimate <- function(idealdata=NULL,model_type=2, if(use_groups==T) { legispoints <- as.numeric(idealdata@score_matrix$group_id) num_legis <- max(legispoints) + lx <- dim(idealdata@group_cov)[3] } else { legispoints <- as.numeric(idealdata@score_matrix$person_id) num_legis <- max(legispoints) + lx <- dim(idealdata@person_cov)[3] } billpoints <- as.numeric(idealdata@score_matrix$item_id) timepoints <- as.numeric(factor(idealdata@score_matrix$time_id)) - max_t <- max(timepoints) - num_bills <- max(billpoints) + max_t <- max(timepoints,na.rm=T) + num_bills <- max(billpoints,na.rm=T) Y <- idealdata@score_matrix$outcome @@ -888,7 +892,7 @@ id_estimate <- function(idealdata=NULL,model_type=2, bb=billpoints, num_fix_high=as.integer(1), num_fix_low=as.integer(1), - LX=dim(idealdata@person_cov)[3], + LX=lx, SRX=ncol(idealdata@item_cov), SAX=ncol(idealdata@item_cov_miss), legis_pred=legis_pred, diff --git a/R/Generics.R b/R/Generics.R index 3cc6dfa..0bbbaf9 100644 --- a/R/Generics.R +++ b/R/Generics.R @@ -267,7 +267,7 @@ setMethod('summary',signature(object='idealstan'), if(pars=='items') { # a bit trickier with item points - item_plot <- unique(object@score_data@score_matrix$item_id) + item_plot <- levels(object@score_data@score_matrix$item_id) if(object@model_type %in% c(1,2) || (object@model_type>6 && object@model_type<13)) { # binary models and continuous item_points <- lapply(item_plot,.item_plot_binary,object=object, diff --git a/R/Helpers.R b/R/Helpers.R index 04c0a6a..be36097 100644 --- a/R/Helpers.R +++ b/R/Helpers.R @@ -130,6 +130,10 @@ ideal_pts_mean <- rstan::extract(post_modes,'L_tp1')[[1]] %>% apply(3,mean) %>% .[new_order] sign_match <- sign(ideal_pts_low) == sign(ideal_pts_high) constrain_mean <- which(sign_match) + # need to select the largest single one if no confidence intervals that don't cross zero + if(length(constrain_mean)==0) { + constrain_mean <- which(ideal_pts_mean==min(ideal_pts_mean)) + } if(length(constrain_mean)>1) { constrain_mean <- constrain_mean[abs(ideal_pts_mean[constrain_mean])==max(abs(ideal_pts_mean[constrain_mean]))] } @@ -635,7 +639,13 @@ to_array <- lapply(split(to_spread,pull(to_spread,!!third_dim_var)), function(this_data) { # spread and stuff into a list - spread_it <- spread(this_data,key=!!col_var_name,value=!!col_var_value) %>% + spread_it <- try(spread(this_data,key=!!col_var_name,value=!!col_var_value)) + if('try-error' %in% class(spread_it)) { + print('Failed to find unique covariate values for dataset:') + print(this_data) + stop() + } + spread_it <- spread_it %>% select(-!!row_var,-!!third_dim_var) %>% as.matrix row.names(spread_it) <- unique(pull(this_data,!!row_var)) return(spread_it) diff --git a/R/Plot.R b/R/Plot.R index 13d6cb7..d10d3e6 100644 --- a/R/Plot.R +++ b/R/Plot.R @@ -324,7 +324,7 @@ id_plot_legis <- function(object,return_data=FALSE, #' seed=84520) #' # We plot the variances for all the Senators #' -#' id_plot_legis_var(senate114_fit,item_plot=5) +#' id_plot_legis_var(senate114_fit) #' } id_plot_legis_var <- function(object,return_data=FALSE, include=NULL, @@ -343,10 +343,17 @@ id_plot_legis_var <- function(object,return_data=FALSE, low_limit=low_limit, type='variance') + if(object@use_groups) { + person_params$person_id <- person_params$group_id + person_params <- person_params %>% distinct + } + if(!is.null(include)) { person_params <- filter(person_params, person_id %in% include) } + + # Default plot: group names plotted as points if(group_color==TRUE) { @@ -558,7 +565,12 @@ id_plot_legis_dyn <- function(object,return_data=FALSE, } if(!is.null(include)) { - person_params <- filter(person_params, person_id %in% include) + if(object@use_groups) { + person_params <- filter(person_params, group_id %in% include) + } else { + person_params <- filter(person_params, person_id %in% include) + } + } if(object@use_groups) { @@ -618,7 +630,7 @@ id_plot_legis_dyn <- function(object,return_data=FALSE, } else { outplot <- outplot + - geom_line(aes_(y=~median_pt), + geom_line(aes_(y=~median_pt,group=base_id), alpha=person_ci_alpha, size=line_size) } @@ -882,9 +894,10 @@ id_plot_rhats <- function(obj) { #' column names otherwise. #' #' @param object A fitted \code{idealstan} object -#' @param cov_type Either 'person_cov' for person-level hierarchical parameters, -#' 'discrim_reg_cov' for bill/item discrimination parameters from regular (non-inflated) model, and -#' 'discrim_infl_cov' for bill/item discrimination parameters from inflated model. +#' @param cov_type Either \code{'person_cov'} for person-level hierarchical parameters, +#' \code{'group_cov'} for group-level hierarchical parameters, +#' \code{'discrim_reg_cov'} for bill/item discrimination parameters from regular (non-inflated) model, and +#' \code{'discrim_infl_cov'} for bill/item discrimination parameters from inflated model. #' @param filter_cov A character vector of coefficients from covariate plots to exclude from #' plotting (should be the names of coefficients as they appear in the plots) #' @param ... Any additional parameters passed on to \code{\link[bayesplot]{mcmc_intervals}} @@ -902,8 +915,13 @@ id_plot_cov <- function(object, to_plot <- as.array(object@stan_samples, pars=param_name) + if(object@use_groups && cov_type=='person_cov') { + cov_type <- 'group_cov' + } + # reset names of parameters new_names <- switch(cov_type,person_cov=attributes(object@score_data@person_cov)$dimnames$colnames, + group_cov=attributes(object@score_data@group_cov)$dimnames$colnames, discrim_reg=attributes(object@score_data@item_cov)$dimnames$colnames, discrim_abs=attributes(object@score_data@item_cov_miss)$dimnames$colnames) diff --git a/R/rstan_generics.R b/R/rstan_generics.R index 1dc1b0a..a7f2715 100644 --- a/R/rstan_generics.R +++ b/R/rstan_generics.R @@ -51,9 +51,16 @@ setMethod('id_post_pred',signature(object='idealstan'),function(object,draws=100 type='predict', sample_scores=NULL,...) { #all_params <- rstan::extract(object@stan_samples) - + n_votes <- nrow(object@score_data@score_matrix) - n_iters <- (object@stan_samples@stan_args[[1]]$iter-object@stan_samples@stan_args[[1]]$warmup)*length(object@stan_samples@stan_args) + + if(object@stan_samples@stan_args[[1]]$method != 'variational') { + n_iters <- (object@stan_samples@stan_args[[1]]$iter-object@stan_samples@stan_args[[1]]$warmup)*length(object@stan_samples@stan_args) + } else { + # there is no warmup for VB + n_iters <- dim(object@stan_samples)[1] + } + if(!is.null(sample_scores) && type!='log_lik') { this_sample <- sample(1:n_votes,sample_scores) } else { @@ -84,7 +91,7 @@ setMethod('id_post_pred',signature(object='idealstan'),function(object,draws=100 } bill_points <- as.numeric(object@score_data@score_matrix$item_id)[this_sample] - time_points <- as.numeric(object@score_data@score_matrix$time_id)[this_sample] + time_points <- as.numeric(factor(object@score_data@score_matrix$time_id))[this_sample] remove_nas <- !is.na(y) & !is.na(person_points) & !is.na(bill_points) & !is.na(time_points) y <- y[remove_nas] diff --git a/cran-comments.md b/cran-comments.md index 156d597..93a4032 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,25 +1,15 @@ ## Test environments * ubuntu 14.04 (on travis-ci), R devel and release * mac os x sierra (on travis-ci), R release -* win-builder, R release +* win-builder, R devel ## R CMD check results -There were no ERRORs or WARNINGs. - -* checking CRAN incoming feasibility ... NOTE -Maintainer: 'Robert Kubinec ' - -New maintainer: - Robert Kubinec -Old maintainer(s): - Robert Kubinec - -Explanation: I am keeping my contact information up to date. +There were no ERRORs or WARNINGs. 2 NOTEs: * checking installed package size ... NOTE - installed size is 7.3Mb + installed size is 5.5Mb sub-directories of 1Mb or more: - libs 5.9Mb + libs 4.1Mb Explanation: This package has a large installed library because it uses the Stan MCMC engine as a backend, and it comes with pre-compiled C++ modules that are loaded into Stan through the package `rstan`. As a result, the libraries are large, but the actual R code in the package is relatively small. diff --git a/src/stan_files/irt_standard.hpp b/src/stan_files/irt_standard.hpp index 7550e0f..619c861 100644 --- a/src/stan_files/irt_standard.hpp +++ b/src/stan_files/irt_standard.hpp @@ -56,27 +56,27 @@ stan::io::program_reader prog_reader__() { reader.add_event(298, 0, "start", "/chunks/create_constrained.stan"); reader.add_event(321, 23, "end", "/chunks/create_constrained.stan"); reader.add_event(321, 76, "restart", "model_irt_standard"); - reader.add_event(384, 139, "include", "/chunks/build_params_v2.stan"); - reader.add_event(384, 0, "start", "/chunks/build_params_v2.stan"); - reader.add_event(411, 27, "end", "/chunks/build_params_v2.stan"); - reader.add_event(411, 140, "restart", "model_irt_standard"); - reader.add_event(416, 145, "include", "/chunks/l_hier_ar1_prior.stan"); - reader.add_event(416, 0, "start", "/chunks/l_hier_ar1_prior.stan"); - reader.add_event(429, 13, "end", "/chunks/l_hier_ar1_prior.stan"); - reader.add_event(429, 146, "restart", "model_irt_standard"); - reader.add_event(432, 149, "include", "/chunks/l_hier_prior.stan"); - reader.add_event(432, 0, "start", "/chunks/l_hier_prior.stan"); - reader.add_event(448, 16, "end", "/chunks/l_hier_prior.stan"); - reader.add_event(448, 150, "restart", "model_irt_standard"); - reader.add_event(512, 214, "include", "/chunks/modeling_statement_v9.stan"); - reader.add_event(512, 0, "start", "/chunks/modeling_statement_v9.stan"); - reader.add_event(538, 26, "end", "/chunks/modeling_statement_v9.stan"); - reader.add_event(538, 215, "restart", "model_irt_standard"); - reader.add_event(541, 218, "include", "/chunks/model_types.stan"); - reader.add_event(541, 0, "start", "/chunks/model_types.stan"); - reader.add_event(859, 318, "end", "/chunks/model_types.stan"); - reader.add_event(859, 219, "restart", "model_irt_standard"); - reader.add_event(866, 224, "end", "model_irt_standard"); + reader.add_event(381, 136, "include", "/chunks/build_params_v2.stan"); + reader.add_event(381, 0, "start", "/chunks/build_params_v2.stan"); + reader.add_event(408, 27, "end", "/chunks/build_params_v2.stan"); + reader.add_event(408, 137, "restart", "model_irt_standard"); + reader.add_event(413, 142, "include", "/chunks/l_hier_ar1_prior.stan"); + reader.add_event(413, 0, "start", "/chunks/l_hier_ar1_prior.stan"); + reader.add_event(426, 13, "end", "/chunks/l_hier_ar1_prior.stan"); + reader.add_event(426, 143, "restart", "model_irt_standard"); + reader.add_event(429, 146, "include", "/chunks/l_hier_prior.stan"); + reader.add_event(429, 0, "start", "/chunks/l_hier_prior.stan"); + reader.add_event(445, 16, "end", "/chunks/l_hier_prior.stan"); + reader.add_event(445, 147, "restart", "model_irt_standard"); + reader.add_event(505, 207, "include", "/chunks/modeling_statement_v9.stan"); + reader.add_event(505, 0, "start", "/chunks/modeling_statement_v9.stan"); + reader.add_event(531, 26, "end", "/chunks/modeling_statement_v9.stan"); + reader.add_event(531, 208, "restart", "model_irt_standard"); + reader.add_event(534, 211, "include", "/chunks/model_types.stan"); + reader.add_event(534, 0, "start", "/chunks/model_types.stan"); + reader.add_event(852, 318, "end", "/chunks/model_types.stan"); + reader.add_event(852, 212, "restart", "model_irt_standard"); + reader.add_event(859, 217, "end", "model_irt_standard"); return reader; } @@ -1133,8 +1133,8 @@ struct jacob_mean_functor__ { validate_non_negative_index("sigma_abs_free", "num_bills", num_bills); num_params_r__ += num_bills; current_statement_begin__ = 344; - validate_non_negative_index("L_free", "(num_legis - 2)", (num_legis - 2)); - num_params_r__ += (num_legis - 2); + validate_non_negative_index("L_free", "(num_legis - num_constrain_l)", (num_legis - num_constrain_l)); + num_params_r__ += (num_legis - num_constrain_l); current_statement_begin__ = 345; validate_non_negative_index("ls_int", "num_ls", num_ls); num_params_r__ += num_ls; @@ -1161,35 +1161,26 @@ struct jacob_mean_functor__ { validate_non_negative_index("sigma_abs_x", "SAX", SAX); num_params_r__ += SAX; current_statement_begin__ = 353; - validate_non_negative_index("legis_x_cons", "LX", LX); - num_params_r__ += LX; - current_statement_begin__ = 354; - validate_non_negative_index("sigma_reg_x_cons", "SRX", SRX); - num_params_r__ += SRX; - current_statement_begin__ = 355; - validate_non_negative_index("sigma_abs_x_cons", "SAX", SAX); - num_params_r__ += SAX; - current_statement_begin__ = 356; validate_non_negative_index("B_int_free", "num_bills", num_bills); num_params_r__ += num_bills; - current_statement_begin__ = 357; + current_statement_begin__ = 354; validate_non_negative_index("A_int_free", "num_bills", num_bills); num_params_r__ += num_bills; - current_statement_begin__ = 358; + current_statement_begin__ = 355; validate_non_negative_index("steps_votes", "(m_step - 1)", (m_step - 1)); num_params_r__ += (m_step - 1); - current_statement_begin__ = 359; + current_statement_begin__ = 356; validate_non_negative_index("steps_votes_grm", "(m_step - 1)", (m_step - 1)); validate_non_negative_index("steps_votes_grm", "num_bills", num_bills); num_params_r__ += (m_step - 1) * num_bills; - current_statement_begin__ = 360; + current_statement_begin__ = 357; ++num_params_r__; - current_statement_begin__ = 361; + current_statement_begin__ = 358; ++num_params_r__; - current_statement_begin__ = 362; + current_statement_begin__ = 359; validate_non_negative_index("time_var", "num_legis", num_legis); num_params_r__ += num_legis; - current_statement_begin__ = 363; + current_statement_begin__ = 360; validate_non_negative_index("time_var_restrict", "num_legis", num_legis); num_params_r__ += num_legis; } catch (const std::exception& e) { @@ -1231,10 +1222,10 @@ struct jacob_mean_functor__ { throw std::runtime_error("variable L_free missing"); vals_r__ = context__.vals_r("L_free"); pos__ = 0U; - validate_non_negative_index("L_free", "(num_legis - 2)", (num_legis - 2)); - context__.validate_dims("initialization", "L_free", "vector_d", context__.to_vec((num_legis - 2))); - vector_d L_free(static_cast((num_legis - 2))); - for (int j1__ = 0U; j1__ < (num_legis - 2); ++j1__) + validate_non_negative_index("L_free", "(num_legis - num_constrain_l)", (num_legis - num_constrain_l)); + context__.validate_dims("initialization", "L_free", "vector_d", context__.to_vec((num_legis - num_constrain_l))); + vector_d L_free(static_cast((num_legis - num_constrain_l))); + for (int j1__ = 0U; j1__ < (num_legis - num_constrain_l); ++j1__) L_free(j1__) = vals_r__[pos__++]; try { writer__.vector_unconstrain(L_free); @@ -1365,51 +1356,6 @@ struct jacob_mean_functor__ { throw std::runtime_error(std::string("Error transforming variable sigma_abs_x: ") + e.what()); } - if (!(context__.contains_r("legis_x_cons"))) - throw std::runtime_error("variable legis_x_cons missing"); - vals_r__ = context__.vals_r("legis_x_cons"); - pos__ = 0U; - validate_non_negative_index("legis_x_cons", "LX", LX); - context__.validate_dims("initialization", "legis_x_cons", "vector_d", context__.to_vec(LX)); - vector_d legis_x_cons(static_cast(LX)); - for (int j1__ = 0U; j1__ < LX; ++j1__) - legis_x_cons(j1__) = vals_r__[pos__++]; - try { - writer__.vector_unconstrain(legis_x_cons); - } catch (const std::exception& e) { - throw std::runtime_error(std::string("Error transforming variable legis_x_cons: ") + e.what()); - } - - if (!(context__.contains_r("sigma_reg_x_cons"))) - throw std::runtime_error("variable sigma_reg_x_cons missing"); - vals_r__ = context__.vals_r("sigma_reg_x_cons"); - pos__ = 0U; - validate_non_negative_index("sigma_reg_x_cons", "SRX", SRX); - context__.validate_dims("initialization", "sigma_reg_x_cons", "vector_d", context__.to_vec(SRX)); - vector_d sigma_reg_x_cons(static_cast(SRX)); - for (int j1__ = 0U; j1__ < SRX; ++j1__) - sigma_reg_x_cons(j1__) = vals_r__[pos__++]; - try { - writer__.vector_unconstrain(sigma_reg_x_cons); - } catch (const std::exception& e) { - throw std::runtime_error(std::string("Error transforming variable sigma_reg_x_cons: ") + e.what()); - } - - if (!(context__.contains_r("sigma_abs_x_cons"))) - throw std::runtime_error("variable sigma_abs_x_cons missing"); - vals_r__ = context__.vals_r("sigma_abs_x_cons"); - pos__ = 0U; - validate_non_negative_index("sigma_abs_x_cons", "SAX", SAX); - context__.validate_dims("initialization", "sigma_abs_x_cons", "vector_d", context__.to_vec(SAX)); - vector_d sigma_abs_x_cons(static_cast(SAX)); - for (int j1__ = 0U; j1__ < SAX; ++j1__) - sigma_abs_x_cons(j1__) = vals_r__[pos__++]; - try { - writer__.vector_unconstrain(sigma_abs_x_cons); - } catch (const std::exception& e) { - throw std::runtime_error(std::string("Error transforming variable sigma_abs_x_cons: ") + e.what()); - } - if (!(context__.contains_r("B_int_free"))) throw std::runtime_error("variable B_int_free missing"); vals_r__ = context__.vals_r("B_int_free"); @@ -1572,9 +1518,9 @@ struct jacob_mean_functor__ { Eigen::Matrix L_free; (void) L_free; // dummy to suppress unused var warning if (jacobian__) - L_free = in__.vector_constrain((num_legis - 2),lp__); + L_free = in__.vector_constrain((num_legis - num_constrain_l),lp__); else - L_free = in__.vector_constrain((num_legis - 2)); + L_free = in__.vector_constrain((num_legis - num_constrain_l)); Eigen::Matrix ls_int; (void) ls_int; // dummy to suppress unused var warning @@ -1635,27 +1581,6 @@ struct jacob_mean_functor__ { else sigma_abs_x = in__.vector_constrain(SAX); - Eigen::Matrix legis_x_cons; - (void) legis_x_cons; // dummy to suppress unused var warning - if (jacobian__) - legis_x_cons = in__.vector_constrain(LX,lp__); - else - legis_x_cons = in__.vector_constrain(LX); - - Eigen::Matrix sigma_reg_x_cons; - (void) sigma_reg_x_cons; // dummy to suppress unused var warning - if (jacobian__) - sigma_reg_x_cons = in__.vector_constrain(SRX,lp__); - else - sigma_reg_x_cons = in__.vector_constrain(SRX); - - Eigen::Matrix sigma_abs_x_cons; - (void) sigma_abs_x_cons; // dummy to suppress unused var warning - if (jacobian__) - sigma_abs_x_cons = in__.vector_constrain(SAX,lp__); - else - sigma_abs_x_cons = in__.vector_constrain(SAX); - Eigen::Matrix B_int_free; (void) B_int_free; // dummy to suppress unused var warning if (jacobian__) @@ -1717,27 +1642,27 @@ struct jacob_mean_functor__ { // transformed parameters - current_statement_begin__ = 369; + current_statement_begin__ = 366; validate_non_negative_index("L_full", "num_legis", num_legis); Eigen::Matrix L_full(static_cast(num_legis)); (void) L_full; // dummy to suppress unused var warning stan::math::initialize(L_full, DUMMY_VAR__); stan::math::fill(L_full,DUMMY_VAR__); - current_statement_begin__ = 370; + current_statement_begin__ = 367; validate_non_negative_index("L_AR1", "num_legis", num_legis); Eigen::Matrix L_AR1(static_cast(num_legis)); (void) L_AR1; // dummy to suppress unused var warning stan::math::initialize(L_AR1, DUMMY_VAR__); stan::math::fill(L_AR1,DUMMY_VAR__); - current_statement_begin__ = 371; + current_statement_begin__ = 368; validate_non_negative_index("L_tp1", "num_legis", num_legis); validate_non_negative_index("L_tp1", "T", T); vector > L_tp1(T, (Eigen::Matrix (static_cast(num_legis)))); stan::math::initialize(L_tp1, DUMMY_VAR__); stan::math::fill(L_tp1,DUMMY_VAR__); - current_statement_begin__ = 372; + current_statement_begin__ = 369; validate_non_negative_index("restrict_low", "1", 1); Eigen::Matrix restrict_low(static_cast(1)); (void) restrict_low; // dummy to suppress unused var warning @@ -1746,80 +1671,80 @@ struct jacob_mean_functor__ { stan::math::fill(restrict_low,DUMMY_VAR__); - current_statement_begin__ = 374; + current_statement_begin__ = 371; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 375; + current_statement_begin__ = 372; stan::math::assign(restrict_low, subtract(restrict_high,diff)); } else { - current_statement_begin__ = 377; + current_statement_begin__ = 374; stan::math::assign(restrict_low, subtract(restrict_high,diff)); } - current_statement_begin__ = 381; + current_statement_begin__ = 378; stan::math::assign(L_AR1, append_row(L_AR1_free,ar_fix)); - current_statement_begin__ = 385; + current_statement_begin__ = 382; if (as_bool(logical_eq(num_legis,2))) { - current_statement_begin__ = 386; + current_statement_begin__ = 383; if (as_bool(logical_gt(T,1))) { - current_statement_begin__ = 387; + current_statement_begin__ = 384; if (as_bool(logical_eq(use_ar,1))) { - current_statement_begin__ = 388; + current_statement_begin__ = 385; stan::math::assign(L_full, append_row(L_free,restrict_high)); } else { - current_statement_begin__ = 390; + current_statement_begin__ = 387; stan::math::assign(L_full, append_row(restrict_low,restrict_high)); } } else { - current_statement_begin__ = 393; + current_statement_begin__ = 390; stan::math::assign(L_full, append_row(restrict_low,restrict_high)); } } else { - current_statement_begin__ = 398; + current_statement_begin__ = 395; if (as_bool(logical_gt(T,1))) { - current_statement_begin__ = 399; + current_statement_begin__ = 396; if (as_bool(logical_eq(use_ar,1))) { - current_statement_begin__ = 400; + current_statement_begin__ = 397; stan::math::assign(L_full, append_row(L_free,append_row(restrict_low,restrict_high))); } else { - current_statement_begin__ = 402; + current_statement_begin__ = 399; stan::math::assign(L_full, append_row(L_free,append_row(restrict_low,restrict_high))); } } else { - current_statement_begin__ = 407; + current_statement_begin__ = 404; stan::math::assign(L_full, append_row(L_free,append_row(restrict_low,restrict_high))); } } - current_statement_begin__ = 413; + current_statement_begin__ = 410; if (as_bool(logical_gt(T,1))) { - current_statement_begin__ = 414; + current_statement_begin__ = 411; if (as_bool(logical_eq(use_ar,1))) { - current_statement_begin__ = 419; + current_statement_begin__ = 416; for (int t = 1; t <= T; ++t) { - current_statement_begin__ = 421; + current_statement_begin__ = 418; if (as_bool(logical_eq(t,1))) { - current_statement_begin__ = 422; + current_statement_begin__ = 419; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), add(L_full,multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)), "assigning variable L_tp1"); } else { - current_statement_begin__ = 424; + current_statement_begin__ = 421; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), stan::model::deep_copy(add(add(add(L_full,elt_multiply(L_AR1,get_base1(L_tp1,(t - 1),"L_tp1",1))),multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)),elt_multiply(time_var,get_base1(L_tp1_var,(t - 1),"L_tp1_var",1)))), @@ -1828,30 +1753,30 @@ struct jacob_mean_functor__ { } } else { - current_statement_begin__ = 435; + current_statement_begin__ = 432; for (int t = 1; t <= T; ++t) { - current_statement_begin__ = 436; + current_statement_begin__ = 433; if (as_bool(logical_eq(t,1))) { - current_statement_begin__ = 437; + current_statement_begin__ = 434; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), add(L_full,multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)), "assigning variable L_tp1"); } else { - current_statement_begin__ = 439; + current_statement_begin__ = 436; if (as_bool(logical_eq(restrict_var,1))) { - current_statement_begin__ = 440; + current_statement_begin__ = 437; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), stan::model::deep_copy(add(add(get_base1(L_tp1,(t - 1),"L_tp1",1),multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)),elt_multiply(time_var_restrict,get_base1(L_tp1_var,(t - 1),"L_tp1_var",1)))), "assigning variable L_tp1"); } else { - current_statement_begin__ = 442; + current_statement_begin__ = 439; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), stan::model::deep_copy(add(add(get_base1(L_tp1,(t - 1),"L_tp1",1),multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)),elt_multiply(time_var,get_base1(L_tp1_var,(t - 1),"L_tp1_var",1)))), @@ -1862,7 +1787,7 @@ struct jacob_mean_functor__ { } } else { - current_statement_begin__ = 450; + current_statement_begin__ = 447; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(1), stan::model::nil_index_list()), L_full, @@ -1903,21 +1828,21 @@ struct jacob_mean_functor__ { const char* function__ = "validate transformed params"; (void) function__; // dummy to suppress unused var warning + current_statement_begin__ = 366; + current_statement_begin__ = 367; + current_statement_begin__ = 368; current_statement_begin__ = 369; - current_statement_begin__ = 370; - current_statement_begin__ = 371; - current_statement_begin__ = 372; // model body { - current_statement_begin__ = 457; + current_statement_begin__ = 454; validate_non_negative_index("pi1", "N", N); Eigen::Matrix pi1(static_cast(N)); (void) pi1; // dummy to suppress unused var warning stan::math::initialize(pi1, DUMMY_VAR__); stan::math::fill(pi1,DUMMY_VAR__); - current_statement_begin__ = 458; + current_statement_begin__ = 455; validate_non_negative_index("pi2", "N", N); Eigen::Matrix pi2(static_cast(N)); (void) pi2; // dummy to suppress unused var warning @@ -1926,560 +1851,554 @@ struct jacob_mean_functor__ { stan::math::fill(pi2,DUMMY_VAR__); - current_statement_begin__ = 460; + current_statement_begin__ = 457; lp_accum__.add(normal_log(legis_x, 0, 5)); - current_statement_begin__ = 461; - lp_accum__.add(normal_log(legis_x_cons, 0, 5)); - current_statement_begin__ = 463; + current_statement_begin__ = 458; lp_accum__.add(normal_log(sigma_abs_x, 0, 5)); - current_statement_begin__ = 464; + current_statement_begin__ = 459; lp_accum__.add(normal_log(sigma_reg_x, 0, 5)); - current_statement_begin__ = 465; - lp_accum__.add(normal_log(sigma_abs_x_cons, 0, 5)); - current_statement_begin__ = 466; - lp_accum__.add(normal_log(sigma_reg_x_cons, 0, 5)); - current_statement_begin__ = 467; + current_statement_begin__ = 460; lp_accum__.add(exponential_log(extra_sd, 1)); - current_statement_begin__ = 468; + current_statement_begin__ = 461; lp_accum__.add(normal_log(ar_fix, 0, 1)); - current_statement_begin__ = 469; + current_statement_begin__ = 462; lp_accum__.add(normal_log(L_AR1_free, 0, ar_sd)); - current_statement_begin__ = 471; + current_statement_begin__ = 464; if (as_bool((primitive_value(logical_gt(model_type,2)) && primitive_value(logical_lt(model_type,5))))) { - current_statement_begin__ = 472; + current_statement_begin__ = 465; for (int i = 1; i <= (m_step - 2); ++i) { - current_statement_begin__ = 473; + current_statement_begin__ = 466; lp_accum__.add(normal_log((get_base1(steps_votes,(i + 1),"steps_votes",1) - get_base1(steps_votes,i,"steps_votes",1)), 0, 5)); } } else { - current_statement_begin__ = 476; + current_statement_begin__ = 469; lp_accum__.add(normal_log(steps_votes, 0, 5)); } - current_statement_begin__ = 478; + current_statement_begin__ = 471; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 479; + current_statement_begin__ = 472; lp_accum__.add(normal_log(L_free, multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(1), stan::model::cons_list(stan::model::index_min_max(1, (num_legis - num_constrain_l)), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x), legis_sd)); } else { - current_statement_begin__ = 481; + current_statement_begin__ = 474; lp_accum__.add(normal_log(L_free, 0, legis_sd)); } - current_statement_begin__ = 484; + current_statement_begin__ = 477; for (int t = 1; t <= (T - 1); ++t) { - current_statement_begin__ = 485; + current_statement_begin__ = 478; lp_accum__.add(normal_log(get_base1(L_tp1_var,t,"L_tp1_var",1), 0, 1)); } - current_statement_begin__ = 488; + current_statement_begin__ = 481; lp_accum__.add(normal_log(ls_int, 0, legis_sd)); - current_statement_begin__ = 490; + current_statement_begin__ = 483; lp_accum__.add(normal_log(B_int_free, 0, diff_reg_sd)); - current_statement_begin__ = 491; + current_statement_begin__ = 484; lp_accum__.add(normal_log(A_int_free, 0, diff_abs_sd)); - current_statement_begin__ = 494; + current_statement_begin__ = 487; for (int b = 1; b <= num_bills; ++b) { - current_statement_begin__ = 495; + current_statement_begin__ = 488; lp_accum__.add(normal_log(get_base1(steps_votes_grm,b,"steps_votes_grm",1), 0, 5)); } - current_statement_begin__ = 499; + current_statement_begin__ = 492; lp_accum__.add(exponential_log(time_var_restrict, (1 / time_sd))); - current_statement_begin__ = 501; + current_statement_begin__ = 494; lp_accum__.add(exponential_log(time_var, (1 / time_sd))); - current_statement_begin__ = 505; + current_statement_begin__ = 498; if (as_bool((primitive_value(logical_gt(T,1)) && primitive_value(logical_eq(restrict_mean,1))))) { - current_statement_begin__ = 506; + current_statement_begin__ = 499; lp_accum__.add(normal_log(mean(stan::model::rvalue(L_tp1, stan::model::cons_list(stan::model::index_omni(), stan::model::cons_list(stan::model::index_uni(restrict_mean_ind), stan::model::nil_index_list())), "L_tp1")), restrict_mean_val, 0.01)); - current_statement_begin__ = 507; + current_statement_begin__ = 500; lp_accum__.add(jacob_mean(num_legis,num_legis_real, pstream__)); } - current_statement_begin__ = 516; + current_statement_begin__ = 509; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 517; + current_statement_begin__ = 510; lp_accum__.add(normal_log(restrict_high, diff_high, restrict_sd)); } else { - current_statement_begin__ = 520; + current_statement_begin__ = 513; lp_accum__.add(normal_log(restrict_high, diff_high, restrict_sd)); } - current_statement_begin__ = 527; + current_statement_begin__ = 520; lp_accum__.add(normal_log(sigma_abs_free, multiply(stan::model::rvalue(sax_pred, stan::model::cons_list(stan::model::index_uni(num_bills), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list())), "sax_pred"),sigma_abs_x), discrim_abs_sd)); - current_statement_begin__ = 528; + current_statement_begin__ = 521; lp_accum__.add(normal_log(sigma_reg_free, multiply(stan::model::rvalue(srx_pred, stan::model::cons_list(stan::model::index_uni(num_bills), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list())), "srx_pred"),sigma_reg_x), discrim_reg_sd)); - current_statement_begin__ = 543; + current_statement_begin__ = 536; if (as_bool(logical_eq(model_type,1))) { - current_statement_begin__ = 546; + current_statement_begin__ = 539; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 547; + current_statement_begin__ = 540; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); } else { - current_statement_begin__ = 549; + current_statement_begin__ = 542; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 551; + current_statement_begin__ = 544; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); } } - current_statement_begin__ = 556; + current_statement_begin__ = 549; lp_accum__.add(bernoulli_logit_log(Y_new, pi1)); } else if (as_bool(logical_eq(model_type,2))) { - current_statement_begin__ = 561; + current_statement_begin__ = 554; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 562; + current_statement_begin__ = 555; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); - current_statement_begin__ = 563; + current_statement_begin__ = 556; stan::math::assign(pi2, subtract(elt_multiply(stan::model::rvalue(sigma_abs_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_abs_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(A_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "A_int_free"))); } else { - current_statement_begin__ = 566; + current_statement_begin__ = 559; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 568; + current_statement_begin__ = 561; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); - current_statement_begin__ = 569; + current_statement_begin__ = 562; stan::model::assign(pi2, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_abs_free,get_base1(bb,n,"bb",1),"sigma_abs_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(A_int_free,get_base1(bb,n,"bb",1),"A_int_free",1)), "assigning variable pi2"); } } - current_statement_begin__ = 575; + current_statement_begin__ = 568; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 577; + current_statement_begin__ = 570; if (as_bool(logical_eq(get_base1(absence,n,"absence",1),1))) { - current_statement_begin__ = 578; + current_statement_begin__ = 571; lp_accum__.add(bernoulli_logit_log(1, get_base1(pi2,n,"pi2",1))); } else { - current_statement_begin__ = 580; + current_statement_begin__ = 573; lp_accum__.add(bernoulli_logit_log(0, get_base1(pi2,n,"pi2",1))); - current_statement_begin__ = 581; + current_statement_begin__ = 574; lp_accum__.add(bernoulli_logit_log(get_base1(Y_new,n,"Y_new",1), get_base1(pi1,n,"pi1",1))); } } } else if (as_bool(logical_eq(model_type,3))) { - current_statement_begin__ = 588; + current_statement_begin__ = 581; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 589; + current_statement_begin__ = 582; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); } else { - current_statement_begin__ = 591; + current_statement_begin__ = 584; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 593; + current_statement_begin__ = 586; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); } } - current_statement_begin__ = 598; + current_statement_begin__ = 591; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 599; + current_statement_begin__ = 592; lp_accum__.add(ordered_logistic_log(get_base1(Y_int,n,"Y_int",1), get_base1(pi1,n,"pi1",1), steps_votes)); } } else if (as_bool(logical_eq(model_type,4))) { - current_statement_begin__ = 607; + current_statement_begin__ = 600; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 608; + current_statement_begin__ = 601; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); - current_statement_begin__ = 609; + current_statement_begin__ = 602; stan::math::assign(pi2, subtract(elt_multiply(stan::model::rvalue(sigma_abs_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_abs_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(A_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "A_int_free"))); } else { - current_statement_begin__ = 612; + current_statement_begin__ = 605; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 614; + current_statement_begin__ = 607; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); - current_statement_begin__ = 615; + current_statement_begin__ = 608; stan::model::assign(pi2, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_abs_free,get_base1(bb,n,"bb",1),"sigma_abs_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(A_int_free,get_base1(bb,n,"bb",1),"A_int_free",1)), "assigning variable pi2"); } } - current_statement_begin__ = 621; + current_statement_begin__ = 614; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 623; + current_statement_begin__ = 616; if (as_bool(logical_eq(get_base1(absence,n,"absence",1),1))) { - current_statement_begin__ = 624; + current_statement_begin__ = 617; lp_accum__.add(bernoulli_logit_log(1, get_base1(pi2,n,"pi2",1))); } else { - current_statement_begin__ = 626; + current_statement_begin__ = 619; lp_accum__.add(bernoulli_logit_log(0, get_base1(pi2,n,"pi2",1))); - current_statement_begin__ = 627; + current_statement_begin__ = 620; lp_accum__.add(ordered_logistic_log(get_base1(Y_int,n,"Y_int",1), get_base1(pi1,n,"pi1",1), steps_votes)); } } } else if (as_bool(logical_eq(model_type,5))) { - current_statement_begin__ = 634; + current_statement_begin__ = 627; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 635; + current_statement_begin__ = 628; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); } else { - current_statement_begin__ = 637; + current_statement_begin__ = 630; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 639; + current_statement_begin__ = 632; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); } } - current_statement_begin__ = 644; + current_statement_begin__ = 637; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 645; + current_statement_begin__ = 638; lp_accum__.add(ordered_logistic_log(get_base1(Y_int,n,"Y_int",1), get_base1(pi1,n,"pi1",1), get_base1(steps_votes_grm,get_base1(bb,n,"bb",1),"steps_votes_grm",1))); } } else if (as_bool(logical_eq(model_type,6))) { - current_statement_begin__ = 650; + current_statement_begin__ = 643; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 651; + current_statement_begin__ = 644; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); - current_statement_begin__ = 652; + current_statement_begin__ = 645; stan::math::assign(pi2, subtract(elt_multiply(stan::model::rvalue(sigma_abs_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_abs_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(A_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "A_int_free"))); } else { - current_statement_begin__ = 655; + current_statement_begin__ = 648; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 657; + current_statement_begin__ = 650; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); - current_statement_begin__ = 658; + current_statement_begin__ = 651; stan::model::assign(pi2, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_abs_free,get_base1(bb,n,"bb",1),"sigma_abs_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(A_int_free,get_base1(bb,n,"bb",1),"A_int_free",1)), "assigning variable pi2"); } } - current_statement_begin__ = 664; + current_statement_begin__ = 657; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 666; + current_statement_begin__ = 659; if (as_bool(logical_eq(get_base1(absence,n,"absence",1),1))) { - current_statement_begin__ = 667; + current_statement_begin__ = 660; lp_accum__.add(bernoulli_logit_log(1, get_base1(pi2,n,"pi2",1))); } else { - current_statement_begin__ = 669; + current_statement_begin__ = 662; lp_accum__.add(bernoulli_logit_log(0, get_base1(pi2,n,"pi2",1))); - current_statement_begin__ = 670; + current_statement_begin__ = 663; lp_accum__.add(ordered_logistic_log(get_base1(Y_int,n,"Y_int",1), get_base1(pi1,n,"pi1",1), get_base1(steps_votes_grm,get_base1(bb,n,"bb",1),"steps_votes_grm",1))); } } } else if (as_bool(logical_eq(model_type,7))) { - current_statement_begin__ = 677; + current_statement_begin__ = 670; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 678; + current_statement_begin__ = 671; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); } else { - current_statement_begin__ = 680; + current_statement_begin__ = 673; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 682; + current_statement_begin__ = 675; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); } } - current_statement_begin__ = 687; + current_statement_begin__ = 680; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 688; + current_statement_begin__ = 681; lp_accum__.add(poisson_log(get_base1(Y_int,n,"Y_int",1), stan::math::exp(get_base1(pi1,n,"pi1",1)))); } } else if (as_bool(logical_eq(model_type,8))) { - current_statement_begin__ = 696; + current_statement_begin__ = 689; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 697; + current_statement_begin__ = 690; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); - current_statement_begin__ = 698; + current_statement_begin__ = 691; stan::math::assign(pi2, subtract(elt_multiply(stan::model::rvalue(sigma_abs_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_abs_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(A_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "A_int_free"))); } else { - current_statement_begin__ = 701; + current_statement_begin__ = 694; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 703; + current_statement_begin__ = 696; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); - current_statement_begin__ = 704; + current_statement_begin__ = 697; stan::model::assign(pi2, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_abs_free,get_base1(bb,n,"bb",1),"sigma_abs_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(A_int_free,get_base1(bb,n,"bb",1),"A_int_free",1)), "assigning variable pi2"); } } - current_statement_begin__ = 710; + current_statement_begin__ = 703; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 712; + current_statement_begin__ = 705; if (as_bool(logical_eq(get_base1(absence,n,"absence",1),1))) { - current_statement_begin__ = 713; + current_statement_begin__ = 706; lp_accum__.add(bernoulli_logit_log(1, get_base1(pi2,n,"pi2",1))); } else { - current_statement_begin__ = 715; + current_statement_begin__ = 708; lp_accum__.add(bernoulli_logit_log(0, get_base1(pi2,n,"pi2",1))); - current_statement_begin__ = 716; + current_statement_begin__ = 709; if (as_bool(logical_eq(zeroes,1))) { - current_statement_begin__ = 717; + current_statement_begin__ = 710; lp_accum__.add(poisson_log(get_base1(Y_int,n,"Y_int",1), stan::math::exp(get_base1(pi1,n,"pi1",1)))); if (get_base1(Y_int,n,"Y_int",1) < 1) lp_accum__.add(-std::numeric_limits::infinity()); else lp_accum__.add(-log_sum_exp(poisson_ccdf_log(1, stan::math::exp(get_base1(pi1,n,"pi1",1))), poisson_log(1, stan::math::exp(get_base1(pi1,n,"pi1",1))))); } else { - current_statement_begin__ = 719; + current_statement_begin__ = 712; lp_accum__.add(poisson_log(get_base1(Y_int,n,"Y_int",1), stan::math::exp(get_base1(pi1,n,"pi1",1)))); } } } } else if (as_bool(logical_eq(model_type,9))) { - current_statement_begin__ = 728; + current_statement_begin__ = 721; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 729; + current_statement_begin__ = 722; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); } else { - current_statement_begin__ = 731; + current_statement_begin__ = 724; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 733; + current_statement_begin__ = 726; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); } } - current_statement_begin__ = 738; + current_statement_begin__ = 731; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 739; + current_statement_begin__ = 732; lp_accum__.add(normal_log(get_base1(Y_cont,n,"Y_cont",1), get_base1(pi1,n,"pi1",1), extra_sd)); } } else if (as_bool(logical_eq(model_type,10))) { - current_statement_begin__ = 747; + current_statement_begin__ = 740; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 748; + current_statement_begin__ = 741; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); - current_statement_begin__ = 749; + current_statement_begin__ = 742; stan::math::assign(pi2, subtract(elt_multiply(stan::model::rvalue(sigma_abs_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_abs_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(A_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "A_int_free"))); } else { - current_statement_begin__ = 752; + current_statement_begin__ = 745; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 754; + current_statement_begin__ = 747; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); - current_statement_begin__ = 755; + current_statement_begin__ = 748; stan::model::assign(pi2, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_abs_free,get_base1(bb,n,"bb",1),"sigma_abs_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(A_int_free,get_base1(bb,n,"bb",1),"A_int_free",1)), "assigning variable pi2"); } } - current_statement_begin__ = 761; + current_statement_begin__ = 754; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 763; + current_statement_begin__ = 756; if (as_bool(logical_eq(get_base1(absence,n,"absence",1),1))) { - current_statement_begin__ = 764; + current_statement_begin__ = 757; lp_accum__.add(bernoulli_logit_log(1, get_base1(pi2,n,"pi2",1))); } else { - current_statement_begin__ = 766; + current_statement_begin__ = 759; lp_accum__.add(bernoulli_logit_log(0, get_base1(pi2,n,"pi2",1))); - current_statement_begin__ = 767; + current_statement_begin__ = 760; lp_accum__.add(normal_log(get_base1(Y_cont,n,"Y_cont",1), get_base1(pi1,n,"pi1",1), extra_sd)); } } } else if (as_bool(logical_eq(model_type,11))) { - current_statement_begin__ = 774; + current_statement_begin__ = 767; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 775; + current_statement_begin__ = 768; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); } else { - current_statement_begin__ = 777; + current_statement_begin__ = 770; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 779; + current_statement_begin__ = 772; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); } } - current_statement_begin__ = 784; + current_statement_begin__ = 777; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 785; + current_statement_begin__ = 778; lp_accum__.add(lognormal_log(get_base1(Y_cont,n,"Y_cont",1), stan::math::exp(get_base1(pi1,n,"pi1",1)), extra_sd)); } } else if (as_bool(logical_eq(model_type,12))) { - current_statement_begin__ = 791; + current_statement_begin__ = 784; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 792; + current_statement_begin__ = 785; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); - current_statement_begin__ = 793; + current_statement_begin__ = 786; stan::math::assign(pi2, subtract(elt_multiply(stan::model::rvalue(sigma_abs_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_abs_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(A_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "A_int_free"))); } else { - current_statement_begin__ = 796; + current_statement_begin__ = 789; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 798; + current_statement_begin__ = 791; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); - current_statement_begin__ = 799; + current_statement_begin__ = 792; stan::model::assign(pi2, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_abs_free,get_base1(bb,n,"bb",1),"sigma_abs_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(A_int_free,get_base1(bb,n,"bb",1),"A_int_free",1)), "assigning variable pi2"); } } - current_statement_begin__ = 805; + current_statement_begin__ = 798; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 807; + current_statement_begin__ = 800; if (as_bool(logical_eq(get_base1(absence,n,"absence",1),1))) { - current_statement_begin__ = 808; + current_statement_begin__ = 801; lp_accum__.add(bernoulli_logit_log(1, get_base1(pi2,n,"pi2",1))); } else { - current_statement_begin__ = 810; + current_statement_begin__ = 803; lp_accum__.add(bernoulli_logit_log(0, get_base1(pi2,n,"pi2",1))); - current_statement_begin__ = 811; + current_statement_begin__ = 804; lp_accum__.add(lognormal_log(get_base1(Y_cont,n,"Y_cont",1), stan::math::exp(get_base1(pi1,n,"pi1",1)), extra_sd)); } } } else if (as_bool(logical_eq(model_type,13))) { - current_statement_begin__ = 817; + current_statement_begin__ = 810; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 819; + current_statement_begin__ = 812; stan::math::assign(pi1, subtract(add(stan::model::rvalue(ls_int, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "ls_int"),stan::model::rvalue(sigma_abs_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_abs_free")),stan::math::sqrt(square(subtract(stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full"),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free")))))); } else { - current_statement_begin__ = 822; + current_statement_begin__ = 815; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 824; + current_statement_begin__ = 817; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(ls_int,get_base1(ll,n,"ll",1),"ls_int",1) + get_base1(sigma_abs_free,get_base1(bb,n,"bb",1),"sigma_abs_free",1)) - stan::math::sqrt(square((get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1))))), "assigning variable pi1"); } } - current_statement_begin__ = 830; + current_statement_begin__ = 823; lp_accum__.add(bernoulli_logit_log(Y_new, pi1)); } else if (as_bool(logical_eq(model_type,14))) { - current_statement_begin__ = 834; + current_statement_begin__ = 827; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 835; + current_statement_begin__ = 828; stan::math::assign(pi1, minus(stan::math::sqrt(square(subtract(stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full"),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free")))))); - current_statement_begin__ = 836; + current_statement_begin__ = 829; stan::math::assign(pi2, minus(stan::math::sqrt(square(subtract(stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full"),stan::model::rvalue(A_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "A_int_free")))))); } else { - current_statement_begin__ = 838; + current_statement_begin__ = 831; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 840; + current_statement_begin__ = 833; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), -(stan::math::sqrt(square((get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1))))), "assigning variable pi1"); - current_statement_begin__ = 841; + current_statement_begin__ = 834; stan::model::assign(pi2, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), -(stan::math::sqrt(square((get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2) - get_base1(A_int_free,get_base1(bb,n,"bb",1),"A_int_free",1))))), "assigning variable pi2"); } } - current_statement_begin__ = 846; + current_statement_begin__ = 839; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 848; + current_statement_begin__ = 841; if (as_bool(logical_eq(get_base1(absence,n,"absence",1),1))) { - current_statement_begin__ = 850; + current_statement_begin__ = 843; lp_accum__.add((stan::math::log(2) + bernoulli_logit_log(1,get_base1(pi2,n,"pi2",1)))); } else { - current_statement_begin__ = 852; + current_statement_begin__ = 845; lp_accum__.add((stan::math::log(2) + bernoulli_logit_log(0,get_base1(pi2,n,"pi2",1)))); - current_statement_begin__ = 853; + current_statement_begin__ = 846; lp_accum__.add((stan::math::log(2) + bernoulli_logit_log(get_base1(Y_new,n,"Y_new",1),get_base1(pi1,n,"pi1",1)))); } } @@ -2521,9 +2440,6 @@ struct jacob_mean_functor__ { names__.push_back("legis_x"); names__.push_back("sigma_reg_x"); names__.push_back("sigma_abs_x"); - names__.push_back("legis_x_cons"); - names__.push_back("sigma_reg_x_cons"); - names__.push_back("sigma_abs_x_cons"); names__.push_back("B_int_free"); names__.push_back("A_int_free"); names__.push_back("steps_votes"); @@ -2546,7 +2462,7 @@ struct jacob_mean_functor__ { dims__.push_back(num_bills); dimss__.push_back(dims__); dims__.resize(0); - dims__.push_back((num_legis - 2)); + dims__.push_back((num_legis - num_constrain_l)); dimss__.push_back(dims__); dims__.resize(0); dims__.push_back(num_ls); @@ -2574,15 +2490,6 @@ struct jacob_mean_functor__ { dims__.push_back(SAX); dimss__.push_back(dims__); dims__.resize(0); - dims__.push_back(LX); - dimss__.push_back(dims__); - dims__.resize(0); - dims__.push_back(SRX); - dimss__.push_back(dims__); - dims__.resize(0); - dims__.push_back(SAX); - dimss__.push_back(dims__); - dims__.resize(0); dims__.push_back(num_bills); dimss__.push_back(dims__); dims__.resize(0); @@ -2636,7 +2543,7 @@ struct jacob_mean_functor__ { (void) function__; // dummy to suppress unused var warning // read-transform, write parameters vector_d sigma_abs_free = in__.vector_constrain(num_bills); - vector_d L_free = in__.vector_constrain((num_legis - 2)); + vector_d L_free = in__.vector_constrain((num_legis - num_constrain_l)); vector_d ls_int = in__.vector_constrain(num_ls); vector L_tp1_var; size_t dim_L_tp1_var_0__ = (T - 1); @@ -2649,9 +2556,6 @@ struct jacob_mean_functor__ { vector_d legis_x = in__.vector_constrain(LX); vector_d sigma_reg_x = in__.vector_constrain(SRX); vector_d sigma_abs_x = in__.vector_constrain(SAX); - vector_d legis_x_cons = in__.vector_constrain(LX); - vector_d sigma_reg_x_cons = in__.vector_constrain(SRX); - vector_d sigma_abs_x_cons = in__.vector_constrain(SAX); vector_d B_int_free = in__.vector_constrain(num_bills); vector_d A_int_free = in__.vector_constrain(num_bills); vector_d steps_votes = in__.ordered_constrain((m_step - 1)); @@ -2667,7 +2571,7 @@ struct jacob_mean_functor__ { for (int k_0__ = 0; k_0__ < num_bills; ++k_0__) { vars__.push_back(sigma_abs_free[k_0__]); } - for (int k_0__ = 0; k_0__ < (num_legis - 2); ++k_0__) { + for (int k_0__ = 0; k_0__ < (num_legis - num_constrain_l); ++k_0__) { vars__.push_back(L_free[k_0__]); } for (int k_0__ = 0; k_0__ < num_ls; ++k_0__) { @@ -2696,15 +2600,6 @@ struct jacob_mean_functor__ { for (int k_0__ = 0; k_0__ < SAX; ++k_0__) { vars__.push_back(sigma_abs_x[k_0__]); } - for (int k_0__ = 0; k_0__ < LX; ++k_0__) { - vars__.push_back(legis_x_cons[k_0__]); - } - for (int k_0__ = 0; k_0__ < SRX; ++k_0__) { - vars__.push_back(sigma_reg_x_cons[k_0__]); - } - for (int k_0__ = 0; k_0__ < SAX; ++k_0__) { - vars__.push_back(sigma_abs_x_cons[k_0__]); - } for (int k_0__ = 0; k_0__ < num_bills; ++k_0__) { vars__.push_back(B_int_free[k_0__]); } @@ -2737,27 +2632,27 @@ struct jacob_mean_functor__ { (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement_begin__ = 369; + current_statement_begin__ = 366; validate_non_negative_index("L_full", "num_legis", num_legis); Eigen::Matrix L_full(static_cast(num_legis)); (void) L_full; // dummy to suppress unused var warning stan::math::initialize(L_full, DUMMY_VAR__); stan::math::fill(L_full,DUMMY_VAR__); - current_statement_begin__ = 370; + current_statement_begin__ = 367; validate_non_negative_index("L_AR1", "num_legis", num_legis); Eigen::Matrix L_AR1(static_cast(num_legis)); (void) L_AR1; // dummy to suppress unused var warning stan::math::initialize(L_AR1, DUMMY_VAR__); stan::math::fill(L_AR1,DUMMY_VAR__); - current_statement_begin__ = 371; + current_statement_begin__ = 368; validate_non_negative_index("L_tp1", "num_legis", num_legis); validate_non_negative_index("L_tp1", "T", T); vector > L_tp1(T, (Eigen::Matrix (static_cast(num_legis)))); stan::math::initialize(L_tp1, DUMMY_VAR__); stan::math::fill(L_tp1,DUMMY_VAR__); - current_statement_begin__ = 372; + current_statement_begin__ = 369; validate_non_negative_index("restrict_low", "1", 1); Eigen::Matrix restrict_low(static_cast(1)); (void) restrict_low; // dummy to suppress unused var warning @@ -2766,80 +2661,80 @@ struct jacob_mean_functor__ { stan::math::fill(restrict_low,DUMMY_VAR__); - current_statement_begin__ = 374; + current_statement_begin__ = 371; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 375; + current_statement_begin__ = 372; stan::math::assign(restrict_low, subtract(restrict_high,diff)); } else { - current_statement_begin__ = 377; + current_statement_begin__ = 374; stan::math::assign(restrict_low, subtract(restrict_high,diff)); } - current_statement_begin__ = 381; + current_statement_begin__ = 378; stan::math::assign(L_AR1, append_row(L_AR1_free,ar_fix)); - current_statement_begin__ = 385; + current_statement_begin__ = 382; if (as_bool(logical_eq(num_legis,2))) { - current_statement_begin__ = 386; + current_statement_begin__ = 383; if (as_bool(logical_gt(T,1))) { - current_statement_begin__ = 387; + current_statement_begin__ = 384; if (as_bool(logical_eq(use_ar,1))) { - current_statement_begin__ = 388; + current_statement_begin__ = 385; stan::math::assign(L_full, append_row(L_free,restrict_high)); } else { - current_statement_begin__ = 390; + current_statement_begin__ = 387; stan::math::assign(L_full, append_row(restrict_low,restrict_high)); } } else { - current_statement_begin__ = 393; + current_statement_begin__ = 390; stan::math::assign(L_full, append_row(restrict_low,restrict_high)); } } else { - current_statement_begin__ = 398; + current_statement_begin__ = 395; if (as_bool(logical_gt(T,1))) { - current_statement_begin__ = 399; + current_statement_begin__ = 396; if (as_bool(logical_eq(use_ar,1))) { - current_statement_begin__ = 400; + current_statement_begin__ = 397; stan::math::assign(L_full, append_row(L_free,append_row(restrict_low,restrict_high))); } else { - current_statement_begin__ = 402; + current_statement_begin__ = 399; stan::math::assign(L_full, append_row(L_free,append_row(restrict_low,restrict_high))); } } else { - current_statement_begin__ = 407; + current_statement_begin__ = 404; stan::math::assign(L_full, append_row(L_free,append_row(restrict_low,restrict_high))); } } - current_statement_begin__ = 413; + current_statement_begin__ = 410; if (as_bool(logical_gt(T,1))) { - current_statement_begin__ = 414; + current_statement_begin__ = 411; if (as_bool(logical_eq(use_ar,1))) { - current_statement_begin__ = 419; + current_statement_begin__ = 416; for (int t = 1; t <= T; ++t) { - current_statement_begin__ = 421; + current_statement_begin__ = 418; if (as_bool(logical_eq(t,1))) { - current_statement_begin__ = 422; + current_statement_begin__ = 419; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), add(L_full,multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)), "assigning variable L_tp1"); } else { - current_statement_begin__ = 424; + current_statement_begin__ = 421; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), stan::model::deep_copy(add(add(add(L_full,elt_multiply(L_AR1,get_base1(L_tp1,(t - 1),"L_tp1",1))),multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)),elt_multiply(time_var,get_base1(L_tp1_var,(t - 1),"L_tp1_var",1)))), @@ -2848,30 +2743,30 @@ struct jacob_mean_functor__ { } } else { - current_statement_begin__ = 435; + current_statement_begin__ = 432; for (int t = 1; t <= T; ++t) { - current_statement_begin__ = 436; + current_statement_begin__ = 433; if (as_bool(logical_eq(t,1))) { - current_statement_begin__ = 437; + current_statement_begin__ = 434; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), add(L_full,multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)), "assigning variable L_tp1"); } else { - current_statement_begin__ = 439; + current_statement_begin__ = 436; if (as_bool(logical_eq(restrict_var,1))) { - current_statement_begin__ = 440; + current_statement_begin__ = 437; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), stan::model::deep_copy(add(add(get_base1(L_tp1,(t - 1),"L_tp1",1),multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)),elt_multiply(time_var_restrict,get_base1(L_tp1_var,(t - 1),"L_tp1_var",1)))), "assigning variable L_tp1"); } else { - current_statement_begin__ = 442; + current_statement_begin__ = 439; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), stan::model::deep_copy(add(add(get_base1(L_tp1,(t - 1),"L_tp1",1),multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)),elt_multiply(time_var,get_base1(L_tp1_var,(t - 1),"L_tp1_var",1)))), @@ -2882,7 +2777,7 @@ struct jacob_mean_functor__ { } } else { - current_statement_begin__ = 450; + current_statement_begin__ = 447; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(1), stan::model::nil_index_list()), L_full, @@ -2890,10 +2785,10 @@ struct jacob_mean_functor__ { } // validate transformed parameters + current_statement_begin__ = 366; + current_statement_begin__ = 367; + current_statement_begin__ = 368; current_statement_begin__ = 369; - current_statement_begin__ = 370; - current_statement_begin__ = 371; - current_statement_begin__ = 372; // write transformed parameters if (include_tparams__) { @@ -2959,7 +2854,7 @@ struct jacob_mean_functor__ { param_name_stream__ << "sigma_abs_free" << '.' << k_0__; param_names__.push_back(param_name_stream__.str()); } - for (int k_0__ = 1; k_0__ <= (num_legis - 2); ++k_0__) { + for (int k_0__ = 1; k_0__ <= (num_legis - num_constrain_l); ++k_0__) { param_name_stream__.str(std::string()); param_name_stream__ << "L_free" << '.' << k_0__; param_names__.push_back(param_name_stream__.str()); @@ -3006,21 +2901,6 @@ struct jacob_mean_functor__ { param_name_stream__ << "sigma_abs_x" << '.' << k_0__; param_names__.push_back(param_name_stream__.str()); } - for (int k_0__ = 1; k_0__ <= LX; ++k_0__) { - param_name_stream__.str(std::string()); - param_name_stream__ << "legis_x_cons" << '.' << k_0__; - param_names__.push_back(param_name_stream__.str()); - } - for (int k_0__ = 1; k_0__ <= SRX; ++k_0__) { - param_name_stream__.str(std::string()); - param_name_stream__ << "sigma_reg_x_cons" << '.' << k_0__; - param_names__.push_back(param_name_stream__.str()); - } - for (int k_0__ = 1; k_0__ <= SAX; ++k_0__) { - param_name_stream__.str(std::string()); - param_name_stream__ << "sigma_abs_x_cons" << '.' << k_0__; - param_names__.push_back(param_name_stream__.str()); - } for (int k_0__ = 1; k_0__ <= num_bills; ++k_0__) { param_name_stream__.str(std::string()); param_name_stream__ << "B_int_free" << '.' << k_0__; @@ -3101,7 +2981,7 @@ struct jacob_mean_functor__ { param_name_stream__ << "sigma_abs_free" << '.' << k_0__; param_names__.push_back(param_name_stream__.str()); } - for (int k_0__ = 1; k_0__ <= (num_legis - 2); ++k_0__) { + for (int k_0__ = 1; k_0__ <= (num_legis - num_constrain_l); ++k_0__) { param_name_stream__.str(std::string()); param_name_stream__ << "L_free" << '.' << k_0__; param_names__.push_back(param_name_stream__.str()); @@ -3148,21 +3028,6 @@ struct jacob_mean_functor__ { param_name_stream__ << "sigma_abs_x" << '.' << k_0__; param_names__.push_back(param_name_stream__.str()); } - for (int k_0__ = 1; k_0__ <= LX; ++k_0__) { - param_name_stream__.str(std::string()); - param_name_stream__ << "legis_x_cons" << '.' << k_0__; - param_names__.push_back(param_name_stream__.str()); - } - for (int k_0__ = 1; k_0__ <= SRX; ++k_0__) { - param_name_stream__.str(std::string()); - param_name_stream__ << "sigma_reg_x_cons" << '.' << k_0__; - param_names__.push_back(param_name_stream__.str()); - } - for (int k_0__ = 1; k_0__ <= SAX; ++k_0__) { - param_name_stream__.str(std::string()); - param_name_stream__ << "sigma_abs_x_cons" << '.' << k_0__; - param_names__.push_back(param_name_stream__.str()); - } for (int k_0__ = 1; k_0__ <= num_bills; ++k_0__) { param_name_stream__.str(std::string()); param_name_stream__ << "B_int_free" << '.' << k_0__; diff --git a/src/stan_files/irt_standard.o b/src/stan_files/irt_standard.o index 2184303..4397882 100644 Binary files a/src/stan_files/irt_standard.o and b/src/stan_files/irt_standard.o differ diff --git a/src/stan_files/irt_standard.stan b/src/stan_files/irt_standard.stan index a06fe05..a33ca30 100644 --- a/src/stan_files/irt_standard.stan +++ b/src/stan_files/irt_standard.stan @@ -97,7 +97,7 @@ if(restrict_var==1) { parameters { vector[num_bills] sigma_abs_free; - vector[num_legis - 2] L_free; // first T=1 params to constrain + vector[num_legis - num_constrain_l] L_free; // first T=1 params to constrain vector[num_ls] ls_int; // extra intercepts for non-inflated latent space vector[num_legis] L_tp1_var[T-1]; // non-centered variance vector[num_legis-1] L_AR1_free; // AR-1 parameters for AR-1 model @@ -106,9 +106,6 @@ parameters { vector[LX] legis_x; vector[SRX] sigma_reg_x; vector[SAX] sigma_abs_x; - vector[LX] legis_x_cons; - vector[SRX] sigma_reg_x_cons; - vector[SAX] sigma_abs_x_cons; vector[num_bills] B_int_free; vector[num_bills] A_int_free; ordered[m_step-1] steps_votes; @@ -161,12 +158,8 @@ model { vector[N] pi2; legis_x ~ normal(0,5); - legis_x_cons ~ normal(0,5); - sigma_abs_x ~ normal(0,5); sigma_reg_x ~ normal(0,5); - sigma_abs_x_cons ~ normal(0,5); - sigma_reg_x_cons ~ normal(0,5); extra_sd ~ exponential(1); ar_fix ~ normal(0,1); L_AR1_free ~ normal(0,ar_sd); diff --git a/src/stan_files/irt_standard_noid.hpp b/src/stan_files/irt_standard_noid.hpp index b6817aa..ad221b7 100644 --- a/src/stan_files/irt_standard_noid.hpp +++ b/src/stan_files/irt_standard_noid.hpp @@ -48,19 +48,19 @@ stan::io::program_reader prog_reader__() { reader.add_event(198, 0, "start", "/chunks/change_outcome.stan"); reader.add_event(263, 65, "end", "/chunks/change_outcome.stan"); reader.add_event(263, 63, "restart", "model_irt_standard_noid"); - reader.add_event(314, 114, "include", "/chunks/l_hier_ar1_prior.stan"); - reader.add_event(314, 0, "start", "/chunks/l_hier_ar1_prior.stan"); - reader.add_event(327, 13, "end", "/chunks/l_hier_ar1_prior.stan"); - reader.add_event(327, 115, "restart", "model_irt_standard_noid"); - reader.add_event(330, 118, "include", "/chunks/l_hier_prior.stan"); - reader.add_event(330, 0, "start", "/chunks/l_hier_prior.stan"); - reader.add_event(346, 16, "end", "/chunks/l_hier_prior.stan"); - reader.add_event(346, 119, "restart", "model_irt_standard_noid"); - reader.add_event(404, 177, "include", "/chunks/model_types.stan"); - reader.add_event(404, 0, "start", "/chunks/model_types.stan"); - reader.add_event(722, 318, "end", "/chunks/model_types.stan"); - reader.add_event(722, 178, "restart", "model_irt_standard_noid"); - reader.add_event(728, 182, "end", "model_irt_standard_noid"); + reader.add_event(311, 111, "include", "/chunks/l_hier_ar1_prior.stan"); + reader.add_event(311, 0, "start", "/chunks/l_hier_ar1_prior.stan"); + reader.add_event(324, 13, "end", "/chunks/l_hier_ar1_prior.stan"); + reader.add_event(324, 112, "restart", "model_irt_standard_noid"); + reader.add_event(327, 115, "include", "/chunks/l_hier_prior.stan"); + reader.add_event(327, 0, "start", "/chunks/l_hier_prior.stan"); + reader.add_event(343, 16, "end", "/chunks/l_hier_prior.stan"); + reader.add_event(343, 116, "restart", "model_irt_standard_noid"); + reader.add_event(398, 171, "include", "/chunks/model_types.stan"); + reader.add_event(398, 0, "start", "/chunks/model_types.stan"); + reader.add_event(716, 318, "end", "/chunks/model_types.stan"); + reader.add_event(716, 172, "restart", "model_irt_standard_noid"); + reader.add_event(722, 176, "end", "model_irt_standard_noid"); return reader; } @@ -995,33 +995,24 @@ struct jacobian_stationary_functor__ { validate_non_negative_index("sigma_abs_x", "SAX", SAX); num_params_r__ += SAX; current_statement_begin__ = 292; - validate_non_negative_index("legis_x_cons", "LX", LX); - num_params_r__ += LX; - current_statement_begin__ = 293; - validate_non_negative_index("sigma_reg_x_cons", "SRX", SRX); - num_params_r__ += SRX; - current_statement_begin__ = 294; - validate_non_negative_index("sigma_abs_x_cons", "SAX", SAX); - num_params_r__ += SAX; - current_statement_begin__ = 295; validate_non_negative_index("steps_votes", "(m_step - 1)", (m_step - 1)); num_params_r__ += (m_step - 1); - current_statement_begin__ = 296; + current_statement_begin__ = 293; validate_non_negative_index("steps_votes_grm", "(m_step - 1)", (m_step - 1)); validate_non_negative_index("steps_votes_grm", "num_bills", num_bills); num_params_r__ += (m_step - 1) * num_bills; - current_statement_begin__ = 297; + current_statement_begin__ = 294; validate_non_negative_index("B_int_free", "num_bills", num_bills); num_params_r__ += num_bills; - current_statement_begin__ = 298; + current_statement_begin__ = 295; validate_non_negative_index("A_int_free", "num_bills", num_bills); num_params_r__ += num_bills; - current_statement_begin__ = 299; + current_statement_begin__ = 296; ++num_params_r__; - current_statement_begin__ = 300; + current_statement_begin__ = 297; validate_non_negative_index("time_var", "num_legis", num_legis); num_params_r__ += num_legis; - current_statement_begin__ = 301; + current_statement_begin__ = 298; validate_non_negative_index("time_var_restrict", "num_legis", num_legis); num_params_r__ += num_legis; } catch (const std::exception& e) { @@ -1182,51 +1173,6 @@ struct jacobian_stationary_functor__ { throw std::runtime_error(std::string("Error transforming variable sigma_abs_x: ") + e.what()); } - if (!(context__.contains_r("legis_x_cons"))) - throw std::runtime_error("variable legis_x_cons missing"); - vals_r__ = context__.vals_r("legis_x_cons"); - pos__ = 0U; - validate_non_negative_index("legis_x_cons", "LX", LX); - context__.validate_dims("initialization", "legis_x_cons", "vector_d", context__.to_vec(LX)); - vector_d legis_x_cons(static_cast(LX)); - for (int j1__ = 0U; j1__ < LX; ++j1__) - legis_x_cons(j1__) = vals_r__[pos__++]; - try { - writer__.vector_unconstrain(legis_x_cons); - } catch (const std::exception& e) { - throw std::runtime_error(std::string("Error transforming variable legis_x_cons: ") + e.what()); - } - - if (!(context__.contains_r("sigma_reg_x_cons"))) - throw std::runtime_error("variable sigma_reg_x_cons missing"); - vals_r__ = context__.vals_r("sigma_reg_x_cons"); - pos__ = 0U; - validate_non_negative_index("sigma_reg_x_cons", "SRX", SRX); - context__.validate_dims("initialization", "sigma_reg_x_cons", "vector_d", context__.to_vec(SRX)); - vector_d sigma_reg_x_cons(static_cast(SRX)); - for (int j1__ = 0U; j1__ < SRX; ++j1__) - sigma_reg_x_cons(j1__) = vals_r__[pos__++]; - try { - writer__.vector_unconstrain(sigma_reg_x_cons); - } catch (const std::exception& e) { - throw std::runtime_error(std::string("Error transforming variable sigma_reg_x_cons: ") + e.what()); - } - - if (!(context__.contains_r("sigma_abs_x_cons"))) - throw std::runtime_error("variable sigma_abs_x_cons missing"); - vals_r__ = context__.vals_r("sigma_abs_x_cons"); - pos__ = 0U; - validate_non_negative_index("sigma_abs_x_cons", "SAX", SAX); - context__.validate_dims("initialization", "sigma_abs_x_cons", "vector_d", context__.to_vec(SAX)); - vector_d sigma_abs_x_cons(static_cast(SAX)); - for (int j1__ = 0U; j1__ < SAX; ++j1__) - sigma_abs_x_cons(j1__) = vals_r__[pos__++]; - try { - writer__.vector_unconstrain(sigma_abs_x_cons); - } catch (const std::exception& e) { - throw std::runtime_error(std::string("Error transforming variable sigma_abs_x_cons: ") + e.what()); - } - if (!(context__.contains_r("steps_votes"))) throw std::runtime_error("variable steps_votes missing"); vals_r__ = context__.vals_r("steps_votes"); @@ -1432,27 +1378,6 @@ struct jacobian_stationary_functor__ { else sigma_abs_x = in__.vector_constrain(SAX); - Eigen::Matrix legis_x_cons; - (void) legis_x_cons; // dummy to suppress unused var warning - if (jacobian__) - legis_x_cons = in__.vector_constrain(LX,lp__); - else - legis_x_cons = in__.vector_constrain(LX); - - Eigen::Matrix sigma_reg_x_cons; - (void) sigma_reg_x_cons; // dummy to suppress unused var warning - if (jacobian__) - sigma_reg_x_cons = in__.vector_constrain(SRX,lp__); - else - sigma_reg_x_cons = in__.vector_constrain(SRX); - - Eigen::Matrix sigma_abs_x_cons; - (void) sigma_abs_x_cons; // dummy to suppress unused var warning - if (jacobian__) - sigma_abs_x_cons = in__.vector_constrain(SAX,lp__); - else - sigma_abs_x_cons = in__.vector_constrain(SAX); - Eigen::Matrix steps_votes; (void) steps_votes; // dummy to suppress unused var warning if (jacobian__) @@ -1507,14 +1432,14 @@ struct jacobian_stationary_functor__ { // transformed parameters - current_statement_begin__ = 306; + current_statement_begin__ = 303; validate_non_negative_index("L_full", "num_legis", num_legis); Eigen::Matrix L_full(static_cast(num_legis)); (void) L_full; // dummy to suppress unused var warning stan::math::initialize(L_full, DUMMY_VAR__); stan::math::fill(L_full,DUMMY_VAR__); - current_statement_begin__ = 307; + current_statement_begin__ = 304; validate_non_negative_index("L_tp1", "num_legis", num_legis); validate_non_negative_index("L_tp1", "T", T); vector > L_tp1(T, (Eigen::Matrix (static_cast(num_legis)))); @@ -1522,28 +1447,28 @@ struct jacobian_stationary_functor__ { stan::math::fill(L_tp1,DUMMY_VAR__); - current_statement_begin__ = 309; + current_statement_begin__ = 306; stan::math::assign(L_full, L_free); - current_statement_begin__ = 311; + current_statement_begin__ = 308; if (as_bool(logical_gt(T,1))) { - current_statement_begin__ = 312; + current_statement_begin__ = 309; if (as_bool(logical_eq(use_ar,1))) { - current_statement_begin__ = 317; + current_statement_begin__ = 314; for (int t = 1; t <= T; ++t) { - current_statement_begin__ = 319; + current_statement_begin__ = 316; if (as_bool(logical_eq(t,1))) { - current_statement_begin__ = 320; + current_statement_begin__ = 317; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), add(L_full,multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)), "assigning variable L_tp1"); } else { - current_statement_begin__ = 322; + current_statement_begin__ = 319; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), stan::model::deep_copy(add(add(add(L_full,elt_multiply(L_AR1,get_base1(L_tp1,(t - 1),"L_tp1",1))),multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)),elt_multiply(time_var,get_base1(L_tp1_var,(t - 1),"L_tp1_var",1)))), @@ -1552,30 +1477,30 @@ struct jacobian_stationary_functor__ { } } else { - current_statement_begin__ = 333; + current_statement_begin__ = 330; for (int t = 1; t <= T; ++t) { - current_statement_begin__ = 334; + current_statement_begin__ = 331; if (as_bool(logical_eq(t,1))) { - current_statement_begin__ = 335; + current_statement_begin__ = 332; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), add(L_full,multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)), "assigning variable L_tp1"); } else { - current_statement_begin__ = 337; + current_statement_begin__ = 334; if (as_bool(logical_eq(restrict_var,1))) { - current_statement_begin__ = 338; + current_statement_begin__ = 335; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), stan::model::deep_copy(add(add(get_base1(L_tp1,(t - 1),"L_tp1",1),multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)),elt_multiply(time_var_restrict,get_base1(L_tp1_var,(t - 1),"L_tp1_var",1)))), "assigning variable L_tp1"); } else { - current_statement_begin__ = 340; + current_statement_begin__ = 337; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), stan::model::deep_copy(add(add(get_base1(L_tp1,(t - 1),"L_tp1",1),multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)),elt_multiply(time_var,get_base1(L_tp1_var,(t - 1),"L_tp1_var",1)))), @@ -1586,7 +1511,7 @@ struct jacobian_stationary_functor__ { } } else { - current_statement_begin__ = 348; + current_statement_begin__ = 345; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(1), stan::model::nil_index_list()), L_full, @@ -1613,19 +1538,19 @@ struct jacobian_stationary_functor__ { const char* function__ = "validate transformed params"; (void) function__; // dummy to suppress unused var warning - current_statement_begin__ = 306; - current_statement_begin__ = 307; + current_statement_begin__ = 303; + current_statement_begin__ = 304; // model body { - current_statement_begin__ = 355; + current_statement_begin__ = 352; validate_non_negative_index("pi1", "N", N); Eigen::Matrix pi1(static_cast(N)); (void) pi1; // dummy to suppress unused var warning stan::math::initialize(pi1, DUMMY_VAR__); stan::math::fill(pi1,DUMMY_VAR__); - current_statement_begin__ = 356; + current_statement_begin__ = 353; validate_non_negative_index("pi2", "N", N); Eigen::Matrix pi2(static_cast(N)); (void) pi2; // dummy to suppress unused var warning @@ -1634,540 +1559,534 @@ struct jacobian_stationary_functor__ { stan::math::fill(pi2,DUMMY_VAR__); - current_statement_begin__ = 359; + current_statement_begin__ = 356; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 360; + current_statement_begin__ = 357; lp_accum__.add(normal_log(L_free, multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(1), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x), legis_sd)); } else { - current_statement_begin__ = 362; + current_statement_begin__ = 359; lp_accum__.add(normal_log(L_free, 0, legis_sd)); } - current_statement_begin__ = 365; + current_statement_begin__ = 362; for (int t = 1; t <= (T - 1); ++t) { - current_statement_begin__ = 366; + current_statement_begin__ = 363; lp_accum__.add(normal_log(get_base1(L_tp1_var,t,"L_tp1_var",1), 0, 1)); } - current_statement_begin__ = 370; + current_statement_begin__ = 367; lp_accum__.add(normal_log(sigma_abs_free, 0, discrim_abs_sd)); - current_statement_begin__ = 371; + current_statement_begin__ = 368; lp_accum__.add(normal_log(sigma_reg_free, 0, discrim_reg_sd)); - current_statement_begin__ = 372; + current_statement_begin__ = 369; lp_accum__.add(normal_log(legis_x, 0, 5)); - current_statement_begin__ = 373; + current_statement_begin__ = 370; lp_accum__.add(normal_log(sigma_reg_x, multiply(stan::model::rvalue(srx_pred, stan::model::cons_list(stan::model::index_uni(num_bills), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list())), "srx_pred"),sigma_reg_x), 5)); - current_statement_begin__ = 374; + current_statement_begin__ = 371; lp_accum__.add(normal_log(sigma_abs_x, multiply(stan::model::rvalue(sax_pred, stan::model::cons_list(stan::model::index_uni(num_bills), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list())), "sax_pred"),sigma_abs_x), 5)); - current_statement_begin__ = 375; - lp_accum__.add(normal_log(legis_x_cons, 0, 5)); - current_statement_begin__ = 376; - lp_accum__.add(normal_log(sigma_reg_x_cons, 0, 5)); - current_statement_begin__ = 377; - lp_accum__.add(normal_log(sigma_abs_x_cons, 0, 5)); - current_statement_begin__ = 378; + current_statement_begin__ = 372; lp_accum__.add(normal_log(L_AR1, 0, ar_sd)); - current_statement_begin__ = 379; + current_statement_begin__ = 373; lp_accum__.add(normal_log(ls_int, 0, legis_sd)); - current_statement_begin__ = 380; + current_statement_begin__ = 374; lp_accum__.add(exponential_log(extra_sd, 1)); - current_statement_begin__ = 382; + current_statement_begin__ = 376; if (as_bool((primitive_value(logical_gt(model_type,2)) && primitive_value(logical_lt(model_type,5))))) { - current_statement_begin__ = 383; + current_statement_begin__ = 377; for (int i = 1; i <= (m_step - 2); ++i) { - current_statement_begin__ = 384; + current_statement_begin__ = 378; lp_accum__.add(normal_log((get_base1(steps_votes,(i + 1),"steps_votes",1) - get_base1(steps_votes,i,"steps_votes",1)), 0, 5)); } } else { - current_statement_begin__ = 387; + current_statement_begin__ = 381; lp_accum__.add(normal_log(steps_votes, 0, 5)); } - current_statement_begin__ = 390; + current_statement_begin__ = 384; lp_accum__.add(normal_log(B_int_free, 0, diff_reg_sd)); - current_statement_begin__ = 391; + current_statement_begin__ = 385; lp_accum__.add(normal_log(A_int_free, 0, diff_abs_sd)); - current_statement_begin__ = 393; + current_statement_begin__ = 387; for (int b = 1; b <= num_bills; ++b) { - current_statement_begin__ = 394; + current_statement_begin__ = 388; lp_accum__.add(normal_log(get_base1(steps_votes_grm,b,"steps_votes_grm",1), 0, 5)); } - current_statement_begin__ = 397; + current_statement_begin__ = 391; lp_accum__.add(exponential_log(time_var_restrict, (1 / time_sd))); - current_statement_begin__ = 399; + current_statement_begin__ = 393; lp_accum__.add(exponential_log(time_var, (1 / time_sd))); - current_statement_begin__ = 406; + current_statement_begin__ = 400; if (as_bool(logical_eq(model_type,1))) { - current_statement_begin__ = 409; + current_statement_begin__ = 403; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 410; + current_statement_begin__ = 404; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); } else { - current_statement_begin__ = 412; + current_statement_begin__ = 406; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 414; + current_statement_begin__ = 408; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); } } - current_statement_begin__ = 419; + current_statement_begin__ = 413; lp_accum__.add(bernoulli_logit_log(Y_new, pi1)); } else if (as_bool(logical_eq(model_type,2))) { - current_statement_begin__ = 424; + current_statement_begin__ = 418; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 425; + current_statement_begin__ = 419; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); - current_statement_begin__ = 426; + current_statement_begin__ = 420; stan::math::assign(pi2, subtract(elt_multiply(stan::model::rvalue(sigma_abs_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_abs_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(A_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "A_int_free"))); } else { - current_statement_begin__ = 429; + current_statement_begin__ = 423; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 431; + current_statement_begin__ = 425; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); - current_statement_begin__ = 432; + current_statement_begin__ = 426; stan::model::assign(pi2, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_abs_free,get_base1(bb,n,"bb",1),"sigma_abs_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(A_int_free,get_base1(bb,n,"bb",1),"A_int_free",1)), "assigning variable pi2"); } } - current_statement_begin__ = 438; + current_statement_begin__ = 432; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 440; + current_statement_begin__ = 434; if (as_bool(logical_eq(get_base1(absence,n,"absence",1),1))) { - current_statement_begin__ = 441; + current_statement_begin__ = 435; lp_accum__.add(bernoulli_logit_log(1, get_base1(pi2,n,"pi2",1))); } else { - current_statement_begin__ = 443; + current_statement_begin__ = 437; lp_accum__.add(bernoulli_logit_log(0, get_base1(pi2,n,"pi2",1))); - current_statement_begin__ = 444; + current_statement_begin__ = 438; lp_accum__.add(bernoulli_logit_log(get_base1(Y_new,n,"Y_new",1), get_base1(pi1,n,"pi1",1))); } } } else if (as_bool(logical_eq(model_type,3))) { - current_statement_begin__ = 451; + current_statement_begin__ = 445; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 452; + current_statement_begin__ = 446; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); } else { - current_statement_begin__ = 454; + current_statement_begin__ = 448; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 456; + current_statement_begin__ = 450; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); } } - current_statement_begin__ = 461; + current_statement_begin__ = 455; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 462; + current_statement_begin__ = 456; lp_accum__.add(ordered_logistic_log(get_base1(Y_int,n,"Y_int",1), get_base1(pi1,n,"pi1",1), steps_votes)); } } else if (as_bool(logical_eq(model_type,4))) { - current_statement_begin__ = 470; + current_statement_begin__ = 464; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 471; + current_statement_begin__ = 465; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); - current_statement_begin__ = 472; + current_statement_begin__ = 466; stan::math::assign(pi2, subtract(elt_multiply(stan::model::rvalue(sigma_abs_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_abs_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(A_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "A_int_free"))); } else { - current_statement_begin__ = 475; + current_statement_begin__ = 469; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 477; + current_statement_begin__ = 471; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); - current_statement_begin__ = 478; + current_statement_begin__ = 472; stan::model::assign(pi2, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_abs_free,get_base1(bb,n,"bb",1),"sigma_abs_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(A_int_free,get_base1(bb,n,"bb",1),"A_int_free",1)), "assigning variable pi2"); } } - current_statement_begin__ = 484; + current_statement_begin__ = 478; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 486; + current_statement_begin__ = 480; if (as_bool(logical_eq(get_base1(absence,n,"absence",1),1))) { - current_statement_begin__ = 487; + current_statement_begin__ = 481; lp_accum__.add(bernoulli_logit_log(1, get_base1(pi2,n,"pi2",1))); } else { - current_statement_begin__ = 489; + current_statement_begin__ = 483; lp_accum__.add(bernoulli_logit_log(0, get_base1(pi2,n,"pi2",1))); - current_statement_begin__ = 490; + current_statement_begin__ = 484; lp_accum__.add(ordered_logistic_log(get_base1(Y_int,n,"Y_int",1), get_base1(pi1,n,"pi1",1), steps_votes)); } } } else if (as_bool(logical_eq(model_type,5))) { - current_statement_begin__ = 497; + current_statement_begin__ = 491; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 498; + current_statement_begin__ = 492; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); } else { - current_statement_begin__ = 500; + current_statement_begin__ = 494; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 502; + current_statement_begin__ = 496; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); } } - current_statement_begin__ = 507; + current_statement_begin__ = 501; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 508; + current_statement_begin__ = 502; lp_accum__.add(ordered_logistic_log(get_base1(Y_int,n,"Y_int",1), get_base1(pi1,n,"pi1",1), get_base1(steps_votes_grm,get_base1(bb,n,"bb",1),"steps_votes_grm",1))); } } else if (as_bool(logical_eq(model_type,6))) { - current_statement_begin__ = 513; + current_statement_begin__ = 507; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 514; + current_statement_begin__ = 508; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); - current_statement_begin__ = 515; + current_statement_begin__ = 509; stan::math::assign(pi2, subtract(elt_multiply(stan::model::rvalue(sigma_abs_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_abs_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(A_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "A_int_free"))); } else { - current_statement_begin__ = 518; + current_statement_begin__ = 512; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 520; + current_statement_begin__ = 514; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); - current_statement_begin__ = 521; + current_statement_begin__ = 515; stan::model::assign(pi2, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_abs_free,get_base1(bb,n,"bb",1),"sigma_abs_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(A_int_free,get_base1(bb,n,"bb",1),"A_int_free",1)), "assigning variable pi2"); } } - current_statement_begin__ = 527; + current_statement_begin__ = 521; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 529; + current_statement_begin__ = 523; if (as_bool(logical_eq(get_base1(absence,n,"absence",1),1))) { - current_statement_begin__ = 530; + current_statement_begin__ = 524; lp_accum__.add(bernoulli_logit_log(1, get_base1(pi2,n,"pi2",1))); } else { - current_statement_begin__ = 532; + current_statement_begin__ = 526; lp_accum__.add(bernoulli_logit_log(0, get_base1(pi2,n,"pi2",1))); - current_statement_begin__ = 533; + current_statement_begin__ = 527; lp_accum__.add(ordered_logistic_log(get_base1(Y_int,n,"Y_int",1), get_base1(pi1,n,"pi1",1), get_base1(steps_votes_grm,get_base1(bb,n,"bb",1),"steps_votes_grm",1))); } } } else if (as_bool(logical_eq(model_type,7))) { - current_statement_begin__ = 540; + current_statement_begin__ = 534; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 541; + current_statement_begin__ = 535; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); } else { - current_statement_begin__ = 543; + current_statement_begin__ = 537; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 545; + current_statement_begin__ = 539; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); } } - current_statement_begin__ = 550; + current_statement_begin__ = 544; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 551; + current_statement_begin__ = 545; lp_accum__.add(poisson_log(get_base1(Y_int,n,"Y_int",1), stan::math::exp(get_base1(pi1,n,"pi1",1)))); } } else if (as_bool(logical_eq(model_type,8))) { - current_statement_begin__ = 559; + current_statement_begin__ = 553; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 560; + current_statement_begin__ = 554; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); - current_statement_begin__ = 561; + current_statement_begin__ = 555; stan::math::assign(pi2, subtract(elt_multiply(stan::model::rvalue(sigma_abs_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_abs_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(A_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "A_int_free"))); } else { - current_statement_begin__ = 564; + current_statement_begin__ = 558; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 566; + current_statement_begin__ = 560; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); - current_statement_begin__ = 567; + current_statement_begin__ = 561; stan::model::assign(pi2, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_abs_free,get_base1(bb,n,"bb",1),"sigma_abs_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(A_int_free,get_base1(bb,n,"bb",1),"A_int_free",1)), "assigning variable pi2"); } } - current_statement_begin__ = 573; + current_statement_begin__ = 567; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 575; + current_statement_begin__ = 569; if (as_bool(logical_eq(get_base1(absence,n,"absence",1),1))) { - current_statement_begin__ = 576; + current_statement_begin__ = 570; lp_accum__.add(bernoulli_logit_log(1, get_base1(pi2,n,"pi2",1))); } else { - current_statement_begin__ = 578; + current_statement_begin__ = 572; lp_accum__.add(bernoulli_logit_log(0, get_base1(pi2,n,"pi2",1))); - current_statement_begin__ = 579; + current_statement_begin__ = 573; if (as_bool(logical_eq(zeroes,1))) { - current_statement_begin__ = 580; + current_statement_begin__ = 574; lp_accum__.add(poisson_log(get_base1(Y_int,n,"Y_int",1), stan::math::exp(get_base1(pi1,n,"pi1",1)))); if (get_base1(Y_int,n,"Y_int",1) < 1) lp_accum__.add(-std::numeric_limits::infinity()); else lp_accum__.add(-log_sum_exp(poisson_ccdf_log(1, stan::math::exp(get_base1(pi1,n,"pi1",1))), poisson_log(1, stan::math::exp(get_base1(pi1,n,"pi1",1))))); } else { - current_statement_begin__ = 582; + current_statement_begin__ = 576; lp_accum__.add(poisson_log(get_base1(Y_int,n,"Y_int",1), stan::math::exp(get_base1(pi1,n,"pi1",1)))); } } } } else if (as_bool(logical_eq(model_type,9))) { - current_statement_begin__ = 591; + current_statement_begin__ = 585; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 592; + current_statement_begin__ = 586; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); } else { - current_statement_begin__ = 594; + current_statement_begin__ = 588; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 596; + current_statement_begin__ = 590; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); } } - current_statement_begin__ = 601; + current_statement_begin__ = 595; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 602; + current_statement_begin__ = 596; lp_accum__.add(normal_log(get_base1(Y_cont,n,"Y_cont",1), get_base1(pi1,n,"pi1",1), extra_sd)); } } else if (as_bool(logical_eq(model_type,10))) { - current_statement_begin__ = 610; + current_statement_begin__ = 604; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 611; + current_statement_begin__ = 605; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); - current_statement_begin__ = 612; + current_statement_begin__ = 606; stan::math::assign(pi2, subtract(elt_multiply(stan::model::rvalue(sigma_abs_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_abs_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(A_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "A_int_free"))); } else { - current_statement_begin__ = 615; + current_statement_begin__ = 609; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 617; + current_statement_begin__ = 611; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); - current_statement_begin__ = 618; + current_statement_begin__ = 612; stan::model::assign(pi2, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_abs_free,get_base1(bb,n,"bb",1),"sigma_abs_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(A_int_free,get_base1(bb,n,"bb",1),"A_int_free",1)), "assigning variable pi2"); } } - current_statement_begin__ = 624; + current_statement_begin__ = 618; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 626; + current_statement_begin__ = 620; if (as_bool(logical_eq(get_base1(absence,n,"absence",1),1))) { - current_statement_begin__ = 627; + current_statement_begin__ = 621; lp_accum__.add(bernoulli_logit_log(1, get_base1(pi2,n,"pi2",1))); } else { - current_statement_begin__ = 629; + current_statement_begin__ = 623; lp_accum__.add(bernoulli_logit_log(0, get_base1(pi2,n,"pi2",1))); - current_statement_begin__ = 630; + current_statement_begin__ = 624; lp_accum__.add(normal_log(get_base1(Y_cont,n,"Y_cont",1), get_base1(pi1,n,"pi1",1), extra_sd)); } } } else if (as_bool(logical_eq(model_type,11))) { - current_statement_begin__ = 637; + current_statement_begin__ = 631; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 638; + current_statement_begin__ = 632; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); } else { - current_statement_begin__ = 640; + current_statement_begin__ = 634; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 642; + current_statement_begin__ = 636; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); } } - current_statement_begin__ = 647; + current_statement_begin__ = 641; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 648; + current_statement_begin__ = 642; lp_accum__.add(lognormal_log(get_base1(Y_cont,n,"Y_cont",1), stan::math::exp(get_base1(pi1,n,"pi1",1)), extra_sd)); } } else if (as_bool(logical_eq(model_type,12))) { - current_statement_begin__ = 654; + current_statement_begin__ = 648; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 655; + current_statement_begin__ = 649; stan::math::assign(pi1, subtract(elt_multiply(stan::model::rvalue(sigma_reg_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_reg_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free"))); - current_statement_begin__ = 656; + current_statement_begin__ = 650; stan::math::assign(pi2, subtract(elt_multiply(stan::model::rvalue(sigma_abs_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_abs_free"),stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full")),stan::model::rvalue(A_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "A_int_free"))); } else { - current_statement_begin__ = 659; + current_statement_begin__ = 653; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 661; + current_statement_begin__ = 655; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_reg_free,get_base1(bb,n,"bb",1),"sigma_reg_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1)), "assigning variable pi1"); - current_statement_begin__ = 662; + current_statement_begin__ = 656; stan::model::assign(pi2, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(sigma_abs_free,get_base1(bb,n,"bb",1),"sigma_abs_free",1) * get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2)) - get_base1(A_int_free,get_base1(bb,n,"bb",1),"A_int_free",1)), "assigning variable pi2"); } } - current_statement_begin__ = 668; + current_statement_begin__ = 662; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 670; + current_statement_begin__ = 664; if (as_bool(logical_eq(get_base1(absence,n,"absence",1),1))) { - current_statement_begin__ = 671; + current_statement_begin__ = 665; lp_accum__.add(bernoulli_logit_log(1, get_base1(pi2,n,"pi2",1))); } else { - current_statement_begin__ = 673; + current_statement_begin__ = 667; lp_accum__.add(bernoulli_logit_log(0, get_base1(pi2,n,"pi2",1))); - current_statement_begin__ = 674; + current_statement_begin__ = 668; lp_accum__.add(lognormal_log(get_base1(Y_cont,n,"Y_cont",1), stan::math::exp(get_base1(pi1,n,"pi1",1)), extra_sd)); } } } else if (as_bool(logical_eq(model_type,13))) { - current_statement_begin__ = 680; + current_statement_begin__ = 674; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 682; + current_statement_begin__ = 676; stan::math::assign(pi1, subtract(add(stan::model::rvalue(ls_int, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "ls_int"),stan::model::rvalue(sigma_abs_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "sigma_abs_free")),stan::math::sqrt(square(subtract(stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full"),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free")))))); } else { - current_statement_begin__ = 685; + current_statement_begin__ = 679; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 687; + current_statement_begin__ = 681; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), ((get_base1(ls_int,get_base1(ll,n,"ll",1),"ls_int",1) + get_base1(sigma_abs_free,get_base1(bb,n,"bb",1),"sigma_abs_free",1)) - stan::math::sqrt(square((get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1))))), "assigning variable pi1"); } } - current_statement_begin__ = 693; + current_statement_begin__ = 687; lp_accum__.add(bernoulli_logit_log(Y_new, pi1)); } else if (as_bool(logical_eq(model_type,14))) { - current_statement_begin__ = 697; + current_statement_begin__ = 691; if (as_bool(logical_eq(T,1))) { - current_statement_begin__ = 698; + current_statement_begin__ = 692; stan::math::assign(pi1, minus(stan::math::sqrt(square(subtract(stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full"),stan::model::rvalue(B_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "B_int_free")))))); - current_statement_begin__ = 699; + current_statement_begin__ = 693; stan::math::assign(pi2, minus(stan::math::sqrt(square(subtract(stan::model::rvalue(L_full, stan::model::cons_list(stan::model::index_multi(ll), stan::model::nil_index_list()), "L_full"),stan::model::rvalue(A_int_free, stan::model::cons_list(stan::model::index_multi(bb), stan::model::nil_index_list()), "A_int_free")))))); } else { - current_statement_begin__ = 701; + current_statement_begin__ = 695; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 703; + current_statement_begin__ = 697; stan::model::assign(pi1, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), -(stan::math::sqrt(square((get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2) - get_base1(B_int_free,get_base1(bb,n,"bb",1),"B_int_free",1))))), "assigning variable pi1"); - current_statement_begin__ = 704; + current_statement_begin__ = 698; stan::model::assign(pi2, stan::model::cons_list(stan::model::index_uni(n), stan::model::nil_index_list()), -(stan::math::sqrt(square((get_base1(get_base1(L_tp1,get_base1(time,n,"time",1),"L_tp1",1),get_base1(ll,n,"ll",1),"L_tp1",2) - get_base1(A_int_free,get_base1(bb,n,"bb",1),"A_int_free",1))))), "assigning variable pi2"); } } - current_statement_begin__ = 709; + current_statement_begin__ = 703; for (int n = 1; n <= N; ++n) { - current_statement_begin__ = 711; + current_statement_begin__ = 705; if (as_bool(logical_eq(get_base1(absence,n,"absence",1),1))) { - current_statement_begin__ = 713; + current_statement_begin__ = 707; lp_accum__.add((stan::math::log(2) + bernoulli_logit_log(1,get_base1(pi2,n,"pi2",1)))); } else { - current_statement_begin__ = 715; + current_statement_begin__ = 709; lp_accum__.add((stan::math::log(2) + bernoulli_logit_log(0,get_base1(pi2,n,"pi2",1)))); - current_statement_begin__ = 716; + current_statement_begin__ = 710; lp_accum__.add((stan::math::log(2) + bernoulli_logit_log(get_base1(Y_new,n,"Y_new",1),get_base1(pi1,n,"pi1",1)))); } } @@ -2208,9 +2127,6 @@ struct jacobian_stationary_functor__ { names__.push_back("legis_x"); names__.push_back("sigma_reg_x"); names__.push_back("sigma_abs_x"); - names__.push_back("legis_x_cons"); - names__.push_back("sigma_reg_x_cons"); - names__.push_back("sigma_abs_x_cons"); names__.push_back("steps_votes"); names__.push_back("steps_votes_grm"); names__.push_back("B_int_free"); @@ -2255,15 +2171,6 @@ struct jacobian_stationary_functor__ { dims__.push_back(SAX); dimss__.push_back(dims__); dims__.resize(0); - dims__.push_back(LX); - dimss__.push_back(dims__); - dims__.resize(0); - dims__.push_back(SRX); - dimss__.push_back(dims__); - dims__.resize(0); - dims__.push_back(SAX); - dimss__.push_back(dims__); - dims__.resize(0); dims__.push_back((m_step - 1)); dimss__.push_back(dims__); dims__.resize(0); @@ -2321,9 +2228,6 @@ struct jacobian_stationary_functor__ { vector_d legis_x = in__.vector_constrain(LX); vector_d sigma_reg_x = in__.vector_constrain(SRX); vector_d sigma_abs_x = in__.vector_constrain(SAX); - vector_d legis_x_cons = in__.vector_constrain(LX); - vector_d sigma_reg_x_cons = in__.vector_constrain(SRX); - vector_d sigma_abs_x_cons = in__.vector_constrain(SAX); vector_d steps_votes = in__.ordered_constrain((m_step - 1)); vector steps_votes_grm; size_t dim_steps_votes_grm_0__ = num_bills; @@ -2364,15 +2268,6 @@ struct jacobian_stationary_functor__ { for (int k_0__ = 0; k_0__ < SAX; ++k_0__) { vars__.push_back(sigma_abs_x[k_0__]); } - for (int k_0__ = 0; k_0__ < LX; ++k_0__) { - vars__.push_back(legis_x_cons[k_0__]); - } - for (int k_0__ = 0; k_0__ < SRX; ++k_0__) { - vars__.push_back(sigma_reg_x_cons[k_0__]); - } - for (int k_0__ = 0; k_0__ < SAX; ++k_0__) { - vars__.push_back(sigma_abs_x_cons[k_0__]); - } for (int k_0__ = 0; k_0__ < (m_step - 1); ++k_0__) { vars__.push_back(steps_votes[k_0__]); } @@ -2404,14 +2299,14 @@ struct jacobian_stationary_functor__ { (void) DUMMY_VAR__; // suppress unused var warning try { - current_statement_begin__ = 306; + current_statement_begin__ = 303; validate_non_negative_index("L_full", "num_legis", num_legis); Eigen::Matrix L_full(static_cast(num_legis)); (void) L_full; // dummy to suppress unused var warning stan::math::initialize(L_full, DUMMY_VAR__); stan::math::fill(L_full,DUMMY_VAR__); - current_statement_begin__ = 307; + current_statement_begin__ = 304; validate_non_negative_index("L_tp1", "num_legis", num_legis); validate_non_negative_index("L_tp1", "T", T); vector > L_tp1(T, (Eigen::Matrix (static_cast(num_legis)))); @@ -2419,28 +2314,28 @@ struct jacobian_stationary_functor__ { stan::math::fill(L_tp1,DUMMY_VAR__); - current_statement_begin__ = 309; + current_statement_begin__ = 306; stan::math::assign(L_full, L_free); - current_statement_begin__ = 311; + current_statement_begin__ = 308; if (as_bool(logical_gt(T,1))) { - current_statement_begin__ = 312; + current_statement_begin__ = 309; if (as_bool(logical_eq(use_ar,1))) { - current_statement_begin__ = 317; + current_statement_begin__ = 314; for (int t = 1; t <= T; ++t) { - current_statement_begin__ = 319; + current_statement_begin__ = 316; if (as_bool(logical_eq(t,1))) { - current_statement_begin__ = 320; + current_statement_begin__ = 317; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), add(L_full,multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)), "assigning variable L_tp1"); } else { - current_statement_begin__ = 322; + current_statement_begin__ = 319; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), stan::model::deep_copy(add(add(add(L_full,elt_multiply(L_AR1,get_base1(L_tp1,(t - 1),"L_tp1",1))),multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)),elt_multiply(time_var,get_base1(L_tp1_var,(t - 1),"L_tp1_var",1)))), @@ -2449,30 +2344,30 @@ struct jacobian_stationary_functor__ { } } else { - current_statement_begin__ = 333; + current_statement_begin__ = 330; for (int t = 1; t <= T; ++t) { - current_statement_begin__ = 334; + current_statement_begin__ = 331; if (as_bool(logical_eq(t,1))) { - current_statement_begin__ = 335; + current_statement_begin__ = 332; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), add(L_full,multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)), "assigning variable L_tp1"); } else { - current_statement_begin__ = 337; + current_statement_begin__ = 334; if (as_bool(logical_eq(restrict_var,1))) { - current_statement_begin__ = 338; + current_statement_begin__ = 335; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), stan::model::deep_copy(add(add(get_base1(L_tp1,(t - 1),"L_tp1",1),multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)),elt_multiply(time_var_restrict,get_base1(L_tp1_var,(t - 1),"L_tp1_var",1)))), "assigning variable L_tp1"); } else { - current_statement_begin__ = 340; + current_statement_begin__ = 337; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(t), stan::model::nil_index_list()), stan::model::deep_copy(add(add(get_base1(L_tp1,(t - 1),"L_tp1",1),multiply(stan::model::rvalue(legis_pred, stan::model::cons_list(stan::model::index_uni(t), stan::model::cons_list(stan::model::index_min_max(1, num_legis), stan::model::cons_list(stan::model::index_omni(), stan::model::nil_index_list()))), "legis_pred"),legis_x)),elt_multiply(time_var,get_base1(L_tp1_var,(t - 1),"L_tp1_var",1)))), @@ -2483,7 +2378,7 @@ struct jacobian_stationary_functor__ { } } else { - current_statement_begin__ = 348; + current_statement_begin__ = 345; stan::model::assign(L_tp1, stan::model::cons_list(stan::model::index_uni(1), stan::model::nil_index_list()), L_full, @@ -2491,8 +2386,8 @@ struct jacobian_stationary_functor__ { } // validate transformed parameters - current_statement_begin__ = 306; - current_statement_begin__ = 307; + current_statement_begin__ = 303; + current_statement_begin__ = 304; // write transformed parameters if (include_tparams__) { @@ -2594,21 +2489,6 @@ struct jacobian_stationary_functor__ { param_name_stream__ << "sigma_abs_x" << '.' << k_0__; param_names__.push_back(param_name_stream__.str()); } - for (int k_0__ = 1; k_0__ <= LX; ++k_0__) { - param_name_stream__.str(std::string()); - param_name_stream__ << "legis_x_cons" << '.' << k_0__; - param_names__.push_back(param_name_stream__.str()); - } - for (int k_0__ = 1; k_0__ <= SRX; ++k_0__) { - param_name_stream__.str(std::string()); - param_name_stream__ << "sigma_reg_x_cons" << '.' << k_0__; - param_names__.push_back(param_name_stream__.str()); - } - for (int k_0__ = 1; k_0__ <= SAX; ++k_0__) { - param_name_stream__.str(std::string()); - param_name_stream__ << "sigma_abs_x_cons" << '.' << k_0__; - param_names__.push_back(param_name_stream__.str()); - } for (int k_0__ = 1; k_0__ <= (m_step - 1); ++k_0__) { param_name_stream__.str(std::string()); param_name_stream__ << "steps_votes" << '.' << k_0__; @@ -2718,21 +2598,6 @@ struct jacobian_stationary_functor__ { param_name_stream__ << "sigma_abs_x" << '.' << k_0__; param_names__.push_back(param_name_stream__.str()); } - for (int k_0__ = 1; k_0__ <= LX; ++k_0__) { - param_name_stream__.str(std::string()); - param_name_stream__ << "legis_x_cons" << '.' << k_0__; - param_names__.push_back(param_name_stream__.str()); - } - for (int k_0__ = 1; k_0__ <= SRX; ++k_0__) { - param_name_stream__.str(std::string()); - param_name_stream__ << "sigma_reg_x_cons" << '.' << k_0__; - param_names__.push_back(param_name_stream__.str()); - } - for (int k_0__ = 1; k_0__ <= SAX; ++k_0__) { - param_name_stream__.str(std::string()); - param_name_stream__ << "sigma_abs_x_cons" << '.' << k_0__; - param_names__.push_back(param_name_stream__.str()); - } for (int k_0__ = 1; k_0__ <= (m_step - 1); ++k_0__) { param_name_stream__.str(std::string()); param_name_stream__ << "steps_votes" << '.' << k_0__; diff --git a/src/stan_files/irt_standard_noid.o b/src/stan_files/irt_standard_noid.o index 0fe977a..9e1c26e 100644 Binary files a/src/stan_files/irt_standard_noid.o and b/src/stan_files/irt_standard_noid.o differ diff --git a/src/stan_files/irt_standard_noid.stan b/src/stan_files/irt_standard_noid.stan index 2801645..5258560 100644 --- a/src/stan_files/irt_standard_noid.stan +++ b/src/stan_files/irt_standard_noid.stan @@ -90,9 +90,6 @@ parameters { vector[LX] legis_x; vector[SRX] sigma_reg_x; vector[SAX] sigma_abs_x; - vector[LX] legis_x_cons; - vector[SRX] sigma_reg_x_cons; - vector[SAX] sigma_abs_x_cons; ordered[m_step-1] steps_votes; ordered[m_step-1] steps_votes_grm[num_bills]; vector[num_bills] B_int_free; @@ -146,9 +143,6 @@ model { legis_x ~ normal(0,5); sigma_reg_x ~ normal(srx_pred[num_bills, ] * sigma_reg_x,5); sigma_abs_x ~ normal(sax_pred[num_bills, ] * sigma_abs_x,5); - legis_x_cons ~ normal(0,5);; - sigma_reg_x_cons ~ normal(0,5); - sigma_abs_x_cons ~ normal(0,5); L_AR1 ~ normal(0,ar_sd); // these parameters shouldn't get too big ls_int ~ normal(0,legis_sd); extra_sd ~ exponential(1); diff --git a/vignettes/Package_Introduction.Rmd b/vignettes/Package_Introduction.Rmd index 6c3cc17..fed18bb 100644 --- a/vignettes/Package_Introduction.Rmd +++ b/vignettes/Package_Introduction.Rmd @@ -289,7 +289,14 @@ id_plot_cov(sen_est_cov,cov_type='person_cov', filter_cov=c('age','party_codeR:age')) + ggtitle('Effect of Age by Party on Ideal Point Scores in 114th Senate') + scale_y_discrete(breaks=c('age','party_codeR:age'), - labels=c('Democrats','Republicans')) + labels=c('Democrats','Republicans')) + + scale_x_continuous(breaks=c(-0.05,-0.025,0,0.025), + labels=c('More\nConservative', + '-0.025', + '0', + 'More\nLiberal'), + limits=c(-0.07,0.04)) + ``` Because these covariates are on the ideal point scale, the meaning of the scale in terms of party ideology must be kept in mind in order to interpret the plot. First, because we only have estimates for the "I" and "R" values of `party_code`, we know that the Democrats "D" are being used as the reference value. As a consequence, the coefficient for `age` is equal to the effect of age for Democrats (i.e., when the person is neither Republican or Independent). As a result, a negative value for age for Democrats corresponds to more liberalism as they are on the negative side of the scale, while a positive value for age for Republicans implies more conservatism (and vice versa). Keeping the direction of the scale in mind is crucial for understanding hierarchical covariates in ideal point models. diff --git a/vignettes/Time_Series.Rmd b/vignettes/Time_Series.Rmd index 38b98ec..f2d8f9c 100644 --- a/vignettes/Time_Series.Rmd +++ b/vignettes/Time_Series.Rmd @@ -130,7 +130,7 @@ sen_est <- id_estimate(senate_data, restrict_ind_low="BARRASSO, John A.", seed=84520) -id_plot_legis_dyn(sen_est,use_ci = F) +id_plot_legis_dyn(sen_est,use_ci = F) + ggtitle('Time-Varying Ideal Points of 114th U.S. Senate',subtitle='Ideal Points Vary with Random-Walk Process') ``` We now see slightly more movement. Republicans as a whole have moved slightly farther away from Democrats. Elizabeth Warren appears to move more, but we constrained her first time point so that may indicate why she moved over time. @@ -138,7 +138,7 @@ We now see slightly more movement. Republicans as a whole have moved slightly fa We can also look at the variance of the ideal points to see which of the Senators had the highest variance in their ideal points: ```{r rw_var_est,fig.height=8} -id_plot_legis_var(sen_est) +id_plot_legis_var(sen_est) + ggtitle('Variances of Time-Varying Ideal Points in 114th U.S. Senate',subtitle='Higher Variances Indicate Less Stable Ideal Points') ``` We can access the actual estimates of the variances by passing the `return_data=TRUE` option to the plot function: