29 array[]
int sl, array[]
int csl,
30 array[]
int nsl, array[]
int cnsl, array[]
int obs_lookup,
31 array[] vector imp_obs, array[]
int sg,
32 array[]
int st, array[,]
int rdlurd,
33 vector srdlh, matrix refp_lh, array[]
int dpmfs,
34 int ref_p,
int rep_h,
int ref_as_p, array[] real phi,
35 int model_obs, vector refnp_lh,
int ref_np,
36 array[]
int sdmax, array[]
int csdmax,
37 int rep_agg_p, array[,,]
int rep_agg_n_selected,
38 array[,,,]
int rep_agg_selected_idx,
39 int model_delay_only, array[]
int dlo_total) {
47 vector[n[3]] log_exp_obs;
51 start, end, imp_obs, rdlurd, srdlh, refp_lh, dpmfs, ref_p, rep_h, ref_as_p, sl, csl, sg, st, n[3], refnp_lh, ref_np, sdmax, csdmax, rep_agg_p, rep_agg_n_selected,
55 if (model_delay_only) {
60 profile(
"model_likelihood_delay_multinomial") {
62 start, end, obs, log_exp_obs, n[1], dlo_total, obs_lookup,
68 array[nc[3]]
int filt_obs = segment(obs, nc[1], nc[3]);
69 array[nc[3]]
int filt_obs_lookup = segment(obs_lookup, nc[1], nc[3]);
70 array[nc[3]]
int filt_obs_lookup_local;
72 filt_obs_lookup_local[i] = filt_obs_lookup[i] - n[1] + 1;
75 profile(
"model_likelihood_neg_binomial") {
77 filt_obs | log_exp_obs[filt_obs_lookup_local], phi, model_obs
139 array[]
int sl, array[]
int csl, array[]
int nsl,
140 array[]
int cnsl, array[]
int obs_lookup,
141 array[] vector imp_obs,
int t, array[]
int sg,
142 array[,]
int ts, array[]
int st,
143 array[,]
int rdlurd, vector srdlh, matrix refp_lh,
144 array[]
int dpmfs,
int ref_p,
int rep_h,
int ref_as_p,
145 array[] real phi,
int model_obs,
int model_miss,
146 int miss_obs, array[]
int missing_reference,
147 array[,]
int obs_by_report, vector miss_ref_lprop,
148 array[]
int sdmax, array[]
int csdmax,
149 array[]
int miss_st, array[]
int miss_cst,
150 vector refnp_lh,
int ref_np,
151 int rep_agg_p, array[,,]
int rep_agg_n_selected,
152 array[,,,]
int rep_agg_selected_idx,
153 int model_delay_only, array[]
int dlo_total) {
156 int i_start = ts[1, start];
157 int i_end = ts[t, end];
164 vector[n[3]] log_exp_obs;
165 vector[model_miss ? miss_obs : 0] log_exp_obs_miss;
173 vector[f[3]] log_exp_all;
177 i_start, i_end, imp_obs, rdlurd, srdlh, refp_lh, dpmfs, ref_p, rep_h, ref_as_p, sdmax, csdmax, sg, st, f[3], refnp_lh, ref_np, sdmax, csdmax, rep_agg_p, rep_agg_n_selected,
183 i_start, i_end, log_exp_all, sl, csl, sdmax, csdmax
186 i_start, i_end, log_exp_obs, sl, csl, log1m_exp(miss_ref_lprop)
192 i_start, i_end, log_exp_all, sdmax, csdmax, miss_ref_lprop
195 log_exp_all, obs_by_report[l[1]:l[2]]
200 i_start, i_end, imp_obs, rdlurd, srdlh, refp_lh, dpmfs, ref_p, rep_h, ref_as_p, sl, csl, sg, st, n[3], refnp_lh, ref_np, sdmax, csdmax, rep_agg_p, rep_agg_n_selected,
207 if (model_delay_only) {
208 profile(
"model_likelihood_delay_multinomial") {
211 i_start, i_end, obs, log_exp_obs, n[1], dlo_total, obs_lookup,
219 profile(
"model_likelihood_neg_binomial") {
222 array[nc[3]]
int filt_obs = segment(obs, nc[1], nc[3]);
223 array[nc[3]]
int filt_obs_lookup = segment(obs_lookup, nc[1], nc[3]);
224 array[nc[3]]
int filt_obs_lookup_local;
226 filt_obs_lookup_local[i] = filt_obs_lookup[i] - n[1] + 1;
231 filt_obs | log_exp_obs[filt_obs_lookup_local], phi, model_obs
234 if (model_miss && miss_obs) {
236 array[l[3]]
int filt_miss_ref = segment(missing_reference, l[1], l[3]);
237 tar +=
obs_lpmf(filt_miss_ref | log_exp_obs_miss, phi, model_obs);
vector allocate_observed_obs(int start, int end, vector obs, array[] int sl, array[] int csl, array[] int sdmax, array[] int csdmax)
vector apply_missing_reference_effects(int start, int end, vector obs, array[] int sl, array[] int csl, vector miss_ref_lprop)
real delay_group_lpmf(array[] int groups, int start, int end, array[] int obs, array[] int sl, array[] int csl, array[] int nsl, array[] int cnsl, array[] int obs_lookup, array[] vector imp_obs, int t, array[] int sg, array[,] int ts, array[] int st, array[,] int rdlurd, vector srdlh, matrix refp_lh, array[] int dpmfs, int ref_p, int rep_h, int ref_as_p, array[] real phi, int model_obs, int model_miss, int miss_obs, array[] int missing_reference, array[,] int obs_by_report, vector miss_ref_lprop, array[] int sdmax, array[] int csdmax, array[] int miss_st, array[] int miss_cst, vector refnp_lh, int ref_np, int rep_agg_p, array[,,] int rep_agg_n_selected, array[,,,] int rep_agg_selected_idx, int model_delay_only, array[] int dlo_total)
real delay_snap_lpmf(array[] int dummy, int start, int end, array[] int obs, array[] int sl, array[] int csl, array[] int nsl, array[] int cnsl, array[] int obs_lookup, array[] vector imp_obs, array[] int sg, array[] int st, array[,] int rdlurd, vector srdlh, matrix refp_lh, array[] int dpmfs, int ref_p, int rep_h, int ref_as_p, array[] real phi, int model_obs, vector refnp_lh, int ref_np, array[] int sdmax, array[] int csdmax, int rep_agg_p, array[,,] int rep_agg_n_selected, array[,,,] int rep_agg_selected_idx, int model_delay_only, array[] int dlo_total)
real delay_multinomial_snaps(int start, int end, array[] int obs, vector log_exp_obs, int exp_offset, array[] int total, array[] int obs_lookup, array[] int lsl, array[] int clsl, array[] int nsl, array[] int cnsl)
vector expected_obs_from_snaps(int start, int end, array[] vector imp_obs, array[,] int rdlurd, vector srdlh, matrix refp_lh, array[] int dpmfs, int ref_p, int rep_h, int ref_as_p, array[] int sl, array[] int csl, array[] int sg, array[] int st, int n, vector refnp_lh, int ref_np, array[] int sdmax, array[] int csdmax, int rep_agg_p, array[,,] int rep_agg_n_selected, array[,,,] int rep_agg_selected_idx)
array[] int filt_obs_indexes(int start, int end, array[] int csl, array[] int sl)
vector log_expected_by_report(vector log_exp, array[,] int obs_by_report)
real obs_lpmf(array[] int obs, vector log_exp_obs, array[] real phi, int model_obs)