epinowcast
Loading...
Searching...
No Matches
obs_rng.stan
Go to the documentation of this file.
1
21array[] int obs_rng(vector log_exp_obs, array[] real phi, int model_obs) {
22 int n = num_elements(log_exp_obs);
23 array[n] int pp;
24
25 // Handle -Inf values (structural zeros from reporting aggregation)
26 // For days with zero reporting probability, set prediction to 0
27 for (i in 1:n) {
28 if (is_inf(log_exp_obs[i])) {
29 pp[i] = 0;
30 } else {
31 if (model_obs == 0) {
32 pp[i] = poisson_log_rng(log_exp_obs[i]);
33 } else if (model_obs == 1) {
34 pp[i] = neg_binomial_2_log_rng(log_exp_obs[i], phi[1]);
35 } else {
36 real log_phi_nb1 = log_exp_obs[i] + log(phi[1]);
37 pp[i] = neg_binomial_2_log_rng(log_exp_obs[i], exp(log_phi_nb1));
38 }
39 }
40 }
41 return(pp);
42}
array[] int obs_rng(vector log_exp_obs, array[] real phi, int model_obs)
Definition obs_rng.stan:21