From 0e896ff96a5f07948f13e8b29040ebcb340b21a5 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Mon, 17 Apr 2023 15:45:33 +0200 Subject: [PATCH 01/31] Added pathfinder paper tag --- posterior_database/posteriors/arK-arK.json | 2 +- posterior_database/posteriors/arma-arma11.json | 2 +- .../posteriors/bball_drive_event_0-hmm_drive_0.json | 2 +- .../posteriors/bball_drive_event_1-hmm_drive_1.json | 2 +- posterior_database/posteriors/diamonds-diamonds.json | 2 +- posterior_database/posteriors/dogs-dogs.json | 2 +- .../posteriors/earnings-logearn_interaction.json | 2 +- .../posteriors/eight_schools-eight_schools_centered.json | 2 +- .../posteriors/eight_schools-eight_schools_noncentered.json | 2 +- posterior_database/posteriors/garch-garch11.json | 3 ++- posterior_database/posteriors/gp_pois_regr-gp_regr.json | 2 +- .../posteriors/hudson_lynx_hare-lotka_volterra.json | 2 +- .../posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json | 2 +- posterior_database/posteriors/mcycle_gp-accel_gp.json | 2 +- posterior_database/posteriors/nes2000-nes.json | 2 +- .../posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json | 2 +- posterior_database/posteriors/sblrc-blr.json | 2 +- 17 files changed, 18 insertions(+), 17 deletions(-) diff --git a/posterior_database/posteriors/arK-arK.json b/posterior_database/posteriors/arK-arK.json index f3b038d2..b57b7df6 100644 --- a/posterior_database/posteriors/arK-arK.json +++ b/posterior_database/posteriors/arK-arK.json @@ -1,7 +1,7 @@ { "name": "arK-arK", "keywords": [ - "stan_benchmark" + "stan_benchmark", "pathfinder_paper" ], "model_name": "arK", "reference_posterior_name": "arK-arK", diff --git a/posterior_database/posteriors/arma-arma11.json b/posterior_database/posteriors/arma-arma11.json index a0c32b9a..268be7a2 100644 --- a/posterior_database/posteriors/arma-arma11.json +++ b/posterior_database/posteriors/arma-arma11.json @@ -1,7 +1,7 @@ { "name": "arma-arma11", "keywords": [ - "stan_benchmark" + "stan_benchmark", "pathfinder_paper", "time series" ], "urls": [], "model_name": "arma11", diff --git a/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json b/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json index 7d868512..c428c760 100644 --- a/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json +++ b/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json @@ -1,6 +1,6 @@ { "name": "bball_drive_event_0-hmm_drive_0", - "keywords": ["stan_examples", "stan_benchmark"], + "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper"], "urls": "https://github.com/imadmali/bball-hmm/blob/master", "model_name": "hmm_drive_0", "data_name": "bball_drive_event_0", diff --git a/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json b/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json index 208f6738..b06b32c3 100644 --- a/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json +++ b/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json @@ -1,6 +1,6 @@ { "name": "bball_drive_event_1-hmm_drive_1", - "keywords": ["stan_examples", "stan_benchmark"], + "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper"], "urls": "https://github.com/imadmali/bball-hmm/blob/master", "model_name": "hmm_drive_1", "data_name": "bball_drive_event_1", diff --git a/posterior_database/posteriors/diamonds-diamonds.json b/posterior_database/posteriors/diamonds-diamonds.json index ef27a5fe..154debed 100644 --- a/posterior_database/posteriors/diamonds-diamonds.json +++ b/posterior_database/posteriors/diamonds-diamonds.json @@ -1,6 +1,6 @@ { "name": "diamonds-diamonds", - "keywords": ["stan_benchmark", "linear regression"], + "keywords": ["stan_benchmark", "linear regression", "pathfinder_paper"], "urls": "https://github.com/bbbales2/cmdstan-warmup/blob/develop/examples/diamonds", "model_name": "diamonds", "data_name": "diamonds", diff --git a/posterior_database/posteriors/dogs-dogs.json b/posterior_database/posteriors/dogs-dogs.json index 0f89838d..7fc06ec7 100644 --- a/posterior_database/posteriors/dogs-dogs.json +++ b/posterior_database/posteriors/dogs-dogs.json @@ -1,6 +1,6 @@ { "name": "dogs-dogs", - "keywords": ["ARM", "Ch. 24", "stan_examples"], + "keywords": ["arm_book", "stan_examples", "pathfinder_paper"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.24", "model_name": "dogs", "data_name": "dogs", diff --git a/posterior_database/posteriors/earnings-logearn_interaction.json b/posterior_database/posteriors/earnings-logearn_interaction.json index adf3022c..9919a51c 100644 --- a/posterior_database/posteriors/earnings-logearn_interaction.json +++ b/posterior_database/posteriors/earnings-logearn_interaction.json @@ -1,6 +1,6 @@ { "name": "earnings-logearn_interaction", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples", "pathfinder_paper"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logearn_interaction", "data_name": "earnings", diff --git a/posterior_database/posteriors/eight_schools-eight_schools_centered.json b/posterior_database/posteriors/eight_schools-eight_schools_centered.json index 4a872c02..329bb636 100644 --- a/posterior_database/posteriors/eight_schools-eight_schools_centered.json +++ b/posterior_database/posteriors/eight_schools-eight_schools_centered.json @@ -1,7 +1,7 @@ { "name": "eight_schools-eight_schools_centered", "keywords": [ - "stan_benchmark" + "stan_benchmark", "pathfinder_paper" ], "model_name": "eight_schools_centered", "reference_posterior_name": "eight_schools-eight_schools_noncentered", diff --git a/posterior_database/posteriors/eight_schools-eight_schools_noncentered.json b/posterior_database/posteriors/eight_schools-eight_schools_noncentered.json index ab4cd754..b27b95b6 100644 --- a/posterior_database/posteriors/eight_schools-eight_schools_noncentered.json +++ b/posterior_database/posteriors/eight_schools-eight_schools_noncentered.json @@ -1,7 +1,7 @@ { "name": "eight_schools-eight_schools_noncentered", "keywords": [ - "stan_benchmark" + "stan_benchmark", "pathfinder_paper" ], "model_name": "eight_schools_noncentered", "reference_posterior_name": "eight_schools-eight_schools_noncentered", diff --git a/posterior_database/posteriors/garch-garch11.json b/posterior_database/posteriors/garch-garch11.json index 5d6fe5cb..a6677bfd 100644 --- a/posterior_database/posteriors/garch-garch11.json +++ b/posterior_database/posteriors/garch-garch11.json @@ -2,7 +2,8 @@ "name": "garch-garch11", "keywords": [ "stan_benchmark", - "time series" + "time series", + "pathfinder_paper" ], "urls": [], "model_name": "garch11", diff --git a/posterior_database/posteriors/gp_pois_regr-gp_regr.json b/posterior_database/posteriors/gp_pois_regr-gp_regr.json index e5e5006d..9aa46222 100644 --- a/posterior_database/posteriors/gp_pois_regr-gp_regr.json +++ b/posterior_database/posteriors/gp_pois_regr-gp_regr.json @@ -1,7 +1,7 @@ { "name": "gp_pois_regr-gp_regr", "keywords": [ - "stan_benchmark" + "stan_benchmark", "pathfinder_paper" ], "urls": [], "model_name": "gp_regr", diff --git a/posterior_database/posteriors/hudson_lynx_hare-lotka_volterra.json b/posterior_database/posteriors/hudson_lynx_hare-lotka_volterra.json index ccf865f5..5dfcbecd 100644 --- a/posterior_database/posteriors/hudson_lynx_hare-lotka_volterra.json +++ b/posterior_database/posteriors/hudson_lynx_hare-lotka_volterra.json @@ -1,6 +1,6 @@ { "name": "hudson_lynx_hare-lotka_volterra", - "keywords": ["stan_examples", "stan_benchmark"], + "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper"], "urls": "https://github.com/stan-dev/example-models/blob/master/knitr/lotka-volterra", "model_name": "lotka_volterra", "data_name": "hudson_lynx_hare", diff --git a/posterior_database/posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json b/posterior_database/posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json index f2889312..156ba3e2 100644 --- a/posterior_database/posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json +++ b/posterior_database/posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json @@ -1,7 +1,7 @@ { "name": "low_dim_gauss_mix-low_dim_gauss_mix", "keywords": [ - "stan_benchmark" + "stan_benchmark", "pathfinder_paper" ], "urls": [], "model_name": "low_dim_gauss_mix", diff --git a/posterior_database/posteriors/mcycle_gp-accel_gp.json b/posterior_database/posteriors/mcycle_gp-accel_gp.json index 66ae2900..4be62f16 100644 --- a/posterior_database/posteriors/mcycle_gp-accel_gp.json +++ b/posterior_database/posteriors/mcycle_gp-accel_gp.json @@ -1,6 +1,6 @@ { "name": "mcycle_gp-accel_gp", - "keywords": ["stan_benchmark", "gaussian process"], + "keywords": ["stan_benchmark", "gaussian process", "pathfinder_paper"], "urls": "https://github.com/bbbales2/cmdstan-warmup/blob/develop/examples/accel_gp", "model_name": "accel_gp", "data_name": "mcycle_gp", diff --git a/posterior_database/posteriors/nes2000-nes.json b/posterior_database/posteriors/nes2000-nes.json index 4ef809c7..7c444e1d 100644 --- a/posterior_database/posteriors/nes2000-nes.json +++ b/posterior_database/posteriors/nes2000-nes.json @@ -1,6 +1,6 @@ { "name": "nes2000-nes", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples", "pathfinder_paper"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes2000", diff --git a/posterior_database/posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json b/posterior_database/posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json index 81b72c8c..048325fe 100644 --- a/posterior_database/posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json +++ b/posterior_database/posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json @@ -1,7 +1,7 @@ { "name": "one_comp_mm_elim_abs-one_comp_mm_elim_abs", "keywords": [ - "stan_benchmark" + "stan_benchmark", "pathfinder_paper" ], "urls": [], "model_name": "one_comp_mm_elim_abs", diff --git a/posterior_database/posteriors/sblrc-blr.json b/posterior_database/posteriors/sblrc-blr.json index c689663c..41c45895 100644 --- a/posterior_database/posteriors/sblrc-blr.json +++ b/posterior_database/posteriors/sblrc-blr.json @@ -1,6 +1,6 @@ { "name": "sblrc-blr", - "keywords": [], + "keywords": ["pathfinder_paper"], "urls": [], "model_name": "blr", "data_name": "sblrc", From 6f9db16a3cefd1379d4a563a0583d41015a897cb Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Mon, 17 Apr 2023 15:57:25 +0200 Subject: [PATCH 02/31] Added mixture models tags --- .../posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json | 2 +- .../low_dim_gauss_mix_collapse-low_dim_gauss_mix_collapse.json | 2 +- posterior_database/posteriors/normal_2-normal_mixture.json | 2 +- posterior_database/posteriors/normal_5-normal_mixture_k.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/posterior_database/posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json b/posterior_database/posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json index 156ba3e2..712075be 100644 --- a/posterior_database/posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json +++ b/posterior_database/posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json @@ -1,7 +1,7 @@ { "name": "low_dim_gauss_mix-low_dim_gauss_mix", "keywords": [ - "stan_benchmark", "pathfinder_paper" + "stan_benchmark", "pathfinder_paper", "mixture model" ], "urls": [], "model_name": "low_dim_gauss_mix", diff --git a/posterior_database/posteriors/low_dim_gauss_mix_collapse-low_dim_gauss_mix_collapse.json b/posterior_database/posteriors/low_dim_gauss_mix_collapse-low_dim_gauss_mix_collapse.json index a7b47d7f..0a8009f8 100644 --- a/posterior_database/posteriors/low_dim_gauss_mix_collapse-low_dim_gauss_mix_collapse.json +++ b/posterior_database/posteriors/low_dim_gauss_mix_collapse-low_dim_gauss_mix_collapse.json @@ -1,7 +1,7 @@ { "name": "low_dim_gauss_mix_collapse-low_dim_gauss_mix_collapse", "keywords": [ - "stan_benchmark" + "stan_benchmark", "mixture model" ], "urls": [], "model_name": "low_dim_gauss_mix_collapse", diff --git a/posterior_database/posteriors/normal_2-normal_mixture.json b/posterior_database/posteriors/normal_2-normal_mixture.json index 0d504aba..779f9703 100644 --- a/posterior_database/posteriors/normal_2-normal_mixture.json +++ b/posterior_database/posteriors/normal_2-normal_mixture.json @@ -1,6 +1,6 @@ { "name": "normal_2-normal_mixture", - "keywords": ["basic_estimators", "stan_examples"], + "keywords": ["stan_examples", "mixture model"], "urls": "https://github.com/stan-dev/example-models/tree/master/basic_estimators", "model_name": "normal_mixture", "data_name": "normal_2", diff --git a/posterior_database/posteriors/normal_5-normal_mixture_k.json b/posterior_database/posteriors/normal_5-normal_mixture_k.json index 82b99c23..c4a99e32 100644 --- a/posterior_database/posteriors/normal_5-normal_mixture_k.json +++ b/posterior_database/posteriors/normal_5-normal_mixture_k.json @@ -1,6 +1,6 @@ { "name": "normal_5-normal_mixture_k", - "keywords": ["basic_estimators", "stan_examples"], + "keywords": ["stan_examples", "mixture model"], "urls": "https://github.com/stan-dev/example-models/tree/master/basic_estimators", "model_name": "normal_mixture_k", "data_name": "normal_5", From 01b4bbbf951d9f313c9771fe5a399f96dd662400 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Mon, 17 Apr 2023 15:57:38 +0200 Subject: [PATCH 03/31] Init keywords --- doc/KEYWORDS.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 doc/KEYWORDS.md diff --git a/doc/KEYWORDS.md b/doc/KEYWORDS.md new file mode 100644 index 00000000..f84745e9 --- /dev/null +++ b/doc/KEYWORDS.md @@ -0,0 +1,16 @@ +Posterior keywords +================== + +Below are the definition of some of the keywords used: + +```arm book```: Posteriors that can be found in Gelman, A., & Hill, J. (2006). Data analysis using regression and multilevel/hierarchical models. Cambridge university press. + +```easy```: Posteriors that can be computed with standard Stan settings (adapt delta = 0.8) without any divergent transitions for 10 000 draws and on average uses less than 100 leapfrog steps. + +```slow```: Posteriors that takes more than 1h to run 1000 iterations/warmup on a standard CPU. The difficulties can be due to different reasons. + +```pathfinder paper```: Posteriors used in Zhang, L., Carpenter, B., Gelman, A., & Vehtari, A. (2022). Pathfinder: Parallel quasi-Newton variational inference. Journal of Machine Learning Research, 23(306), 1-49. + + + + From 48df418af92d1151f54c8025edde3bf0ee46d146 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Mon, 17 Apr 2023 15:58:55 +0200 Subject: [PATCH 04/31] Added DE tags --- .../posteriors/hudson_lynx_hare-lotka_volterra.json | 2 +- .../posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/posterior_database/posteriors/hudson_lynx_hare-lotka_volterra.json b/posterior_database/posteriors/hudson_lynx_hare-lotka_volterra.json index 5dfcbecd..8eefb21c 100644 --- a/posterior_database/posteriors/hudson_lynx_hare-lotka_volterra.json +++ b/posterior_database/posteriors/hudson_lynx_hare-lotka_volterra.json @@ -1,6 +1,6 @@ { "name": "hudson_lynx_hare-lotka_volterra", - "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper"], + "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper", "differential equation model"], "urls": "https://github.com/stan-dev/example-models/blob/master/knitr/lotka-volterra", "model_name": "lotka_volterra", "data_name": "hudson_lynx_hare", diff --git a/posterior_database/posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json b/posterior_database/posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json index 048325fe..360b31ba 100644 --- a/posterior_database/posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json +++ b/posterior_database/posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json @@ -1,7 +1,7 @@ { "name": "one_comp_mm_elim_abs-one_comp_mm_elim_abs", "keywords": [ - "stan_benchmark", "pathfinder_paper" + "stan_benchmark", "pathfinder_paper", "differential equation model" ], "urls": [], "model_name": "one_comp_mm_elim_abs", From fb2305303bb2a754511d27e58c1c770361f0d1b0 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Mon, 17 Apr 2023 15:59:54 +0200 Subject: [PATCH 05/31] Added Hidden Markov Model keywords --- .../posteriors/bball_drive_event_0-hmm_drive_0.json | 2 +- .../posteriors/bball_drive_event_1-hmm_drive_1.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json b/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json index c428c760..489e93fe 100644 --- a/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json +++ b/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json @@ -1,6 +1,6 @@ { "name": "bball_drive_event_0-hmm_drive_0", - "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper"], + "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper", "hidden markov model"], "urls": "https://github.com/imadmali/bball-hmm/blob/master", "model_name": "hmm_drive_0", "data_name": "bball_drive_event_0", diff --git a/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json b/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json index b06b32c3..8dbcdac4 100644 --- a/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json +++ b/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json @@ -1,6 +1,6 @@ { "name": "bball_drive_event_1-hmm_drive_1", - "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper"], + "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper", "hidden markov model"], "urls": "https://github.com/imadmali/bball-hmm/blob/master", "model_name": "hmm_drive_1", "data_name": "bball_drive_event_1", From 36ea0ba26733667576ba8765babeb836d4a249c2 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Mon, 17 Apr 2023 16:03:04 +0200 Subject: [PATCH 06/31] Added GP models --- doc/KEYWORDS.md | 2 +- posterior_database/posteriors/gp_pois_regr-gp_pois_regr.json | 2 +- posterior_database/posteriors/gp_pois_regr-gp_regr.json | 2 +- .../state_wide_presidential_votes-hierarchical_gp.json | 3 +++ .../posteriors/synthetic_grid_RBF_kernels-kronecker_gp.json | 3 +++ 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/doc/KEYWORDS.md b/doc/KEYWORDS.md index f84745e9..d31ba54b 100644 --- a/doc/KEYWORDS.md +++ b/doc/KEYWORDS.md @@ -1,7 +1,7 @@ Posterior keywords ================== -Below are the definition of some of the keywords used: +Below are the definition of some of the keywords used. These are tags added to posterior that we known. Hence, there might exist posteriors that should have the keyword where it is currently missing. If you see this, please file an issue and we will try to fix it. ```arm book```: Posteriors that can be found in Gelman, A., & Hill, J. (2006). Data analysis using regression and multilevel/hierarchical models. Cambridge university press. diff --git a/posterior_database/posteriors/gp_pois_regr-gp_pois_regr.json b/posterior_database/posteriors/gp_pois_regr-gp_pois_regr.json index 565d524c..0809cc13 100644 --- a/posterior_database/posteriors/gp_pois_regr-gp_pois_regr.json +++ b/posterior_database/posteriors/gp_pois_regr-gp_pois_regr.json @@ -1,7 +1,7 @@ { "name": "gp_pois_regr-gp_pois_regr", "keywords": [ - "stan_benchmark" + "stan_benchmark", "gaussian process model" ], "urls": [], "model_name": "gp_pois_regr", diff --git a/posterior_database/posteriors/gp_pois_regr-gp_regr.json b/posterior_database/posteriors/gp_pois_regr-gp_regr.json index 9aa46222..47545351 100644 --- a/posterior_database/posteriors/gp_pois_regr-gp_regr.json +++ b/posterior_database/posteriors/gp_pois_regr-gp_regr.json @@ -1,7 +1,7 @@ { "name": "gp_pois_regr-gp_regr", "keywords": [ - "stan_benchmark", "pathfinder_paper" + "stan_benchmark", "pathfinder_paper", "gaussian process model" ], "urls": [], "model_name": "gp_regr", diff --git a/posterior_database/posteriors/state_wide_presidential_votes-hierarchical_gp.json b/posterior_database/posteriors/state_wide_presidential_votes-hierarchical_gp.json index 189e0b10..394e42da 100644 --- a/posterior_database/posteriors/state_wide_presidential_votes-hierarchical_gp.json +++ b/posterior_database/posteriors/state_wide_presidential_votes-hierarchical_gp.json @@ -1,5 +1,8 @@ { "name": "state_wide_presidential_votes-hierarchical_gp", + "keywords": [ + "gaussian process model" + ], "model_name": "hierarchical_gp", "data_name": "state_wide_presidential_votes", "reference_posterior_name": null, diff --git a/posterior_database/posteriors/synthetic_grid_RBF_kernels-kronecker_gp.json b/posterior_database/posteriors/synthetic_grid_RBF_kernels-kronecker_gp.json index 9e2c553e..5ed97b65 100644 --- a/posterior_database/posteriors/synthetic_grid_RBF_kernels-kronecker_gp.json +++ b/posterior_database/posteriors/synthetic_grid_RBF_kernels-kronecker_gp.json @@ -1,5 +1,8 @@ { "name": "synthetic_grid_RBF_kernels-kronecker_gp", + "keywords": [ + "gaussian process model" + ], "model_name": "kronecker_gp", "data_name": "synthetic_grid_RBF_kernels", "reference_posterior_name": null, From b67a8266011ee85298975dfa899590bcb498ccc9 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Mon, 17 Apr 2023 20:29:17 +0200 Subject: [PATCH 07/31] Update interaction --- posterior_database/posteriors/earnings-logearn_interaction.json | 2 +- .../posteriors/earnings-logearn_interaction_z.json | 2 +- posterior_database/posteriors/kidiq-kidscore_interaction.json | 2 +- .../posteriors/kidiq_with_mom_work-kidscore_interaction_c.json | 2 +- .../posteriors/kidiq_with_mom_work-kidscore_interaction_c2.json | 2 +- .../posteriors/kidiq_with_mom_work-kidscore_interaction_z.json | 2 +- .../posteriors/wells_data-wells_interaction_c_model.json | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/posterior_database/posteriors/earnings-logearn_interaction.json b/posterior_database/posteriors/earnings-logearn_interaction.json index 9919a51c..9860d218 100644 --- a/posterior_database/posteriors/earnings-logearn_interaction.json +++ b/posterior_database/posteriors/earnings-logearn_interaction.json @@ -1,6 +1,6 @@ { "name": "earnings-logearn_interaction", - "keywords": ["arm_book", "stan_examples", "pathfinder_paper"], + "keywords": ["arm_book", "stan_examples", "pathfinder_paper", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logearn_interaction", "data_name": "earnings", diff --git a/posterior_database/posteriors/earnings-logearn_interaction_z.json b/posterior_database/posteriors/earnings-logearn_interaction_z.json index a95d9a50..1fb51841 100644 --- a/posterior_database/posteriors/earnings-logearn_interaction_z.json +++ b/posterior_database/posteriors/earnings-logearn_interaction_z.json @@ -1,6 +1,6 @@ { "name": "earnings-logearn_interaction_z", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logearn_interaction_z", "data_name": "earnings", diff --git a/posterior_database/posteriors/kidiq-kidscore_interaction.json b/posterior_database/posteriors/kidiq-kidscore_interaction.json index 1513094c..c51b4e17 100644 --- a/posterior_database/posteriors/kidiq-kidscore_interaction.json +++ b/posterior_database/posteriors/kidiq-kidscore_interaction.json @@ -1,6 +1,6 @@ { "name": "kidiq-kidscore_interaction", - "keywords": ["ARM", "Ch. 3", "stan_examples"], + "keywords": ["arm_book", "stan_examples", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.3", "model_name": "kidscore_interaction", "data_name": "kidiq", diff --git a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c.json b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c.json index eb0f88ed..80da0241 100644 --- a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c.json +++ b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c.json @@ -1,6 +1,6 @@ { "name": "kidiq_with_mom_work-kidscore_interaction_c", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "kidscore_interaction_c", "data_name": "kidiq_with_mom_work", diff --git a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c2.json b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c2.json index 2daebbce..f2f7dc66 100644 --- a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c2.json +++ b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c2.json @@ -1,6 +1,6 @@ { "name": "kidiq_with_mom_work-kidscore_interaction_c2", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "kidscore_interaction_c2", "data_name": "kidiq_with_mom_work", diff --git a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_z.json b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_z.json index f8927328..2a217bec 100644 --- a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_z.json +++ b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_z.json @@ -1,6 +1,6 @@ { "name": "kidiq_with_mom_work-kidscore_interaction_z", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "kidscore_interaction_z", "data_name": "kidiq_with_mom_work", diff --git a/posterior_database/posteriors/wells_data-wells_interaction_c_model.json b/posterior_database/posteriors/wells_data-wells_interaction_c_model.json index 74c2b7a8..0327c3e4 100644 --- a/posterior_database/posteriors/wells_data-wells_interaction_c_model.json +++ b/posterior_database/posteriors/wells_data-wells_interaction_c_model.json @@ -1,5 +1,5 @@ { - "keywords": ["wells", "ARM", "Ch.5", "logistic", "regression", "scaled", "two predictors", "arsenic", "distance", "interaction"], + "keywords": ["arm_book", "logistic regression", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { From 8d6cb232009806c6a45b0e34009030b0b8f736a2 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Mon, 17 Apr 2023 20:47:57 +0200 Subject: [PATCH 08/31] Update ARM tags --- .../posteriors/bball_drive_event_0-hmm_drive_0.json | 2 +- .../posteriors/bball_drive_event_1-hmm_drive_1.json | 2 +- posterior_database/posteriors/dogs-dogs_log.json | 2 +- posterior_database/posteriors/earnings-earn_height.json | 2 +- posterior_database/posteriors/earnings-log10earn_height.json | 2 +- posterior_database/posteriors/earnings-logearn_height.json | 2 +- posterior_database/posteriors/earnings-logearn_height_male.json | 2 +- .../posteriors/earnings-logearn_logheight_male.json | 2 +- posterior_database/posteriors/election88-election88_full.json | 2 +- posterior_database/posteriors/kidiq-kidscore_momhs.json | 2 +- posterior_database/posteriors/kidiq-kidscore_momhsiq.json | 2 +- posterior_database/posteriors/kidiq-kidscore_momiq.json | 2 +- .../posteriors/kidiq_with_mom_work-kidscore_mom_work.json | 2 +- posterior_database/posteriors/mesquite-logmesquite.json | 2 +- posterior_database/posteriors/mesquite-logmesquite_logva.json | 2 +- posterior_database/posteriors/mesquite-logmesquite_logvas.json | 2 +- posterior_database/posteriors/mesquite-logmesquite_logvash.json | 2 +- .../posteriors/mesquite-logmesquite_logvolume.json | 2 +- posterior_database/posteriors/mesquite-mesquite.json | 2 +- posterior_database/posteriors/mnist-nn_rbm1bJ100.json | 2 +- posterior_database/posteriors/mnist_100-nn_rbm1bJ10.json | 2 +- posterior_database/posteriors/nes1972-nes.json | 2 +- posterior_database/posteriors/nes1976-nes.json | 2 +- posterior_database/posteriors/nes1980-nes.json | 2 +- posterior_database/posteriors/nes1984-nes.json | 2 +- posterior_database/posteriors/nes1988-nes.json | 2 +- posterior_database/posteriors/nes1992-nes.json | 2 +- posterior_database/posteriors/nes1996-nes.json | 2 +- posterior_database/posteriors/pilots-pilots.json | 2 +- .../posteriors/wells_data-wells_daae_c_model.json | 2 +- posterior_database/posteriors/wells_data-wells_dae_c_model.json | 2 +- .../posteriors/wells_data-wells_dae_inter_model.json | 2 +- posterior_database/posteriors/wells_data-wells_dae_model.json | 2 +- posterior_database/posteriors/wells_data-wells_dist.json | 2 +- .../posteriors/wells_data-wells_dist100_model.json | 2 +- .../posteriors/wells_data-wells_dist100ars_model.json | 2 +- .../posteriors/wells_data-wells_interaction_model.json | 2 +- 37 files changed, 37 insertions(+), 37 deletions(-) diff --git a/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json b/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json index 489e93fe..504b089f 100644 --- a/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json +++ b/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json @@ -1,6 +1,6 @@ { "name": "bball_drive_event_0-hmm_drive_0", - "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper", "hidden markov model"], + "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper", "hidden markov model", "multimodal"], "urls": "https://github.com/imadmali/bball-hmm/blob/master", "model_name": "hmm_drive_0", "data_name": "bball_drive_event_0", diff --git a/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json b/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json index 8dbcdac4..89a8ffae 100644 --- a/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json +++ b/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json @@ -1,6 +1,6 @@ { "name": "bball_drive_event_1-hmm_drive_1", - "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper", "hidden markov model"], + "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper", "hidden markov model", "multimodal"], "urls": "https://github.com/imadmali/bball-hmm/blob/master", "model_name": "hmm_drive_1", "data_name": "bball_drive_event_1", diff --git a/posterior_database/posteriors/dogs-dogs_log.json b/posterior_database/posteriors/dogs-dogs_log.json index a7a4e710..6b26c628 100644 --- a/posterior_database/posteriors/dogs-dogs_log.json +++ b/posterior_database/posteriors/dogs-dogs_log.json @@ -1,6 +1,6 @@ { "name": "dogs-dogs_log", - "keywords": ["ARM", "Ch. 24", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.24", "model_name": "dogs_log", "data_name": "dogs", diff --git a/posterior_database/posteriors/earnings-earn_height.json b/posterior_database/posteriors/earnings-earn_height.json index a151b19f..d6b33dc8 100644 --- a/posterior_database/posteriors/earnings-earn_height.json +++ b/posterior_database/posteriors/earnings-earn_height.json @@ -1,6 +1,6 @@ { "name": "earnings-earn_height", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "earn_height", "data_name": "earnings", diff --git a/posterior_database/posteriors/earnings-log10earn_height.json b/posterior_database/posteriors/earnings-log10earn_height.json index 8cf05006..b4f18805 100644 --- a/posterior_database/posteriors/earnings-log10earn_height.json +++ b/posterior_database/posteriors/earnings-log10earn_height.json @@ -1,6 +1,6 @@ { "name": "earnings-log10earn_height", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "log10earn_height", "data_name": "earnings", diff --git a/posterior_database/posteriors/earnings-logearn_height.json b/posterior_database/posteriors/earnings-logearn_height.json index 4d77568d..81177706 100644 --- a/posterior_database/posteriors/earnings-logearn_height.json +++ b/posterior_database/posteriors/earnings-logearn_height.json @@ -1,6 +1,6 @@ { "name": "earnings-logearn_height", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logearn_height", "data_name": "earnings", diff --git a/posterior_database/posteriors/earnings-logearn_height_male.json b/posterior_database/posteriors/earnings-logearn_height_male.json index 31e28ec3..b5210744 100644 --- a/posterior_database/posteriors/earnings-logearn_height_male.json +++ b/posterior_database/posteriors/earnings-logearn_height_male.json @@ -1,6 +1,6 @@ { "name": "earnings-logearn_height_male", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logearn_height_male", "data_name": "earnings", diff --git a/posterior_database/posteriors/earnings-logearn_logheight_male.json b/posterior_database/posteriors/earnings-logearn_logheight_male.json index d1bad824..e730e741 100644 --- a/posterior_database/posteriors/earnings-logearn_logheight_male.json +++ b/posterior_database/posteriors/earnings-logearn_logheight_male.json @@ -1,6 +1,6 @@ { "name": "earnings-logearn_logheight_male", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logearn_logheight_male", "data_name": "earnings", diff --git a/posterior_database/posteriors/election88-election88_full.json b/posterior_database/posteriors/election88-election88_full.json index fe085fd8..56817671 100644 --- a/posterior_database/posteriors/election88-election88_full.json +++ b/posterior_database/posteriors/election88-election88_full.json @@ -1,6 +1,6 @@ { "name": "election88-election88_full", - "keywords": ["ARM", "Ch. 14", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.14", "model_name": "election88_full", "data_name": "election88", diff --git a/posterior_database/posteriors/kidiq-kidscore_momhs.json b/posterior_database/posteriors/kidiq-kidscore_momhs.json index 1a1cecc5..33c46af0 100644 --- a/posterior_database/posteriors/kidiq-kidscore_momhs.json +++ b/posterior_database/posteriors/kidiq-kidscore_momhs.json @@ -1,6 +1,6 @@ { "name": "kidiq-kidscore_momhs", - "keywords": ["ARM", "Ch. 3", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.3", "model_name": "kidscore_momhs", "data_name": "kidiq", diff --git a/posterior_database/posteriors/kidiq-kidscore_momhsiq.json b/posterior_database/posteriors/kidiq-kidscore_momhsiq.json index 3794e665..089c675a 100644 --- a/posterior_database/posteriors/kidiq-kidscore_momhsiq.json +++ b/posterior_database/posteriors/kidiq-kidscore_momhsiq.json @@ -1,6 +1,6 @@ { "name": "kidiq-kidscore_momhsiq", - "keywords": ["ARM", "Ch. 3", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.3", "model_name": "kidscore_momhsiq", "data_name": "kidiq", diff --git a/posterior_database/posteriors/kidiq-kidscore_momiq.json b/posterior_database/posteriors/kidiq-kidscore_momiq.json index 41bfe2b9..993de7a9 100644 --- a/posterior_database/posteriors/kidiq-kidscore_momiq.json +++ b/posterior_database/posteriors/kidiq-kidscore_momiq.json @@ -1,6 +1,6 @@ { "name": "kidiq-kidscore_momiq", - "keywords": ["ARM", "Ch. 3", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.3", "model_name": "kidscore_momiq", "data_name": "kidiq", diff --git a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_mom_work.json b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_mom_work.json index 5913ffae..fab452b9 100644 --- a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_mom_work.json +++ b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_mom_work.json @@ -1,6 +1,6 @@ { "name": "kidiq_with_mom_work-kidscore_mom_work", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "kidscore_mom_work", "data_name": "kidiq_with_mom_work", diff --git a/posterior_database/posteriors/mesquite-logmesquite.json b/posterior_database/posteriors/mesquite-logmesquite.json index 097fab14..3b350681 100644 --- a/posterior_database/posteriors/mesquite-logmesquite.json +++ b/posterior_database/posteriors/mesquite-logmesquite.json @@ -1,6 +1,6 @@ { "name": "mesquite-logmesquite", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logmesquite", "data_name": "mesquite", diff --git a/posterior_database/posteriors/mesquite-logmesquite_logva.json b/posterior_database/posteriors/mesquite-logmesquite_logva.json index dda408e4..215ba5d5 100644 --- a/posterior_database/posteriors/mesquite-logmesquite_logva.json +++ b/posterior_database/posteriors/mesquite-logmesquite_logva.json @@ -1,6 +1,6 @@ { "name": "mesquite-logmesquite_logva", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logmesquite_logva", "data_name": "mesquite", diff --git a/posterior_database/posteriors/mesquite-logmesquite_logvas.json b/posterior_database/posteriors/mesquite-logmesquite_logvas.json index 48430116..7d65a8f4 100644 --- a/posterior_database/posteriors/mesquite-logmesquite_logvas.json +++ b/posterior_database/posteriors/mesquite-logmesquite_logvas.json @@ -1,6 +1,6 @@ { "name": "mesquite-logmesquite_logvas", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logmesquite_logvas", "data_name": "mesquite", diff --git a/posterior_database/posteriors/mesquite-logmesquite_logvash.json b/posterior_database/posteriors/mesquite-logmesquite_logvash.json index f0005f31..db3195af 100644 --- a/posterior_database/posteriors/mesquite-logmesquite_logvash.json +++ b/posterior_database/posteriors/mesquite-logmesquite_logvash.json @@ -1,6 +1,6 @@ { "name": "mesquite-logmesquite_logvash", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logmesquite_logvash", "data_name": "mesquite", diff --git a/posterior_database/posteriors/mesquite-logmesquite_logvolume.json b/posterior_database/posteriors/mesquite-logmesquite_logvolume.json index cc06063c..d1c3b85d 100644 --- a/posterior_database/posteriors/mesquite-logmesquite_logvolume.json +++ b/posterior_database/posteriors/mesquite-logmesquite_logvolume.json @@ -1,6 +1,6 @@ { "name": "mesquite-logmesquite_logvolume", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logmesquite_logvolume", "data_name": "mesquite", diff --git a/posterior_database/posteriors/mesquite-mesquite.json b/posterior_database/posteriors/mesquite-mesquite.json index 2779c140..bcd87048 100644 --- a/posterior_database/posteriors/mesquite-mesquite.json +++ b/posterior_database/posteriors/mesquite-mesquite.json @@ -1,6 +1,6 @@ { "name": "mesquite-mesquite", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "mesquite", "data_name": "mesquite", diff --git a/posterior_database/posteriors/mnist-nn_rbm1bJ100.json b/posterior_database/posteriors/mnist-nn_rbm1bJ100.json index 7788058d..63d3257f 100644 --- a/posterior_database/posteriors/mnist-nn_rbm1bJ100.json +++ b/posterior_database/posteriors/mnist-nn_rbm1bJ100.json @@ -1,6 +1,6 @@ { "name": "mnist-nn_rbm1bJ100", - "keywords": "neural net", + "keywords": ["neural net", "multimodal"], "urls": null, "model_name": "nn_rbm1bJ100", "data_name": "mnist", diff --git a/posterior_database/posteriors/mnist_100-nn_rbm1bJ10.json b/posterior_database/posteriors/mnist_100-nn_rbm1bJ10.json index 881d625a..8ca52849 100644 --- a/posterior_database/posteriors/mnist_100-nn_rbm1bJ10.json +++ b/posterior_database/posteriors/mnist_100-nn_rbm1bJ10.json @@ -1,6 +1,6 @@ { "name": "mnist_100-nn_rbm1bJ10", - "keywords": "neural net", + "keywords": ["neural net", "multimodal"] "urls": null, "model_name": "nn_rbm1bJ10", "data_name": "mnist_100", diff --git a/posterior_database/posteriors/nes1972-nes.json b/posterior_database/posteriors/nes1972-nes.json index b443cb4d..1997f600 100644 --- a/posterior_database/posteriors/nes1972-nes.json +++ b/posterior_database/posteriors/nes1972-nes.json @@ -1,6 +1,6 @@ { "name": "nes1972-nes", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes1972", diff --git a/posterior_database/posteriors/nes1976-nes.json b/posterior_database/posteriors/nes1976-nes.json index d9420229..ba59147c 100644 --- a/posterior_database/posteriors/nes1976-nes.json +++ b/posterior_database/posteriors/nes1976-nes.json @@ -1,6 +1,6 @@ { "name": "nes1976-nes", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes1976", diff --git a/posterior_database/posteriors/nes1980-nes.json b/posterior_database/posteriors/nes1980-nes.json index a0eeb7b7..96a599b8 100644 --- a/posterior_database/posteriors/nes1980-nes.json +++ b/posterior_database/posteriors/nes1980-nes.json @@ -1,6 +1,6 @@ { "name": "nes1980-nes", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes1980", diff --git a/posterior_database/posteriors/nes1984-nes.json b/posterior_database/posteriors/nes1984-nes.json index a2af4f8a..27501878 100644 --- a/posterior_database/posteriors/nes1984-nes.json +++ b/posterior_database/posteriors/nes1984-nes.json @@ -1,6 +1,6 @@ { "name": "nes1984-nes", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes1984", diff --git a/posterior_database/posteriors/nes1988-nes.json b/posterior_database/posteriors/nes1988-nes.json index 59d6119c..d31859f3 100644 --- a/posterior_database/posteriors/nes1988-nes.json +++ b/posterior_database/posteriors/nes1988-nes.json @@ -1,6 +1,6 @@ { "name": "nes1988-nes", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes1988", diff --git a/posterior_database/posteriors/nes1992-nes.json b/posterior_database/posteriors/nes1992-nes.json index 6cf6642a..44d309b0 100644 --- a/posterior_database/posteriors/nes1992-nes.json +++ b/posterior_database/posteriors/nes1992-nes.json @@ -1,6 +1,6 @@ { "name": "nes1992-nes", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes1992", diff --git a/posterior_database/posteriors/nes1996-nes.json b/posterior_database/posteriors/nes1996-nes.json index 05cdf5b0..9674bc20 100644 --- a/posterior_database/posteriors/nes1996-nes.json +++ b/posterior_database/posteriors/nes1996-nes.json @@ -1,6 +1,6 @@ { "name": "nes1996-nes", - "keywords": ["ARM", "Ch. 4", "stan_examples"], + "keywords": ["arm_book", "stan_examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes1996", diff --git a/posterior_database/posteriors/pilots-pilots.json b/posterior_database/posteriors/pilots-pilots.json index a914a65f..1adb1401 100644 --- a/posterior_database/posteriors/pilots-pilots.json +++ b/posterior_database/posteriors/pilots-pilots.json @@ -1,6 +1,6 @@ { "name": "pilots-pilots", - "keywords": ["ARM", "Ch. 14", "stan_examples", "stan_benchmark"], + "keywords": ["arm_book", "stan_examples", "stan_benchmark"], "urls": "", "model_name": "pilots", "data_name": "pilots", diff --git a/posterior_database/posteriors/wells_data-wells_daae_c_model.json b/posterior_database/posteriors/wells_data-wells_daae_c_model.json index 6cab09cd..0557c7d4 100644 --- a/posterior_database/posteriors/wells_data-wells_daae_c_model.json +++ b/posterior_database/posteriors/wells_data-wells_daae_c_model.json @@ -1,5 +1,5 @@ { - "keywords": ["wells", "logistic", "regression", "scaled", "wells_daae_c", "social predictor", "centered"], + "keywords": ["arm_book", "logistic regression"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/wells_data-wells_dae_c_model.json b/posterior_database/posteriors/wells_data-wells_dae_c_model.json index 2d126d40..7e3919a2 100644 --- a/posterior_database/posteriors/wells_data-wells_dae_c_model.json +++ b/posterior_database/posteriors/wells_data-wells_dae_c_model.json @@ -1,5 +1,5 @@ { - "keywords": ["wells", "logistic", "regression", "scaled", "wells_dae_c", "social predictor", "centered"], + "keywords": ["arm_book", "logistic regression"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/wells_data-wells_dae_inter_model.json b/posterior_database/posteriors/wells_data-wells_dae_inter_model.json index efc3c835..d25fa9d0 100644 --- a/posterior_database/posteriors/wells_data-wells_dae_inter_model.json +++ b/posterior_database/posteriors/wells_data-wells_dae_inter_model.json @@ -1,5 +1,5 @@ { - "keywords": ["wells", "logistic", "regression", "scaled", "wells_dae_inter", "social predictor", "interaction", "centered"], + "keywords": ["arm_book", "logistic regression", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/wells_data-wells_dae_model.json b/posterior_database/posteriors/wells_data-wells_dae_model.json index be89a112..d99b18fc 100644 --- a/posterior_database/posteriors/wells_data-wells_dae_model.json +++ b/posterior_database/posteriors/wells_data-wells_dae_model.json @@ -1,5 +1,5 @@ { - "keywords": ["wells", "logistic", "regression", "scaled", "wells_dae", "social predictor"], + "keywords": ["arm_book", "logistic regression"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/wells_data-wells_dist.json b/posterior_database/posteriors/wells_data-wells_dist.json index 93a814da..07fe62a7 100644 --- a/posterior_database/posteriors/wells_data-wells_dist.json +++ b/posterior_database/posteriors/wells_data-wells_dist.json @@ -1,5 +1,5 @@ { - "keywords": ["wells", "logistic", "regression"], + "keywords": ["arm_book", "logistic regression"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/wells_data-wells_dist100_model.json b/posterior_database/posteriors/wells_data-wells_dist100_model.json index 12be30df..b8f27b85 100644 --- a/posterior_database/posteriors/wells_data-wells_dist100_model.json +++ b/posterior_database/posteriors/wells_data-wells_dist100_model.json @@ -1,5 +1,5 @@ { - "keywords": ["wells", "logistic", "regression", "scaled", "wells_dist100"], + "keywords": ["arm_book", "logistic regression"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/wells_data-wells_dist100ars_model.json b/posterior_database/posteriors/wells_data-wells_dist100ars_model.json index 94caa7ca..4eec99d1 100644 --- a/posterior_database/posteriors/wells_data-wells_dist100ars_model.json +++ b/posterior_database/posteriors/wells_data-wells_dist100ars_model.json @@ -1,5 +1,5 @@ { - "keywords": ["wells", "logistic", "regression", "scaled", "wells_d100ars"], + "keywords": ["arm_book", "logistic regression"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/wells_data-wells_interaction_model.json b/posterior_database/posteriors/wells_data-wells_interaction_model.json index 87992f79..9bb4eb6b 100644 --- a/posterior_database/posteriors/wells_data-wells_interaction_model.json +++ b/posterior_database/posteriors/wells_data-wells_interaction_model.json @@ -1,5 +1,5 @@ { - "keywords": ["wells", "ARM", "Ch.5", "logistic", "regression", "scaled", "two predictors", "arsenic", "distance", "interaction"], + "keywords": ["arm_book", "logistic regression", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { From 154e0f6b076066b052c20931bef91a71bf6b5345 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Mon, 24 Apr 2023 21:10:33 +0200 Subject: [PATCH 09/31] Updated tags --- .../posteriors/GLMM_Poisson_data-GLMM_Poisson_model.json | 2 +- posterior_database/posteriors/GLMM_data-GLMM1_model.json | 2 +- .../posteriors/GLM_Binomial_data-GLM_Binomial_model.json | 2 +- .../posteriors/GLM_Poisson_Data-GLM_Poisson_model.json | 2 +- posterior_database/posteriors/M0_data-M0_model.json | 2 +- posterior_database/posteriors/Mb_data-Mb_model.json | 2 +- posterior_database/posteriors/Mh_data-Mh_model.json | 2 +- posterior_database/posteriors/Mt_data-Mt_model.json | 2 +- posterior_database/posteriors/Mtbh_data-Mtbh_model.json | 2 +- posterior_database/posteriors/Mth_data-Mth_model.json | 2 +- posterior_database/posteriors/Rate_1_data-Rate_1_model.json | 2 +- posterior_database/posteriors/Rate_2_data-Rate_2_model.json | 2 +- posterior_database/posteriors/Rate_3_data-Rate_3_model.json | 2 +- posterior_database/posteriors/Rate_4_data-Rate_4_model.json | 2 +- posterior_database/posteriors/Rate_5_data-Rate_5_model.json | 2 +- posterior_database/posteriors/Survey_data-Survey_model.json | 3 --- posterior_database/posteriors/arK-arK.json | 2 +- posterior_database/posteriors/arma-arma11.json | 2 +- .../posteriors/bball_drive_event_0-hmm_drive_0.json | 2 +- .../posteriors/bball_drive_event_1-hmm_drive_1.json | 2 +- posterior_database/posteriors/bones_data-bones_model.json | 2 +- posterior_database/posteriors/butterfly-multi_occupancy.json | 2 +- posterior_database/posteriors/diamonds-diamonds.json | 2 +- posterior_database/posteriors/dogs-dogs.json | 2 +- posterior_database/posteriors/dogs-dogs_log.json | 2 +- posterior_database/posteriors/dugongs_data-dugongs_model.json | 2 +- posterior_database/posteriors/earnings-earn_height.json | 2 +- posterior_database/posteriors/earnings-log10earn_height.json | 2 +- posterior_database/posteriors/earnings-logearn_height.json | 2 +- .../posteriors/earnings-logearn_height_male.json | 2 +- .../posteriors/earnings-logearn_interaction.json | 2 +- .../posteriors/earnings-logearn_interaction_z.json | 2 +- .../posteriors/earnings-logearn_logheight_male.json | 2 +- .../posteriors/eight_schools-eight_schools_centered.json | 2 +- .../posteriors/eight_schools-eight_schools_noncentered.json | 2 +- posterior_database/posteriors/election88-election88_full.json | 2 +- posterior_database/posteriors/garch-garch11.json | 4 ++-- posterior_database/posteriors/gp_pois_regr-gp_pois_regr.json | 2 +- posterior_database/posteriors/gp_pois_regr-gp_regr.json | 2 +- posterior_database/posteriors/hmm_example-hmm_example.json | 2 +- .../posteriors/hudson_lynx_hare-lotka_volterra.json | 2 +- posterior_database/posteriors/irt_2pl-irt_2pl.json | 2 +- posterior_database/posteriors/kidiq-kidscore_interaction.json | 2 +- posterior_database/posteriors/kidiq-kidscore_momhs.json | 2 +- posterior_database/posteriors/kidiq-kidscore_momhsiq.json | 2 +- posterior_database/posteriors/kidiq-kidscore_momiq.json | 2 +- .../kidiq_with_mom_work-kidscore_interaction_c.json | 2 +- .../kidiq_with_mom_work-kidscore_interaction_c2.json | 2 +- .../kidiq_with_mom_work-kidscore_interaction_z.json | 2 +- .../posteriors/kidiq_with_mom_work-kidscore_mom_work.json | 2 +- .../posteriors/kilpisjarvi_mod-kilpisjarvi.json | 2 +- .../posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json | 2 +- ...low_dim_gauss_mix_collapse-low_dim_gauss_mix_collapse.json | 2 +- posterior_database/posteriors/lsat_data-lsat_model.json | 2 +- posterior_database/posteriors/mcycle_gp-accel_gp.json | 2 +- posterior_database/posteriors/mesquite-logmesquite.json | 2 +- posterior_database/posteriors/mesquite-logmesquite_logva.json | 2 +- .../posteriors/mesquite-logmesquite_logvas.json | 2 +- .../posteriors/mesquite-logmesquite_logvash.json | 2 +- .../posteriors/mesquite-logmesquite_logvolume.json | 2 +- posterior_database/posteriors/mesquite-mesquite.json | 2 +- posterior_database/posteriors/nes1972-nes.json | 2 +- posterior_database/posteriors/nes1976-nes.json | 2 +- posterior_database/posteriors/nes1980-nes.json | 2 +- posterior_database/posteriors/nes1984-nes.json | 2 +- posterior_database/posteriors/nes1988-nes.json | 2 +- posterior_database/posteriors/nes1992-nes.json | 2 +- posterior_database/posteriors/nes1996-nes.json | 2 +- posterior_database/posteriors/nes2000-nes.json | 2 +- .../posteriors/nes_logit_data-nes_logit_model.json | 2 +- posterior_database/posteriors/normal_2-normal_mixture.json | 2 +- posterior_database/posteriors/normal_5-normal_mixture_k.json | 2 +- .../posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json | 2 +- .../posteriors/ovarian-logistic_regression_rhs.json | 2 +- posterior_database/posteriors/pilots-pilots.json | 2 +- .../posteriors/prideprejudice_chapter-ldaK5.json | 2 +- .../posteriors/prideprejudice_paragraph-ldaK5.json | 2 +- .../posteriors/prostate-logistic_regression_rhs.json | 2 +- .../posteriors/radon_all-radon_county_intercept.json | 4 ++-- .../radon_all-radon_hierarchical_intercept_centered.json | 4 ++-- .../radon_all-radon_hierarchical_intercept_noncentered.json | 4 ++-- .../posteriors/radon_all-radon_partially_pooled_centered.json | 4 ++-- .../radon_all-radon_partially_pooled_noncentered.json | 4 ++-- posterior_database/posteriors/radon_all-radon_pooled.json | 3 ++- .../radon_all-radon_variable_intercept_centered.json | 3 ++- .../radon_all-radon_variable_intercept_noncentered.json | 4 ++-- .../radon_all-radon_variable_intercept_slope_centered.json | 4 ++-- .../radon_all-radon_variable_intercept_slope_noncentered.json | 4 ++-- .../posteriors/radon_all-radon_variable_slope_centered.json | 4 ++-- .../radon_all-radon_variable_slope_noncentered.json | 4 ++-- .../posteriors/radon_mn-radon_county_intercept.json | 2 +- .../radon_mn-radon_hierarchical_intercept_centered.json | 2 +- .../radon_mn-radon_hierarchical_intercept_noncentered.json | 2 +- .../posteriors/radon_mn-radon_partially_pooled_centered.json | 2 +- .../radon_mn-radon_partially_pooled_noncentered.json | 2 +- posterior_database/posteriors/radon_mn-radon_pooled.json | 2 +- .../radon_mn-radon_variable_intercept_centered.json | 2 +- .../radon_mn-radon_variable_intercept_noncentered.json | 2 +- .../radon_mn-radon_variable_intercept_slope_centered.json | 2 +- .../radon_mn-radon_variable_intercept_slope_noncentered.json | 2 +- .../posteriors/radon_mn-radon_variable_slope_centered.json | 2 +- .../posteriors/radon_mn-radon_variable_slope_noncentered.json | 2 +- posterior_database/posteriors/radon_mod-radon_county.json | 2 +- posterior_database/posteriors/rats_data-rats_model.json | 2 +- posterior_database/posteriors/rstan_downloads-prophet.json | 2 +- posterior_database/posteriors/sat-hier_2pl.json | 2 +- posterior_database/posteriors/sblrc-blr.json | 2 +- posterior_database/posteriors/sblri-blr.json | 2 +- .../posteriors/seeds_data-seeds_centered_model.json | 2 +- posterior_database/posteriors/seeds_data-seeds_model.json | 2 +- .../posteriors/seeds_data-seeds_stanified_model.json | 2 +- .../posteriors/sesame_data-sesame_one_pred_a.json | 2 +- posterior_database/posteriors/sir-sir.json | 4 ++-- .../posteriors/soil_carbon-soil_incubation.json | 2 +- .../posteriors/surgical_data-surgical_model.json | 2 +- posterior_database/posteriors/three_docs1200-ldaK2.json | 2 +- .../posteriors/wells_data-wells_daae_c_model.json | 2 +- .../posteriors/wells_data-wells_dae_c_model.json | 2 +- .../posteriors/wells_data-wells_dae_inter_model.json | 2 +- posterior_database/posteriors/wells_data-wells_dae_model.json | 2 +- posterior_database/posteriors/wells_data-wells_dist.json | 2 +- .../posteriors/wells_data-wells_dist100_model.json | 2 +- .../posteriors/wells_data-wells_dist100ars_model.json | 2 +- .../posteriors/wells_data-wells_interaction_c_model.json | 2 +- 124 files changed, 137 insertions(+), 138 deletions(-) diff --git a/posterior_database/posteriors/GLMM_Poisson_data-GLMM_Poisson_model.json b/posterior_database/posteriors/GLMM_Poisson_data-GLMM_Poisson_model.json index 20587915..2045b14d 100644 --- a/posterior_database/posteriors/GLMM_Poisson_data-GLMM_Poisson_model.json +++ b/posterior_database/posteriors/GLMM_Poisson_data-GLMM_Poisson_model.json @@ -1,5 +1,5 @@ { - "keywords": ["GLMM_Poisson", "Population"], + "keywords": ["bpa book", "GLMM", "Poisson"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/GLMM_data-GLMM1_model.json b/posterior_database/posteriors/GLMM_data-GLMM1_model.json index 6034e942..c8bb967f 100644 --- a/posterior_database/posteriors/GLMM_data-GLMM1_model.json +++ b/posterior_database/posteriors/GLMM_data-GLMM1_model.json @@ -1,5 +1,5 @@ { - "keywords": "GLMM", + "keywords": ["bpa book", "GLMM"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/GLM_Binomial_data-GLM_Binomial_model.json b/posterior_database/posteriors/GLM_Binomial_data-GLM_Binomial_model.json index f70e57d9..bf9647de 100644 --- a/posterior_database/posteriors/GLM_Binomial_data-GLM_Binomial_model.json +++ b/posterior_database/posteriors/GLM_Binomial_data-GLM_Binomial_model.json @@ -1,5 +1,5 @@ { - "keywords": ["GLM_Binomial", "Success", "Peregrine"], + "keywords": ["bpa book", "binomial"], "urls": "https://github.com/stan-dev/example-models/tree/master/BPA/Ch.03", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/GLM_Poisson_Data-GLM_Poisson_model.json b/posterior_database/posteriors/GLM_Poisson_Data-GLM_Poisson_model.json index ba2ec27d..40e248d3 100644 --- a/posterior_database/posteriors/GLM_Poisson_Data-GLM_Poisson_model.json +++ b/posterior_database/posteriors/GLM_Poisson_Data-GLM_Poisson_model.json @@ -1,5 +1,5 @@ { - "keywords": ["GLM_Poisson", "Population"], + "keywords": ["bpa book", "Poisson"], "urls": "https://github.com/stan-dev/example-models/tree/master/BPA/Ch.03", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/M0_data-M0_model.json b/posterior_database/posteriors/M0_data-M0_model.json index 4c2a6680..c922825b 100644 --- a/posterior_database/posteriors/M0_data-M0_model.json +++ b/posterior_database/posteriors/M0_data-M0_model.json @@ -1,5 +1,5 @@ { - "keywords": ["M0", "Constant Detection Probability", "Population"], + "keywords": ["bpa_book", "capture-recapture"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/Mb_data-Mb_model.json b/posterior_database/posteriors/Mb_data-Mb_model.json index 10bff101..11823612 100644 --- a/posterior_database/posteriors/Mb_data-Mb_model.json +++ b/posterior_database/posteriors/Mb_data-Mb_model.json @@ -1,5 +1,5 @@ { - "keywords": ["Mb", "Trap-Response", "BPA"], + "keywords": ["bpa_book", "capture-recapture"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/Mh_data-Mh_model.json b/posterior_database/posteriors/Mh_data-Mh_model.json index beb766ed..53a39311 100644 --- a/posterior_database/posteriors/Mh_data-Mh_model.json +++ b/posterior_database/posteriors/Mh_data-Mh_model.json @@ -1,5 +1,5 @@ { - "keywords": ["Mh", "heterogeneity model", "Logistic-Normal", "Logistic", "Normal"], + "keywords": ["heterogeneity model", "logistic-normal", "bpa_book"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/Mt_data-Mt_model.json b/posterior_database/posteriors/Mt_data-Mt_model.json index 24161795..c3c5505a 100644 --- a/posterior_database/posteriors/Mt_data-Mt_model.json +++ b/posterior_database/posteriors/Mt_data-Mt_model.json @@ -1,5 +1,5 @@ { - "keywords": ["Mt", "occasion", "Capture-Recapture"], + "keywords": ["bpa_book", "capture-recapture"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/Mtbh_data-Mtbh_model.json b/posterior_database/posteriors/Mtbh_data-Mtbh_model.json index b3d5de2b..ba093a83 100644 --- a/posterior_database/posteriors/Mtbh_data-Mtbh_model.json +++ b/posterior_database/posteriors/Mtbh_data-Mtbh_model.json @@ -1,5 +1,5 @@ { - "keywords": ["Mtbh", "occasion", "heterogeneity", "behaviour", "Capture-Recapture", "population"], + "keywords": ["bpa_book", "capture-recapture"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/Mth_data-Mth_model.json b/posterior_database/posteriors/Mth_data-Mth_model.json index 70bcb573..a197a810 100644 --- a/posterior_database/posteriors/Mth_data-Mth_model.json +++ b/posterior_database/posteriors/Mth_data-Mth_model.json @@ -1,5 +1,5 @@ { - "keywords": ["Mth", "occasion", "heterogeneity", "Capture-Recapture"], + "keywords": ["bpa_book", "capture-recapture"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/Rate_1_data-Rate_1_model.json b/posterior_database/posteriors/Rate_1_data-Rate_1_model.json index 0cc23441..0ba98c6c 100644 --- a/posterior_database/posteriors/Rate_1_data-Rate_1_model.json +++ b/posterior_database/posteriors/Rate_1_data-Rate_1_model.json @@ -1,5 +1,5 @@ { - "keywords": "Correct Answer Rate", + "keywords": ["binomial"], "urls": "https://github.com/stan-dev/example-models/tree/master/Bayesian_Cognitive_Modeling/GettingStarted", "references": "lee2013cognitive", "dimensions": { diff --git a/posterior_database/posteriors/Rate_2_data-Rate_2_model.json b/posterior_database/posteriors/Rate_2_data-Rate_2_model.json index e85ac786..2123774a 100644 --- a/posterior_database/posteriors/Rate_2_data-Rate_2_model.json +++ b/posterior_database/posteriors/Rate_2_data-Rate_2_model.json @@ -1,5 +1,5 @@ { - "keywords": ["Success Rate", "Difference"], + "keywords": ["binomial"], "urls": "https://github.com/stan-dev/example-models/tree/master/Bayesian_Cognitive_Modeling/ParameterEstimation/Binomial", "references": "lee2013cognitive", "dimensions": { diff --git a/posterior_database/posteriors/Rate_3_data-Rate_3_model.json b/posterior_database/posteriors/Rate_3_data-Rate_3_model.json index 68d4c5df..ce0c5862 100644 --- a/posterior_database/posteriors/Rate_3_data-Rate_3_model.json +++ b/posterior_database/posteriors/Rate_3_data-Rate_3_model.json @@ -1,5 +1,5 @@ { - "keywords": ["Success Rate", "Common Rate"], + "keywords": ["binomial"], "urls": "https://github.com/stan-dev/example-models/tree/master/Bayesian_Cognitive_Modeling/ParameterEstimation/Binomial", "references": "lee2013cognitive", "dimensions": { diff --git a/posterior_database/posteriors/Rate_4_data-Rate_4_model.json b/posterior_database/posteriors/Rate_4_data-Rate_4_model.json index f44221bc..e2f62ce4 100644 --- a/posterior_database/posteriors/Rate_4_data-Rate_4_model.json +++ b/posterior_database/posteriors/Rate_4_data-Rate_4_model.json @@ -1,5 +1,5 @@ { - "keywords": ["Success Rate", "Prior Inference", "Posterior Inference"], + "keywords": ["binomial"], "urls": "https://github.com/stan-dev/example-models/tree/master/Bayesian_Cognitive_Modeling/ParameterEstimation/Binomial", "references": "lee2013cognitive", "dimensions": { diff --git a/posterior_database/posteriors/Rate_5_data-Rate_5_model.json b/posterior_database/posteriors/Rate_5_data-Rate_5_model.json index 02d7f318..29b85292 100644 --- a/posterior_database/posteriors/Rate_5_data-Rate_5_model.json +++ b/posterior_database/posteriors/Rate_5_data-Rate_5_model.json @@ -1,5 +1,5 @@ { - "keywords": ["Rate_5", "Success Rate", "Common Rate"], + "keywords": ["binomial"], "urls": "https://github.com/stan-dev/example-models/tree/master/Bayesian_Cognitive_Modeling/ParameterEstimation/Binomial", "references": "lee2013cognitive", "dimensions": { diff --git a/posterior_database/posteriors/Survey_data-Survey_model.json b/posterior_database/posteriors/Survey_data-Survey_model.json index 3166fb2a..b58ab7eb 100644 --- a/posterior_database/posteriors/Survey_data-Survey_model.json +++ b/posterior_database/posteriors/Survey_data-Survey_model.json @@ -1,7 +1,4 @@ { - "keywords": ["Survey", "Return Rate", "Joint"], - "urls": "https://github.com/stan-dev/example-models/tree/master/Bayesian_Cognitive_Modeling/ParameterEstimation/Binomial", - "references": "lee2013cognitive", "dimensions": { "theta": 1, "lp_parts": 500, diff --git a/posterior_database/posteriors/arK-arK.json b/posterior_database/posteriors/arK-arK.json index b57b7df6..c0f4e611 100644 --- a/posterior_database/posteriors/arK-arK.json +++ b/posterior_database/posteriors/arK-arK.json @@ -1,7 +1,7 @@ { "name": "arK-arK", "keywords": [ - "stan_benchmark", "pathfinder_paper" + "stan benchmark", "pathfinder paper" ], "model_name": "arK", "reference_posterior_name": "arK-arK", diff --git a/posterior_database/posteriors/arma-arma11.json b/posterior_database/posteriors/arma-arma11.json index 268be7a2..fa18724b 100644 --- a/posterior_database/posteriors/arma-arma11.json +++ b/posterior_database/posteriors/arma-arma11.json @@ -1,7 +1,7 @@ { "name": "arma-arma11", "keywords": [ - "stan_benchmark", "pathfinder_paper", "time series" + "stan benchmark", "pathfinder paper", "time series" ], "urls": [], "model_name": "arma11", diff --git a/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json b/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json index 504b089f..ed151439 100644 --- a/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json +++ b/posterior_database/posteriors/bball_drive_event_0-hmm_drive_0.json @@ -1,6 +1,6 @@ { "name": "bball_drive_event_0-hmm_drive_0", - "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper", "hidden markov model", "multimodal"], + "keywords": ["stan examples", "stan benchmark", "pathfinder paper", "hidden markov model", "multimodal"], "urls": "https://github.com/imadmali/bball-hmm/blob/master", "model_name": "hmm_drive_0", "data_name": "bball_drive_event_0", diff --git a/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json b/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json index 89a8ffae..a8766137 100644 --- a/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json +++ b/posterior_database/posteriors/bball_drive_event_1-hmm_drive_1.json @@ -1,6 +1,6 @@ { "name": "bball_drive_event_1-hmm_drive_1", - "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper", "hidden markov model", "multimodal"], + "keywords": ["stan examples", "stan benchmark", "pathfinder paper", "hidden markov model", "multimodal"], "urls": "https://github.com/imadmali/bball-hmm/blob/master", "model_name": "hmm_drive_1", "data_name": "bball_drive_event_1", diff --git a/posterior_database/posteriors/bones_data-bones_model.json b/posterior_database/posteriors/bones_data-bones_model.json index 57a016c1..87ce6eff 100644 --- a/posterior_database/posteriors/bones_data-bones_model.json +++ b/posterior_database/posteriors/bones_data-bones_model.json @@ -1,5 +1,5 @@ { - "keywords": ["bones", "latent trait"], + "keywords": ["bugs examples"], "urls": ["https://github.com/stan-dev/example-models/tree/master/bugs_examples/vol1/bones", "http://www.mrc-bsu.cam.ac.uk/wp-content/uploads/WinBUGS_Vol1.pdf"], "references": "mrc1winbugs", "dimensions": { diff --git a/posterior_database/posteriors/butterfly-multi_occupancy.json b/posterior_database/posteriors/butterfly-multi_occupancy.json index abfb6f5d..8cd11c77 100644 --- a/posterior_database/posteriors/butterfly-multi_occupancy.json +++ b/posterior_database/posteriors/butterfly-multi_occupancy.json @@ -1,6 +1,6 @@ { "name": "butterfly-multi_occupancy", - "keywords": ["stan_examples", "stan_benchmark"], + "keywords": ["stan examples", "stan benchmark"], "urls": "", "model_name": "multi_occupancy", "data_name": "butterfly", diff --git a/posterior_database/posteriors/diamonds-diamonds.json b/posterior_database/posteriors/diamonds-diamonds.json index 154debed..f37595a0 100644 --- a/posterior_database/posteriors/diamonds-diamonds.json +++ b/posterior_database/posteriors/diamonds-diamonds.json @@ -1,6 +1,6 @@ { "name": "diamonds-diamonds", - "keywords": ["stan_benchmark", "linear regression", "pathfinder_paper"], + "keywords": ["stan benchmark", "linear regression", "pathfinder paper"], "urls": "https://github.com/bbbales2/cmdstan-warmup/blob/develop/examples/diamonds", "model_name": "diamonds", "data_name": "diamonds", diff --git a/posterior_database/posteriors/dogs-dogs.json b/posterior_database/posteriors/dogs-dogs.json index 7fc06ec7..5bdacbe9 100644 --- a/posterior_database/posteriors/dogs-dogs.json +++ b/posterior_database/posteriors/dogs-dogs.json @@ -1,6 +1,6 @@ { "name": "dogs-dogs", - "keywords": ["arm_book", "stan_examples", "pathfinder_paper"], + "keywords": ["arm book", "stan examples", "pathfinder paper"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.24", "model_name": "dogs", "data_name": "dogs", diff --git a/posterior_database/posteriors/dogs-dogs_log.json b/posterior_database/posteriors/dogs-dogs_log.json index 6b26c628..46744d64 100644 --- a/posterior_database/posteriors/dogs-dogs_log.json +++ b/posterior_database/posteriors/dogs-dogs_log.json @@ -1,6 +1,6 @@ { "name": "dogs-dogs_log", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.24", "model_name": "dogs_log", "data_name": "dogs", diff --git a/posterior_database/posteriors/dugongs_data-dugongs_model.json b/posterior_database/posteriors/dugongs_data-dugongs_model.json index fe52a4cf..b5e806d9 100644 --- a/posterior_database/posteriors/dugongs_data-dugongs_model.json +++ b/posterior_database/posteriors/dugongs_data-dugongs_model.json @@ -1,5 +1,5 @@ { - "keywords": ["Non-Linear", "Growth Curve", "Dugongs"], + "keywords": ["bugs examples", "non-linear", "growth curve model"], "urls": "https://github.com/stan-dev/example-models/tree/master/bugs_examples/vol2", "references": "mrc2winbugs", "dimensions": { diff --git a/posterior_database/posteriors/earnings-earn_height.json b/posterior_database/posteriors/earnings-earn_height.json index d6b33dc8..f73ab2d0 100644 --- a/posterior_database/posteriors/earnings-earn_height.json +++ b/posterior_database/posteriors/earnings-earn_height.json @@ -1,6 +1,6 @@ { "name": "earnings-earn_height", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "earn_height", "data_name": "earnings", diff --git a/posterior_database/posteriors/earnings-log10earn_height.json b/posterior_database/posteriors/earnings-log10earn_height.json index b4f18805..279aa4d2 100644 --- a/posterior_database/posteriors/earnings-log10earn_height.json +++ b/posterior_database/posteriors/earnings-log10earn_height.json @@ -1,6 +1,6 @@ { "name": "earnings-log10earn_height", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "log10earn_height", "data_name": "earnings", diff --git a/posterior_database/posteriors/earnings-logearn_height.json b/posterior_database/posteriors/earnings-logearn_height.json index 81177706..e3b0ee95 100644 --- a/posterior_database/posteriors/earnings-logearn_height.json +++ b/posterior_database/posteriors/earnings-logearn_height.json @@ -1,6 +1,6 @@ { "name": "earnings-logearn_height", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logearn_height", "data_name": "earnings", diff --git a/posterior_database/posteriors/earnings-logearn_height_male.json b/posterior_database/posteriors/earnings-logearn_height_male.json index b5210744..b98c91c2 100644 --- a/posterior_database/posteriors/earnings-logearn_height_male.json +++ b/posterior_database/posteriors/earnings-logearn_height_male.json @@ -1,6 +1,6 @@ { "name": "earnings-logearn_height_male", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logearn_height_male", "data_name": "earnings", diff --git a/posterior_database/posteriors/earnings-logearn_interaction.json b/posterior_database/posteriors/earnings-logearn_interaction.json index 9860d218..47c243b4 100644 --- a/posterior_database/posteriors/earnings-logearn_interaction.json +++ b/posterior_database/posteriors/earnings-logearn_interaction.json @@ -1,6 +1,6 @@ { "name": "earnings-logearn_interaction", - "keywords": ["arm_book", "stan_examples", "pathfinder_paper", "interaction"], + "keywords": ["arm book", "stan examples", "pathfinder paper", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logearn_interaction", "data_name": "earnings", diff --git a/posterior_database/posteriors/earnings-logearn_interaction_z.json b/posterior_database/posteriors/earnings-logearn_interaction_z.json index 1fb51841..20700ad1 100644 --- a/posterior_database/posteriors/earnings-logearn_interaction_z.json +++ b/posterior_database/posteriors/earnings-logearn_interaction_z.json @@ -1,6 +1,6 @@ { "name": "earnings-logearn_interaction_z", - "keywords": ["arm_book", "stan_examples", "interaction"], + "keywords": ["arm book", "stan examples", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logearn_interaction_z", "data_name": "earnings", diff --git a/posterior_database/posteriors/earnings-logearn_logheight_male.json b/posterior_database/posteriors/earnings-logearn_logheight_male.json index e730e741..daced15c 100644 --- a/posterior_database/posteriors/earnings-logearn_logheight_male.json +++ b/posterior_database/posteriors/earnings-logearn_logheight_male.json @@ -1,6 +1,6 @@ { "name": "earnings-logearn_logheight_male", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logearn_logheight_male", "data_name": "earnings", diff --git a/posterior_database/posteriors/eight_schools-eight_schools_centered.json b/posterior_database/posteriors/eight_schools-eight_schools_centered.json index 329bb636..5c48bef5 100644 --- a/posterior_database/posteriors/eight_schools-eight_schools_centered.json +++ b/posterior_database/posteriors/eight_schools-eight_schools_centered.json @@ -1,7 +1,7 @@ { "name": "eight_schools-eight_schools_centered", "keywords": [ - "stan_benchmark", "pathfinder_paper" + "stan benchmark", "pathfinder paper" ], "model_name": "eight_schools_centered", "reference_posterior_name": "eight_schools-eight_schools_noncentered", diff --git a/posterior_database/posteriors/eight_schools-eight_schools_noncentered.json b/posterior_database/posteriors/eight_schools-eight_schools_noncentered.json index b27b95b6..d41d68c4 100644 --- a/posterior_database/posteriors/eight_schools-eight_schools_noncentered.json +++ b/posterior_database/posteriors/eight_schools-eight_schools_noncentered.json @@ -1,7 +1,7 @@ { "name": "eight_schools-eight_schools_noncentered", "keywords": [ - "stan_benchmark", "pathfinder_paper" + "stan benchmark", "pathfinder paper" ], "model_name": "eight_schools_noncentered", "reference_posterior_name": "eight_schools-eight_schools_noncentered", diff --git a/posterior_database/posteriors/election88-election88_full.json b/posterior_database/posteriors/election88-election88_full.json index 56817671..e0ec5dcc 100644 --- a/posterior_database/posteriors/election88-election88_full.json +++ b/posterior_database/posteriors/election88-election88_full.json @@ -1,6 +1,6 @@ { "name": "election88-election88_full", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.14", "model_name": "election88_full", "data_name": "election88", diff --git a/posterior_database/posteriors/garch-garch11.json b/posterior_database/posteriors/garch-garch11.json index a6677bfd..ce0aa019 100644 --- a/posterior_database/posteriors/garch-garch11.json +++ b/posterior_database/posteriors/garch-garch11.json @@ -1,9 +1,9 @@ { "name": "garch-garch11", "keywords": [ - "stan_benchmark", + "stan benchmark", "time series", - "pathfinder_paper" + "pathfinder paper" ], "urls": [], "model_name": "garch11", diff --git a/posterior_database/posteriors/gp_pois_regr-gp_pois_regr.json b/posterior_database/posteriors/gp_pois_regr-gp_pois_regr.json index 0809cc13..b491463e 100644 --- a/posterior_database/posteriors/gp_pois_regr-gp_pois_regr.json +++ b/posterior_database/posteriors/gp_pois_regr-gp_pois_regr.json @@ -1,7 +1,7 @@ { "name": "gp_pois_regr-gp_pois_regr", "keywords": [ - "stan_benchmark", "gaussian process model" + "stan benchmark", "gaussian process model" ], "urls": [], "model_name": "gp_pois_regr", diff --git a/posterior_database/posteriors/gp_pois_regr-gp_regr.json b/posterior_database/posteriors/gp_pois_regr-gp_regr.json index 47545351..78b44169 100644 --- a/posterior_database/posteriors/gp_pois_regr-gp_regr.json +++ b/posterior_database/posteriors/gp_pois_regr-gp_regr.json @@ -1,7 +1,7 @@ { "name": "gp_pois_regr-gp_regr", "keywords": [ - "stan_benchmark", "pathfinder_paper", "gaussian process model" + "stan benchmark", "pathfinder paper", "gaussian process model" ], "urls": [], "model_name": "gp_regr", diff --git a/posterior_database/posteriors/hmm_example-hmm_example.json b/posterior_database/posteriors/hmm_example-hmm_example.json index f16da89b..01c21394 100644 --- a/posterior_database/posteriors/hmm_example-hmm_example.json +++ b/posterior_database/posteriors/hmm_example-hmm_example.json @@ -1,6 +1,6 @@ { "name": "hmm_example-hmm_example", - "keywords": ["stan_examples", "stan_benchmark"], + "keywords": ["stan examples", "stan benchmark"], "urls": "https://github.com/imadmali/bball-hmm/blob/master", "model_name": "hmm_example", "data_name": "hmm_example", diff --git a/posterior_database/posteriors/hudson_lynx_hare-lotka_volterra.json b/posterior_database/posteriors/hudson_lynx_hare-lotka_volterra.json index 8eefb21c..4cd53faa 100644 --- a/posterior_database/posteriors/hudson_lynx_hare-lotka_volterra.json +++ b/posterior_database/posteriors/hudson_lynx_hare-lotka_volterra.json @@ -1,6 +1,6 @@ { "name": "hudson_lynx_hare-lotka_volterra", - "keywords": ["stan_examples", "stan_benchmark", "pathfinder_paper", "differential equation model"], + "keywords": ["stan examples", "stan benchmark", "pathfinder paper", "differential equation model"], "urls": "https://github.com/stan-dev/example-models/blob/master/knitr/lotka-volterra", "model_name": "lotka_volterra", "data_name": "hudson_lynx_hare", diff --git a/posterior_database/posteriors/irt_2pl-irt_2pl.json b/posterior_database/posteriors/irt_2pl-irt_2pl.json index 819c398b..23afff60 100644 --- a/posterior_database/posteriors/irt_2pl-irt_2pl.json +++ b/posterior_database/posteriors/irt_2pl-irt_2pl.json @@ -1,7 +1,7 @@ { "name": "irt_2pl-irt_2pl", "keywords": [ - "stan_benchmark" + "stan benchmark" ], "urls": [], "model_name": "irt_2pl", diff --git a/posterior_database/posteriors/kidiq-kidscore_interaction.json b/posterior_database/posteriors/kidiq-kidscore_interaction.json index c51b4e17..c3ea5b4e 100644 --- a/posterior_database/posteriors/kidiq-kidscore_interaction.json +++ b/posterior_database/posteriors/kidiq-kidscore_interaction.json @@ -1,6 +1,6 @@ { "name": "kidiq-kidscore_interaction", - "keywords": ["arm_book", "stan_examples", "interaction"], + "keywords": ["arm book", "stan examples", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.3", "model_name": "kidscore_interaction", "data_name": "kidiq", diff --git a/posterior_database/posteriors/kidiq-kidscore_momhs.json b/posterior_database/posteriors/kidiq-kidscore_momhs.json index 33c46af0..8baad2f7 100644 --- a/posterior_database/posteriors/kidiq-kidscore_momhs.json +++ b/posterior_database/posteriors/kidiq-kidscore_momhs.json @@ -1,6 +1,6 @@ { "name": "kidiq-kidscore_momhs", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.3", "model_name": "kidscore_momhs", "data_name": "kidiq", diff --git a/posterior_database/posteriors/kidiq-kidscore_momhsiq.json b/posterior_database/posteriors/kidiq-kidscore_momhsiq.json index 089c675a..ea9bd190 100644 --- a/posterior_database/posteriors/kidiq-kidscore_momhsiq.json +++ b/posterior_database/posteriors/kidiq-kidscore_momhsiq.json @@ -1,6 +1,6 @@ { "name": "kidiq-kidscore_momhsiq", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.3", "model_name": "kidscore_momhsiq", "data_name": "kidiq", diff --git a/posterior_database/posteriors/kidiq-kidscore_momiq.json b/posterior_database/posteriors/kidiq-kidscore_momiq.json index 993de7a9..d3b799d1 100644 --- a/posterior_database/posteriors/kidiq-kidscore_momiq.json +++ b/posterior_database/posteriors/kidiq-kidscore_momiq.json @@ -1,6 +1,6 @@ { "name": "kidiq-kidscore_momiq", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.3", "model_name": "kidscore_momiq", "data_name": "kidiq", diff --git a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c.json b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c.json index 80da0241..a5244967 100644 --- a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c.json +++ b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c.json @@ -1,6 +1,6 @@ { "name": "kidiq_with_mom_work-kidscore_interaction_c", - "keywords": ["arm_book", "stan_examples", "interaction"], + "keywords": ["arm book", "stan examples", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "kidscore_interaction_c", "data_name": "kidiq_with_mom_work", diff --git a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c2.json b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c2.json index f2f7dc66..f0ef220b 100644 --- a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c2.json +++ b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_c2.json @@ -1,6 +1,6 @@ { "name": "kidiq_with_mom_work-kidscore_interaction_c2", - "keywords": ["arm_book", "stan_examples", "interaction"], + "keywords": ["arm book", "stan examples", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "kidscore_interaction_c2", "data_name": "kidiq_with_mom_work", diff --git a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_z.json b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_z.json index 2a217bec..a49e1221 100644 --- a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_z.json +++ b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_interaction_z.json @@ -1,6 +1,6 @@ { "name": "kidiq_with_mom_work-kidscore_interaction_z", - "keywords": ["arm_book", "stan_examples", "interaction"], + "keywords": ["arm book", "stan examples", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "kidscore_interaction_z", "data_name": "kidiq_with_mom_work", diff --git a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_mom_work.json b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_mom_work.json index fab452b9..5cb34e56 100644 --- a/posterior_database/posteriors/kidiq_with_mom_work-kidscore_mom_work.json +++ b/posterior_database/posteriors/kidiq_with_mom_work-kidscore_mom_work.json @@ -1,6 +1,6 @@ { "name": "kidiq_with_mom_work-kidscore_mom_work", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "kidscore_mom_work", "data_name": "kidiq_with_mom_work", diff --git a/posterior_database/posteriors/kilpisjarvi_mod-kilpisjarvi.json b/posterior_database/posteriors/kilpisjarvi_mod-kilpisjarvi.json index 69adbb26..61b8ce01 100644 --- a/posterior_database/posteriors/kilpisjarvi_mod-kilpisjarvi.json +++ b/posterior_database/posteriors/kilpisjarvi_mod-kilpisjarvi.json @@ -1,6 +1,6 @@ { "name": "kilpisjarvi_mod-kilpisjarvi", - "keywords": ["stan_benchmark", "linear regression"], + "keywords": ["stan benchmark", "linear regression"], "urls": "https://github.com/bbbales2/cmdstan-warmup/blob/develop/examples/kilpisjarvi", "model_name": "kilpisjarvi", "data_name": "kilpisjarvi_mod", diff --git a/posterior_database/posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json b/posterior_database/posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json index 712075be..442da505 100644 --- a/posterior_database/posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json +++ b/posterior_database/posteriors/low_dim_gauss_mix-low_dim_gauss_mix.json @@ -1,7 +1,7 @@ { "name": "low_dim_gauss_mix-low_dim_gauss_mix", "keywords": [ - "stan_benchmark", "pathfinder_paper", "mixture model" + "stan benchmark", "pathfinder paper", "mixture model" ], "urls": [], "model_name": "low_dim_gauss_mix", diff --git a/posterior_database/posteriors/low_dim_gauss_mix_collapse-low_dim_gauss_mix_collapse.json b/posterior_database/posteriors/low_dim_gauss_mix_collapse-low_dim_gauss_mix_collapse.json index 0a8009f8..a51900de 100644 --- a/posterior_database/posteriors/low_dim_gauss_mix_collapse-low_dim_gauss_mix_collapse.json +++ b/posterior_database/posteriors/low_dim_gauss_mix_collapse-low_dim_gauss_mix_collapse.json @@ -1,7 +1,7 @@ { "name": "low_dim_gauss_mix_collapse-low_dim_gauss_mix_collapse", "keywords": [ - "stan_benchmark", "mixture model" + "stan benchmark", "mixture model" ], "urls": [], "model_name": "low_dim_gauss_mix_collapse", diff --git a/posterior_database/posteriors/lsat_data-lsat_model.json b/posterior_database/posteriors/lsat_data-lsat_model.json index 1b11927d..a5d2cf8f 100644 --- a/posterior_database/posteriors/lsat_data-lsat_model.json +++ b/posterior_database/posteriors/lsat_data-lsat_model.json @@ -1,5 +1,5 @@ { - "keywords": ["LSAT", "Random Effects", "Rasch"], + "keywords": ["bugs examples", "random effects"], "urls": "https://github.com/stan-dev/example-models/tree/master/bugs_examples/vol1/lsat", "references": "mrc1winbugs", "dimensions": { diff --git a/posterior_database/posteriors/mcycle_gp-accel_gp.json b/posterior_database/posteriors/mcycle_gp-accel_gp.json index 4be62f16..734444e3 100644 --- a/posterior_database/posteriors/mcycle_gp-accel_gp.json +++ b/posterior_database/posteriors/mcycle_gp-accel_gp.json @@ -1,6 +1,6 @@ { "name": "mcycle_gp-accel_gp", - "keywords": ["stan_benchmark", "gaussian process", "pathfinder_paper"], + "keywords": ["stan benchmark", "gaussian process model", "pathfinder paper"], "urls": "https://github.com/bbbales2/cmdstan-warmup/blob/develop/examples/accel_gp", "model_name": "accel_gp", "data_name": "mcycle_gp", diff --git a/posterior_database/posteriors/mesquite-logmesquite.json b/posterior_database/posteriors/mesquite-logmesquite.json index 3b350681..c5e25908 100644 --- a/posterior_database/posteriors/mesquite-logmesquite.json +++ b/posterior_database/posteriors/mesquite-logmesquite.json @@ -1,6 +1,6 @@ { "name": "mesquite-logmesquite", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logmesquite", "data_name": "mesquite", diff --git a/posterior_database/posteriors/mesquite-logmesquite_logva.json b/posterior_database/posteriors/mesquite-logmesquite_logva.json index 215ba5d5..e5ea3004 100644 --- a/posterior_database/posteriors/mesquite-logmesquite_logva.json +++ b/posterior_database/posteriors/mesquite-logmesquite_logva.json @@ -1,6 +1,6 @@ { "name": "mesquite-logmesquite_logva", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logmesquite_logva", "data_name": "mesquite", diff --git a/posterior_database/posteriors/mesquite-logmesquite_logvas.json b/posterior_database/posteriors/mesquite-logmesquite_logvas.json index 7d65a8f4..0608b465 100644 --- a/posterior_database/posteriors/mesquite-logmesquite_logvas.json +++ b/posterior_database/posteriors/mesquite-logmesquite_logvas.json @@ -1,6 +1,6 @@ { "name": "mesquite-logmesquite_logvas", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logmesquite_logvas", "data_name": "mesquite", diff --git a/posterior_database/posteriors/mesquite-logmesquite_logvash.json b/posterior_database/posteriors/mesquite-logmesquite_logvash.json index db3195af..e95fef6f 100644 --- a/posterior_database/posteriors/mesquite-logmesquite_logvash.json +++ b/posterior_database/posteriors/mesquite-logmesquite_logvash.json @@ -1,6 +1,6 @@ { "name": "mesquite-logmesquite_logvash", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logmesquite_logvash", "data_name": "mesquite", diff --git a/posterior_database/posteriors/mesquite-logmesquite_logvolume.json b/posterior_database/posteriors/mesquite-logmesquite_logvolume.json index d1c3b85d..2c5ebb72 100644 --- a/posterior_database/posteriors/mesquite-logmesquite_logvolume.json +++ b/posterior_database/posteriors/mesquite-logmesquite_logvolume.json @@ -1,6 +1,6 @@ { "name": "mesquite-logmesquite_logvolume", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "logmesquite_logvolume", "data_name": "mesquite", diff --git a/posterior_database/posteriors/mesquite-mesquite.json b/posterior_database/posteriors/mesquite-mesquite.json index bcd87048..59456343 100644 --- a/posterior_database/posteriors/mesquite-mesquite.json +++ b/posterior_database/posteriors/mesquite-mesquite.json @@ -1,6 +1,6 @@ { "name": "mesquite-mesquite", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "mesquite", "data_name": "mesquite", diff --git a/posterior_database/posteriors/nes1972-nes.json b/posterior_database/posteriors/nes1972-nes.json index 1997f600..35f4166e 100644 --- a/posterior_database/posteriors/nes1972-nes.json +++ b/posterior_database/posteriors/nes1972-nes.json @@ -1,6 +1,6 @@ { "name": "nes1972-nes", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes1972", diff --git a/posterior_database/posteriors/nes1976-nes.json b/posterior_database/posteriors/nes1976-nes.json index ba59147c..44138045 100644 --- a/posterior_database/posteriors/nes1976-nes.json +++ b/posterior_database/posteriors/nes1976-nes.json @@ -1,6 +1,6 @@ { "name": "nes1976-nes", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes1976", diff --git a/posterior_database/posteriors/nes1980-nes.json b/posterior_database/posteriors/nes1980-nes.json index 96a599b8..00dd8309 100644 --- a/posterior_database/posteriors/nes1980-nes.json +++ b/posterior_database/posteriors/nes1980-nes.json @@ -1,6 +1,6 @@ { "name": "nes1980-nes", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes1980", diff --git a/posterior_database/posteriors/nes1984-nes.json b/posterior_database/posteriors/nes1984-nes.json index 27501878..818da129 100644 --- a/posterior_database/posteriors/nes1984-nes.json +++ b/posterior_database/posteriors/nes1984-nes.json @@ -1,6 +1,6 @@ { "name": "nes1984-nes", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes1984", diff --git a/posterior_database/posteriors/nes1988-nes.json b/posterior_database/posteriors/nes1988-nes.json index d31859f3..98cf28f7 100644 --- a/posterior_database/posteriors/nes1988-nes.json +++ b/posterior_database/posteriors/nes1988-nes.json @@ -1,6 +1,6 @@ { "name": "nes1988-nes", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes1988", diff --git a/posterior_database/posteriors/nes1992-nes.json b/posterior_database/posteriors/nes1992-nes.json index 44d309b0..b3dfc94d 100644 --- a/posterior_database/posteriors/nes1992-nes.json +++ b/posterior_database/posteriors/nes1992-nes.json @@ -1,6 +1,6 @@ { "name": "nes1992-nes", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes1992", diff --git a/posterior_database/posteriors/nes1996-nes.json b/posterior_database/posteriors/nes1996-nes.json index 9674bc20..b40010c6 100644 --- a/posterior_database/posteriors/nes1996-nes.json +++ b/posterior_database/posteriors/nes1996-nes.json @@ -1,6 +1,6 @@ { "name": "nes1996-nes", - "keywords": ["arm_book", "stan_examples"], + "keywords": ["arm book", "stan examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes1996", diff --git a/posterior_database/posteriors/nes2000-nes.json b/posterior_database/posteriors/nes2000-nes.json index 7c444e1d..175ac3ba 100644 --- a/posterior_database/posteriors/nes2000-nes.json +++ b/posterior_database/posteriors/nes2000-nes.json @@ -1,6 +1,6 @@ { "name": "nes2000-nes", - "keywords": ["arm_book", "stan_examples", "pathfinder_paper"], + "keywords": ["arm book", "stan examples", "pathfinder_paper"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes2000", diff --git a/posterior_database/posteriors/nes_logit_data-nes_logit_model.json b/posterior_database/posteriors/nes_logit_data-nes_logit_model.json index 517706d8..e3eafe6c 100644 --- a/posterior_database/posteriors/nes_logit_data-nes_logit_model.json +++ b/posterior_database/posteriors/nes_logit_data-nes_logit_model.json @@ -1,5 +1,5 @@ { - "keywords": ["Election", "Population", "Presidential", "1992"], + "keywords": ["arm_book"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/normal_2-normal_mixture.json b/posterior_database/posteriors/normal_2-normal_mixture.json index 779f9703..5e3e920d 100644 --- a/posterior_database/posteriors/normal_2-normal_mixture.json +++ b/posterior_database/posteriors/normal_2-normal_mixture.json @@ -1,6 +1,6 @@ { "name": "normal_2-normal_mixture", - "keywords": ["stan_examples", "mixture model"], + "keywords": ["stan examples", "mixture model"], "urls": "https://github.com/stan-dev/example-models/tree/master/basic_estimators", "model_name": "normal_mixture", "data_name": "normal_2", diff --git a/posterior_database/posteriors/normal_5-normal_mixture_k.json b/posterior_database/posteriors/normal_5-normal_mixture_k.json index c4a99e32..65756e04 100644 --- a/posterior_database/posteriors/normal_5-normal_mixture_k.json +++ b/posterior_database/posteriors/normal_5-normal_mixture_k.json @@ -1,6 +1,6 @@ { "name": "normal_5-normal_mixture_k", - "keywords": ["stan_examples", "mixture model"], + "keywords": ["stan examples", "mixture model"], "urls": "https://github.com/stan-dev/example-models/tree/master/basic_estimators", "model_name": "normal_mixture_k", "data_name": "normal_5", diff --git a/posterior_database/posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json b/posterior_database/posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json index 360b31ba..9be4c373 100644 --- a/posterior_database/posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json +++ b/posterior_database/posteriors/one_comp_mm_elim_abs-one_comp_mm_elim_abs.json @@ -1,7 +1,7 @@ { "name": "one_comp_mm_elim_abs-one_comp_mm_elim_abs", "keywords": [ - "stan_benchmark", "pathfinder_paper", "differential equation model" + "stan benchmark", "pathfinder paper", "differential equation model" ], "urls": [], "model_name": "one_comp_mm_elim_abs", diff --git a/posterior_database/posteriors/ovarian-logistic_regression_rhs.json b/posterior_database/posteriors/ovarian-logistic_regression_rhs.json index c1c1bd76..c8c462cc 100644 --- a/posterior_database/posteriors/ovarian-logistic_regression_rhs.json +++ b/posterior_database/posteriors/ovarian-logistic_regression_rhs.json @@ -1,6 +1,6 @@ { "name": "ovarian-logistic_regression_rhs", - "keywords": ["stan_benchmark", "logistic regression"], + "keywords": ["stan benchmark", "logistic regression", "multimodal"], "urls": "", "model_name": "logistic_regression_rhs", "data_name": "ovarian", diff --git a/posterior_database/posteriors/pilots-pilots.json b/posterior_database/posteriors/pilots-pilots.json index 1adb1401..be10124b 100644 --- a/posterior_database/posteriors/pilots-pilots.json +++ b/posterior_database/posteriors/pilots-pilots.json @@ -1,6 +1,6 @@ { "name": "pilots-pilots", - "keywords": ["arm_book", "stan_examples", "stan_benchmark"], + "keywords": ["arm book", "stan examples", "stan benchmark"], "urls": "", "model_name": "pilots", "data_name": "pilots", diff --git a/posterior_database/posteriors/prideprejudice_chapter-ldaK5.json b/posterior_database/posteriors/prideprejudice_chapter-ldaK5.json index fe0bb09e..2c84495d 100644 --- a/posterior_database/posteriors/prideprejudice_chapter-ldaK5.json +++ b/posterior_database/posteriors/prideprejudice_chapter-ldaK5.json @@ -1,6 +1,6 @@ { "name": "prideprejudice_chapter-ldaK5", - "keywords": "multimodal", + "keywords": ["multimodal", "text data"], "model_name": "ldaK5", "reference_posterior_name": null, "data_name": "prideprejudice_chapter", diff --git a/posterior_database/posteriors/prideprejudice_paragraph-ldaK5.json b/posterior_database/posteriors/prideprejudice_paragraph-ldaK5.json index 55bc3438..48cb9242 100644 --- a/posterior_database/posteriors/prideprejudice_paragraph-ldaK5.json +++ b/posterior_database/posteriors/prideprejudice_paragraph-ldaK5.json @@ -1,6 +1,6 @@ { "name": "prideprejudice_paragraph-ldaK5", - "keywords": "multimodal", + "keywords": ["multimodal", "text data"], "model_name": "ldaK5", "reference_posterior_name": null, "data_name": "prideprejudice_paragraph", diff --git a/posterior_database/posteriors/prostate-logistic_regression_rhs.json b/posterior_database/posteriors/prostate-logistic_regression_rhs.json index 9d7ba8e5..92d31f22 100644 --- a/posterior_database/posteriors/prostate-logistic_regression_rhs.json +++ b/posterior_database/posteriors/prostate-logistic_regression_rhs.json @@ -1,6 +1,6 @@ { "name": "prostate-logistic_regression_rhs", - "keywords": ["stan_benchmark", "logistic regression"], + "keywords": ["stan benchmark", "logistic regression"], "urls": "", "model_name": "logistic_regression_rhs", "data_name": "prostate", diff --git a/posterior_database/posteriors/radon_all-radon_county_intercept.json b/posterior_database/posteriors/radon_all-radon_county_intercept.json index e563c6a7..45517312 100644 --- a/posterior_database/posteriors/radon_all-radon_county_intercept.json +++ b/posterior_database/posteriors/radon_all-radon_county_intercept.json @@ -1,7 +1,7 @@ { "name": "radon_all-radon_county_intercept", - "keywords": "radon", - "urls": null, + "keywords": ["stan case study"], + "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_county_intercept", "data_name": "radon_all", "reference_posterior_name": null, diff --git a/posterior_database/posteriors/radon_all-radon_hierarchical_intercept_centered.json b/posterior_database/posteriors/radon_all-radon_hierarchical_intercept_centered.json index b1a44180..bd4fb10a 100644 --- a/posterior_database/posteriors/radon_all-radon_hierarchical_intercept_centered.json +++ b/posterior_database/posteriors/radon_all-radon_hierarchical_intercept_centered.json @@ -1,7 +1,7 @@ { "name": "radon_all-radon_hierarchical_intercept_centered", - "keywords": "radon", - "urls": null, + "keywords": ["stan case study"], + "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_hierarchical_intercept_centered", "data_name": "radon_all", "reference_posterior_name": null, diff --git a/posterior_database/posteriors/radon_all-radon_hierarchical_intercept_noncentered.json b/posterior_database/posteriors/radon_all-radon_hierarchical_intercept_noncentered.json index faef5b63..d36d78ae 100644 --- a/posterior_database/posteriors/radon_all-radon_hierarchical_intercept_noncentered.json +++ b/posterior_database/posteriors/radon_all-radon_hierarchical_intercept_noncentered.json @@ -1,7 +1,7 @@ { "name": "radon_all-radon_hierarchical_intercept_noncentered", - "keywords": "radon", - "urls": null, + "keywords": ["stan case study"], + "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_hierarchical_intercept_noncentered", "data_name": "radon_all", "reference_posterior_name": null, diff --git a/posterior_database/posteriors/radon_all-radon_partially_pooled_centered.json b/posterior_database/posteriors/radon_all-radon_partially_pooled_centered.json index d9983f49..21a1d907 100644 --- a/posterior_database/posteriors/radon_all-radon_partially_pooled_centered.json +++ b/posterior_database/posteriors/radon_all-radon_partially_pooled_centered.json @@ -1,7 +1,7 @@ { "name": "radon_all-radon_partially_pooled_centered", - "keywords": "radon", - "urls": null, + "keywords": ["stan case study"], + "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_partially_pooled_centered", "data_name": "radon_all", "reference_posterior_name": null, diff --git a/posterior_database/posteriors/radon_all-radon_partially_pooled_noncentered.json b/posterior_database/posteriors/radon_all-radon_partially_pooled_noncentered.json index 5612630f..e6db5d81 100644 --- a/posterior_database/posteriors/radon_all-radon_partially_pooled_noncentered.json +++ b/posterior_database/posteriors/radon_all-radon_partially_pooled_noncentered.json @@ -1,7 +1,7 @@ { "name": "radon_all-radon_partially_pooled_noncentered", - "keywords": "radon", - "urls": null, + "keywords": ["stan case study"], + "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_partially_pooled_noncentered", "data_name": "radon_all", "reference_posterior_name": null, diff --git a/posterior_database/posteriors/radon_all-radon_pooled.json b/posterior_database/posteriors/radon_all-radon_pooled.json index 5ef6d5d0..38b6aeea 100644 --- a/posterior_database/posteriors/radon_all-radon_pooled.json +++ b/posterior_database/posteriors/radon_all-radon_pooled.json @@ -1,6 +1,7 @@ { "name": "radon_all-radon_pooled", - "keywords": "radon", + "keywords": ["stan case study"], + "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "urls": null, "model_name": "radon_pooled", "data_name": "radon_all", diff --git a/posterior_database/posteriors/radon_all-radon_variable_intercept_centered.json b/posterior_database/posteriors/radon_all-radon_variable_intercept_centered.json index 0abcd57c..aef8949b 100644 --- a/posterior_database/posteriors/radon_all-radon_variable_intercept_centered.json +++ b/posterior_database/posteriors/radon_all-radon_variable_intercept_centered.json @@ -1,6 +1,7 @@ { "name": "radon_all-radon_variable_intercept_centered", - "keywords": "radon", + "keywords": ["stan case study"], + "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "urls": null, "model_name": "radon_variable_intercept_centered", "data_name": "radon_all", diff --git a/posterior_database/posteriors/radon_all-radon_variable_intercept_noncentered.json b/posterior_database/posteriors/radon_all-radon_variable_intercept_noncentered.json index 14f279d6..d078e075 100644 --- a/posterior_database/posteriors/radon_all-radon_variable_intercept_noncentered.json +++ b/posterior_database/posteriors/radon_all-radon_variable_intercept_noncentered.json @@ -1,7 +1,7 @@ { "name": "radon_all-radon_variable_intercept_noncentered", - "keywords": "radon", - "urls": null, + "keywords": ["stan case study"], + "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_variable_intercept_noncentered", "data_name": "radon_all", "reference_posterior_name": null, diff --git a/posterior_database/posteriors/radon_all-radon_variable_intercept_slope_centered.json b/posterior_database/posteriors/radon_all-radon_variable_intercept_slope_centered.json index c5093c4e..b9abeecc 100644 --- a/posterior_database/posteriors/radon_all-radon_variable_intercept_slope_centered.json +++ b/posterior_database/posteriors/radon_all-radon_variable_intercept_slope_centered.json @@ -1,7 +1,7 @@ { "name": "radon_all-radon_variable_intercept_slope_centered", - "keywords": "radon", - "urls": null, + "keywords": ["stan case study"], + "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_variable_intercept_slope_centered", "data_name": "radon_all", "reference_posterior_name": null, diff --git a/posterior_database/posteriors/radon_all-radon_variable_intercept_slope_noncentered.json b/posterior_database/posteriors/radon_all-radon_variable_intercept_slope_noncentered.json index 5b5fdf5a..5bf9e7dc 100644 --- a/posterior_database/posteriors/radon_all-radon_variable_intercept_slope_noncentered.json +++ b/posterior_database/posteriors/radon_all-radon_variable_intercept_slope_noncentered.json @@ -1,7 +1,7 @@ { "name": "radon_all-radon_variable_intercept_slope_noncentered", - "keywords": "radon", - "urls": null, + "keywords": ["stan case study"], + "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_variable_intercept_slope_noncentered", "data_name": "radon_all", "reference_posterior_name": null, diff --git a/posterior_database/posteriors/radon_all-radon_variable_slope_centered.json b/posterior_database/posteriors/radon_all-radon_variable_slope_centered.json index c496b942..0b1e02e4 100644 --- a/posterior_database/posteriors/radon_all-radon_variable_slope_centered.json +++ b/posterior_database/posteriors/radon_all-radon_variable_slope_centered.json @@ -1,7 +1,7 @@ { "name": "radon_all-radon_variable_slope_centered", - "keywords": "radon", - "urls": null, + "keywords": ["stan case study"], + "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_variable_slope_centered", "data_name": "radon_all", "reference_posterior_name": null, diff --git a/posterior_database/posteriors/radon_all-radon_variable_slope_noncentered.json b/posterior_database/posteriors/radon_all-radon_variable_slope_noncentered.json index a206299d..3d96ad5a 100644 --- a/posterior_database/posteriors/radon_all-radon_variable_slope_noncentered.json +++ b/posterior_database/posteriors/radon_all-radon_variable_slope_noncentered.json @@ -1,7 +1,7 @@ { "name": "radon_all-radon_variable_slope_noncentered", - "keywords": "radon", - "urls": null, + "keywords": ["stan case study"], + "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_variable_slope_noncentered", "data_name": "radon_all", "reference_posterior_name": null, diff --git a/posterior_database/posteriors/radon_mn-radon_county_intercept.json b/posterior_database/posteriors/radon_mn-radon_county_intercept.json index b443eda6..08c305e9 100644 --- a/posterior_database/posteriors/radon_mn-radon_county_intercept.json +++ b/posterior_database/posteriors/radon_mn-radon_county_intercept.json @@ -1,6 +1,6 @@ { "name": "radon_mn-radon_county_intercept", - "keywords": ["radon", "stan_case_study"], + "keywords": ["stan case study"], "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_county_intercept", "data_name": "radon_mn", diff --git a/posterior_database/posteriors/radon_mn-radon_hierarchical_intercept_centered.json b/posterior_database/posteriors/radon_mn-radon_hierarchical_intercept_centered.json index bf50bee0..f6c07783 100644 --- a/posterior_database/posteriors/radon_mn-radon_hierarchical_intercept_centered.json +++ b/posterior_database/posteriors/radon_mn-radon_hierarchical_intercept_centered.json @@ -1,6 +1,6 @@ { "name": "radon_mn-radon_hierarchical_intercept_centered", - "keywords": ["radon", "stan_case_study"], + "keywords": ["stan case study"], "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_hierarchical_intercept_centered", "data_name": "radon_mn", diff --git a/posterior_database/posteriors/radon_mn-radon_hierarchical_intercept_noncentered.json b/posterior_database/posteriors/radon_mn-radon_hierarchical_intercept_noncentered.json index 08b16ae9..ec6e48fe 100644 --- a/posterior_database/posteriors/radon_mn-radon_hierarchical_intercept_noncentered.json +++ b/posterior_database/posteriors/radon_mn-radon_hierarchical_intercept_noncentered.json @@ -1,6 +1,6 @@ { "name": "radon_mn-radon_hierarchical_intercept_noncentered", - "keywords": ["radon", "stan_case_study"], + "keywords": ["arm book", "stan case study"], "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_hierarchical_intercept_noncentered", "data_name": "radon_mn", diff --git a/posterior_database/posteriors/radon_mn-radon_partially_pooled_centered.json b/posterior_database/posteriors/radon_mn-radon_partially_pooled_centered.json index 474a4499..5f29fd20 100644 --- a/posterior_database/posteriors/radon_mn-radon_partially_pooled_centered.json +++ b/posterior_database/posteriors/radon_mn-radon_partially_pooled_centered.json @@ -1,6 +1,6 @@ { "name": "radon_mn-radon_partially_pooled_centered", - "keywords": ["radon", "stan_case_study"], + "keywords": ["stan case study"], "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_partially_pooled_centered", "data_name": "radon_mn", diff --git a/posterior_database/posteriors/radon_mn-radon_partially_pooled_noncentered.json b/posterior_database/posteriors/radon_mn-radon_partially_pooled_noncentered.json index dabe8534..8932a7a2 100644 --- a/posterior_database/posteriors/radon_mn-radon_partially_pooled_noncentered.json +++ b/posterior_database/posteriors/radon_mn-radon_partially_pooled_noncentered.json @@ -1,6 +1,6 @@ { "name": "radon_mn-radon_partially_pooled_noncentered", - "keywords": ["radon", "stan_case_study"], + "keywords": ["stan case study"], "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_partially_pooled_noncentered", "data_name": "radon_mn", diff --git a/posterior_database/posteriors/radon_mn-radon_pooled.json b/posterior_database/posteriors/radon_mn-radon_pooled.json index 20236ab3..6463c67f 100644 --- a/posterior_database/posteriors/radon_mn-radon_pooled.json +++ b/posterior_database/posteriors/radon_mn-radon_pooled.json @@ -1,6 +1,6 @@ { "name": "radon_mn-radon_pooled", - "keywords": ["radon", "stan_case_study"], + "keywords": ["stan case study"], "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_pooled", "data_name": "radon_mn", diff --git a/posterior_database/posteriors/radon_mn-radon_variable_intercept_centered.json b/posterior_database/posteriors/radon_mn-radon_variable_intercept_centered.json index c03d169b..33912193 100644 --- a/posterior_database/posteriors/radon_mn-radon_variable_intercept_centered.json +++ b/posterior_database/posteriors/radon_mn-radon_variable_intercept_centered.json @@ -1,6 +1,6 @@ { "name": "radon_mn-radon_variable_intercept_centered", - "keywords": ["radon", "stan_case_study"], + "keywords": ["stan case study"], "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_variable_intercept_centered", "data_name": "radon_mn", diff --git a/posterior_database/posteriors/radon_mn-radon_variable_intercept_noncentered.json b/posterior_database/posteriors/radon_mn-radon_variable_intercept_noncentered.json index e0abd7be..3036e1f8 100644 --- a/posterior_database/posteriors/radon_mn-radon_variable_intercept_noncentered.json +++ b/posterior_database/posteriors/radon_mn-radon_variable_intercept_noncentered.json @@ -1,6 +1,6 @@ { "name": "radon_mn-radon_variable_intercept_noncentered", - "keywords": ["radon", "stan_case_study"], + "keywords": ["stan case study"], "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_variable_intercept_noncentered", "data_name": "radon_mn", diff --git a/posterior_database/posteriors/radon_mn-radon_variable_intercept_slope_centered.json b/posterior_database/posteriors/radon_mn-radon_variable_intercept_slope_centered.json index 908bc535..698abd1c 100644 --- a/posterior_database/posteriors/radon_mn-radon_variable_intercept_slope_centered.json +++ b/posterior_database/posteriors/radon_mn-radon_variable_intercept_slope_centered.json @@ -1,6 +1,6 @@ { "name": "radon_mn-radon_variable_intercept_slope_centered", - "keywords": ["radon", "stan_case_study"], + "keywords": ["stan case study"], "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_variable_intercept_slope_centered", "data_name": "radon_mn", diff --git a/posterior_database/posteriors/radon_mn-radon_variable_intercept_slope_noncentered.json b/posterior_database/posteriors/radon_mn-radon_variable_intercept_slope_noncentered.json index a468c872..75aa2b4c 100644 --- a/posterior_database/posteriors/radon_mn-radon_variable_intercept_slope_noncentered.json +++ b/posterior_database/posteriors/radon_mn-radon_variable_intercept_slope_noncentered.json @@ -1,6 +1,6 @@ { "name": "radon_mn-radon_variable_intercept_slope_noncentered", - "keywords": ["radon", "stan_case_study"], + "keywords": ["stan case study"], "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_variable_intercept_slope_noncentered", "data_name": "radon_mn", diff --git a/posterior_database/posteriors/radon_mn-radon_variable_slope_centered.json b/posterior_database/posteriors/radon_mn-radon_variable_slope_centered.json index e11fd983..0023035f 100644 --- a/posterior_database/posteriors/radon_mn-radon_variable_slope_centered.json +++ b/posterior_database/posteriors/radon_mn-radon_variable_slope_centered.json @@ -1,6 +1,6 @@ { "name": "radon_mn-radon_variable_slope_centered", - "keywords": ["radon", "stan_case_study"], + "keywords": ["stan case study"], "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_variable_slope_centered", "data_name": "radon_mn", diff --git a/posterior_database/posteriors/radon_mn-radon_variable_slope_noncentered.json b/posterior_database/posteriors/radon_mn-radon_variable_slope_noncentered.json index 9ec5d97a..c90375c1 100644 --- a/posterior_database/posteriors/radon_mn-radon_variable_slope_noncentered.json +++ b/posterior_database/posteriors/radon_mn-radon_variable_slope_noncentered.json @@ -1,6 +1,6 @@ { "name": "radon_mn-radon_variable_slope_noncentered", - "keywords": ["radon", "stan_case_study"], + "keywords": ["stan case study"], "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_name": "radon_variable_slope_noncentered", "data_name": "radon_mn", diff --git a/posterior_database/posteriors/radon_mod-radon_county.json b/posterior_database/posteriors/radon_mod-radon_county.json index b2c7f2df..12929eb3 100644 --- a/posterior_database/posteriors/radon_mod-radon_county.json +++ b/posterior_database/posteriors/radon_mod-radon_county.json @@ -1,6 +1,6 @@ { "name": "radon_mod-radon_county", - "keywords": ["stan_benchmark", "hierarchical model"], + "keywords": ["warmup paper", "hierarchical model"], "urls": "https://github.com/bbbales2/cmdstan-warmup/blob/develop/examples/radon", "model_name": "radon_county", "data_name": "radon_mod", diff --git a/posterior_database/posteriors/rats_data-rats_model.json b/posterior_database/posteriors/rats_data-rats_model.json index 881d474c..95cec01b 100644 --- a/posterior_database/posteriors/rats_data-rats_model.json +++ b/posterior_database/posteriors/rats_data-rats_model.json @@ -1,5 +1,5 @@ { - "keywords": ["rats", "linear growth curve"], + "keywords": ["growth curve model"], "urls": "https://github.com/stan-dev/example-models/tree/master/bugs_examples/vol1/rats", "references": "mrc1winbugs", "dimensions": { diff --git a/posterior_database/posteriors/rstan_downloads-prophet.json b/posterior_database/posteriors/rstan_downloads-prophet.json index 45c5c6f3..f7484654 100644 --- a/posterior_database/posteriors/rstan_downloads-prophet.json +++ b/posterior_database/posteriors/rstan_downloads-prophet.json @@ -1,6 +1,6 @@ { "name": "rstan_downloads-prophet", - "keywords": ["stan_benchmark", "time series", "structural time series"], + "keywords": ["warmup paper", "time series"], "urls": "https://github.com/bbbales2/cmdstan-warmup/blob/develop/examples/prophet", "model_name": "prophet", "data_name": "rstan_downloads", diff --git a/posterior_database/posteriors/sat-hier_2pl.json b/posterior_database/posteriors/sat-hier_2pl.json index ea8267e6..a9459671 100644 --- a/posterior_database/posteriors/sat-hier_2pl.json +++ b/posterior_database/posteriors/sat-hier_2pl.json @@ -1,6 +1,6 @@ { "name": "sat-hier_2pl", - "keywords": ["stan_examples", "stan_benchmark"], + "keywords": ["stan case studies", "item response theory", "hierarchical", "binomial"], "urls": "https://mc-stan.org/users/documentation/case-studies/hierarchical_2pl.html", "model_name": "hier_2pl", "data_name": "sat", diff --git a/posterior_database/posteriors/sblrc-blr.json b/posterior_database/posteriors/sblrc-blr.json index 41c45895..6e2401a6 100644 --- a/posterior_database/posteriors/sblrc-blr.json +++ b/posterior_database/posteriors/sblrc-blr.json @@ -1,6 +1,6 @@ { "name": "sblrc-blr", - "keywords": ["pathfinder_paper"], + "keywords": ["pathfinder_paper", "linear regression"], "urls": [], "model_name": "blr", "data_name": "sblrc", diff --git a/posterior_database/posteriors/sblri-blr.json b/posterior_database/posteriors/sblri-blr.json index 1e8cfd20..eb244d19 100644 --- a/posterior_database/posteriors/sblri-blr.json +++ b/posterior_database/posteriors/sblri-blr.json @@ -1,6 +1,6 @@ { "name": "sblri-blr", - "keywords": [], + "keywords": ["linear regression"], "urls": [], "model_name": "blr", "data_name": "sblri", diff --git a/posterior_database/posteriors/seeds_data-seeds_centered_model.json b/posterior_database/posteriors/seeds_data-seeds_centered_model.json index 88628e16..9d6af94e 100644 --- a/posterior_database/posteriors/seeds_data-seeds_centered_model.json +++ b/posterior_database/posteriors/seeds_data-seeds_centered_model.json @@ -1,5 +1,5 @@ { - "keywords": ["seeds", "germination", "random effect", "logistic regression", "stanified", "centered"], + "keywords": ["random effect", "logistic regression"], "urls": "http://www.mrc-bsu.cam.ac.uk/wp-content/uploads/WinBUGS_Vol1.pdf", "references": "crowder1978beta", "dimensions": { diff --git a/posterior_database/posteriors/seeds_data-seeds_model.json b/posterior_database/posteriors/seeds_data-seeds_model.json index 742ad9b3..231615cc 100644 --- a/posterior_database/posteriors/seeds_data-seeds_model.json +++ b/posterior_database/posteriors/seeds_data-seeds_model.json @@ -1,5 +1,5 @@ { - "keywords": ["seeds", "germination", "random effect", "logistic regression"], + "keywords": ["random effect", "logistic regression"], "urls": "http://www.mrc-bsu.cam.ac.uk/wp-content/uploads/WinBUGS_Vol1.pdf", "references": "crowder1978beta", "dimensions": { diff --git a/posterior_database/posteriors/seeds_data-seeds_stanified_model.json b/posterior_database/posteriors/seeds_data-seeds_stanified_model.json index 9a01adbf..aa49a312 100644 --- a/posterior_database/posteriors/seeds_data-seeds_stanified_model.json +++ b/posterior_database/posteriors/seeds_data-seeds_stanified_model.json @@ -1,5 +1,5 @@ { - "keywords": ["seeds", "germination", "random effect", "logistic regression", "stanified"], + "keywords": ["random effect", "logistic regression"], "urls": "http://www.mrc-bsu.cam.ac.uk/wp-content/uploads/WinBUGS_Vol1.pdf", "references": "crowder1978beta", "dimensions": { diff --git a/posterior_database/posteriors/sesame_data-sesame_one_pred_a.json b/posterior_database/posteriors/sesame_data-sesame_one_pred_a.json index 6e5cc781..46817fa1 100644 --- a/posterior_database/posteriors/sesame_data-sesame_one_pred_a.json +++ b/posterior_database/posteriors/sesame_data-sesame_one_pred_a.json @@ -1,5 +1,5 @@ { - "keywords": ["sesame", "linear model"], + "keywords": ["arm book"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.10", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/sir-sir.json b/posterior_database/posteriors/sir-sir.json index 0b8ddb92..2212e66d 100644 --- a/posterior_database/posteriors/sir-sir.json +++ b/posterior_database/posteriors/sir-sir.json @@ -1,9 +1,9 @@ { "name": "sir-sir", "keywords": [ - "stan_benchmark" + "stan benchmark" ], - "urls": [], + "urls": ["https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/sir"], "model_name": "sir", "data_name": "sir", "reference_posterior_name": null, diff --git a/posterior_database/posteriors/soil_carbon-soil_incubation.json b/posterior_database/posteriors/soil_carbon-soil_incubation.json index d517bd04..3883ade9 100644 --- a/posterior_database/posteriors/soil_carbon-soil_incubation.json +++ b/posterior_database/posteriors/soil_carbon-soil_incubation.json @@ -1,6 +1,6 @@ { "name": "soil_carbon-soil_incubation", - "keywords": ["stan_examples", "stan_benchmark"], + "keywords": ["stan examples"], "urls": "https://github.com/stan-dev/example-models/blob/master/knitr/soil-carbon", "model_name": "soil_incubation", "data_name": "soil_carbon", diff --git a/posterior_database/posteriors/surgical_data-surgical_model.json b/posterior_database/posteriors/surgical_data-surgical_model.json index a0c55239..f5bbbfd4 100644 --- a/posterior_database/posteriors/surgical_data-surgical_model.json +++ b/posterior_database/posteriors/surgical_data-surgical_model.json @@ -1,5 +1,5 @@ { - "keywords": ["hospital", "ranking", "surgical"], + "keywords": ["bugs examples"], "urls": "https://github.com/stan-dev/example-models/tree/master/bugs_examples/vol1/rats", "references": "mrc1winbugs", "dimensions": { diff --git a/posterior_database/posteriors/three_docs1200-ldaK2.json b/posterior_database/posteriors/three_docs1200-ldaK2.json index e142b731..4decf679 100644 --- a/posterior_database/posteriors/three_docs1200-ldaK2.json +++ b/posterior_database/posteriors/three_docs1200-ldaK2.json @@ -1,5 +1,5 @@ { - "keywords": ["multimodal", "text"], + "keywords": ["multimodal", "text data"], "references": "jonasson2021rapid", "dimensions": { "theta": 6, diff --git a/posterior_database/posteriors/wells_data-wells_daae_c_model.json b/posterior_database/posteriors/wells_data-wells_daae_c_model.json index 0557c7d4..781f2923 100644 --- a/posterior_database/posteriors/wells_data-wells_daae_c_model.json +++ b/posterior_database/posteriors/wells_data-wells_daae_c_model.json @@ -1,5 +1,5 @@ { - "keywords": ["arm_book", "logistic regression"], + "keywords": ["arm book", "logistic regression"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/wells_data-wells_dae_c_model.json b/posterior_database/posteriors/wells_data-wells_dae_c_model.json index 7e3919a2..b3f69016 100644 --- a/posterior_database/posteriors/wells_data-wells_dae_c_model.json +++ b/posterior_database/posteriors/wells_data-wells_dae_c_model.json @@ -1,5 +1,5 @@ { - "keywords": ["arm_book", "logistic regression"], + "keywords": ["arm book", "logistic regression"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/wells_data-wells_dae_inter_model.json b/posterior_database/posteriors/wells_data-wells_dae_inter_model.json index d25fa9d0..82bd583f 100644 --- a/posterior_database/posteriors/wells_data-wells_dae_inter_model.json +++ b/posterior_database/posteriors/wells_data-wells_dae_inter_model.json @@ -1,5 +1,5 @@ { - "keywords": ["arm_book", "logistic regression", "interaction"], + "keywords": ["arm book", "logistic regression", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/wells_data-wells_dae_model.json b/posterior_database/posteriors/wells_data-wells_dae_model.json index d99b18fc..00fbfa3b 100644 --- a/posterior_database/posteriors/wells_data-wells_dae_model.json +++ b/posterior_database/posteriors/wells_data-wells_dae_model.json @@ -1,5 +1,5 @@ { - "keywords": ["arm_book", "logistic regression"], + "keywords": ["arm book", "logistic regression"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/wells_data-wells_dist.json b/posterior_database/posteriors/wells_data-wells_dist.json index 07fe62a7..ec690396 100644 --- a/posterior_database/posteriors/wells_data-wells_dist.json +++ b/posterior_database/posteriors/wells_data-wells_dist.json @@ -1,5 +1,5 @@ { - "keywords": ["arm_book", "logistic regression"], + "keywords": ["arm book", "logistic regression"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/wells_data-wells_dist100_model.json b/posterior_database/posteriors/wells_data-wells_dist100_model.json index b8f27b85..0db0bf00 100644 --- a/posterior_database/posteriors/wells_data-wells_dist100_model.json +++ b/posterior_database/posteriors/wells_data-wells_dist100_model.json @@ -1,5 +1,5 @@ { - "keywords": ["arm_book", "logistic regression"], + "keywords": ["arm book", "logistic regression"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/wells_data-wells_dist100ars_model.json b/posterior_database/posteriors/wells_data-wells_dist100ars_model.json index 4eec99d1..f1384a2c 100644 --- a/posterior_database/posteriors/wells_data-wells_dist100ars_model.json +++ b/posterior_database/posteriors/wells_data-wells_dist100ars_model.json @@ -1,5 +1,5 @@ { - "keywords": ["arm_book", "logistic regression"], + "keywords": ["arm book", "logistic regression"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/wells_data-wells_interaction_c_model.json b/posterior_database/posteriors/wells_data-wells_interaction_c_model.json index 0327c3e4..d988099a 100644 --- a/posterior_database/posteriors/wells_data-wells_interaction_c_model.json +++ b/posterior_database/posteriors/wells_data-wells_interaction_c_model.json @@ -1,5 +1,5 @@ { - "keywords": ["arm_book", "logistic regression", "interaction"], + "keywords": ["arm book", "logistic regression", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { From 1d3d8bd3394510ca03421194ead9e99e9cd3feaf Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Mon, 24 Apr 2023 21:35:40 +0200 Subject: [PATCH 10/31] Minor tag fixes --- posterior_database/posteriors/M0_data-M0_model.json | 2 +- posterior_database/posteriors/Mb_data-Mb_model.json | 2 +- posterior_database/posteriors/Mh_data-Mh_model.json | 2 +- posterior_database/posteriors/Mt_data-Mt_model.json | 2 +- posterior_database/posteriors/Mtbh_data-Mtbh_model.json | 2 +- posterior_database/posteriors/Mth_data-Mth_model.json | 2 +- posterior_database/posteriors/dugongs_data-dugongs_model.json | 2 +- posterior_database/posteriors/mcycle_splines-accel_splines.json | 2 +- posterior_database/posteriors/mnist_100-nn_rbm1bJ10.json | 2 +- posterior_database/posteriors/nes2000-nes.json | 2 +- .../posteriors/nes_logit_data-nes_logit_model.json | 2 +- posterior_database/posteriors/sat-hier_2pl.json | 2 +- posterior_database/posteriors/sblrc-blr.json | 2 +- posterior_database/posteriors/three_men1-ldaK2.json | 2 +- posterior_database/posteriors/three_men2-ldaK2.json | 2 +- posterior_database/posteriors/three_men3-ldaK2.json | 2 +- .../posteriors/wells_data-wells_interaction_model.json | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/posterior_database/posteriors/M0_data-M0_model.json b/posterior_database/posteriors/M0_data-M0_model.json index c922825b..d6c37fdf 100644 --- a/posterior_database/posteriors/M0_data-M0_model.json +++ b/posterior_database/posteriors/M0_data-M0_model.json @@ -1,5 +1,5 @@ { - "keywords": ["bpa_book", "capture-recapture"], + "keywords": ["bpa book", "capture-recapture"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/Mb_data-Mb_model.json b/posterior_database/posteriors/Mb_data-Mb_model.json index 11823612..a7b8df55 100644 --- a/posterior_database/posteriors/Mb_data-Mb_model.json +++ b/posterior_database/posteriors/Mb_data-Mb_model.json @@ -1,5 +1,5 @@ { - "keywords": ["bpa_book", "capture-recapture"], + "keywords": ["bpa book", "capture-recapture"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/Mh_data-Mh_model.json b/posterior_database/posteriors/Mh_data-Mh_model.json index 53a39311..979da011 100644 --- a/posterior_database/posteriors/Mh_data-Mh_model.json +++ b/posterior_database/posteriors/Mh_data-Mh_model.json @@ -1,5 +1,5 @@ { - "keywords": ["heterogeneity model", "logistic-normal", "bpa_book"], + "keywords": ["heterogeneity model", "logistic-normal", "bpa book"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/Mt_data-Mt_model.json b/posterior_database/posteriors/Mt_data-Mt_model.json index c3c5505a..6405cbc6 100644 --- a/posterior_database/posteriors/Mt_data-Mt_model.json +++ b/posterior_database/posteriors/Mt_data-Mt_model.json @@ -1,5 +1,5 @@ { - "keywords": ["bpa_book", "capture-recapture"], + "keywords": ["bpa book", "capture-recapture"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/Mtbh_data-Mtbh_model.json b/posterior_database/posteriors/Mtbh_data-Mtbh_model.json index ba093a83..4416a037 100644 --- a/posterior_database/posteriors/Mtbh_data-Mtbh_model.json +++ b/posterior_database/posteriors/Mtbh_data-Mtbh_model.json @@ -1,5 +1,5 @@ { - "keywords": ["bpa_book", "capture-recapture"], + "keywords": ["bpa book", "capture-recapture"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/Mth_data-Mth_model.json b/posterior_database/posteriors/Mth_data-Mth_model.json index a197a810..1872524a 100644 --- a/posterior_database/posteriors/Mth_data-Mth_model.json +++ b/posterior_database/posteriors/Mth_data-Mth_model.json @@ -1,5 +1,5 @@ { - "keywords": ["bpa_book", "capture-recapture"], + "keywords": ["bpa book", "capture-recapture"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/dugongs_data-dugongs_model.json b/posterior_database/posteriors/dugongs_data-dugongs_model.json index b5e806d9..e82b8885 100644 --- a/posterior_database/posteriors/dugongs_data-dugongs_model.json +++ b/posterior_database/posteriors/dugongs_data-dugongs_model.json @@ -1,5 +1,5 @@ { - "keywords": ["bugs examples", "non-linear", "growth curve model"], + "keywords": ["bugs examples", "growth curve model"], "urls": "https://github.com/stan-dev/example-models/tree/master/bugs_examples/vol2", "references": "mrc2winbugs", "dimensions": { diff --git a/posterior_database/posteriors/mcycle_splines-accel_splines.json b/posterior_database/posteriors/mcycle_splines-accel_splines.json index b14e6950..3838dffb 100644 --- a/posterior_database/posteriors/mcycle_splines-accel_splines.json +++ b/posterior_database/posteriors/mcycle_splines-accel_splines.json @@ -1,6 +1,6 @@ { "name": "mcycle_splines-accel_splines", - "keywords": ["stan_benchmark", "spline"], + "keywords": ["warmup paper", "spline"], "urls": "https://github.com/bbbales2/cmdstan-warmup/blob/develop/examples/accel_splines/", "model_name": "accel_splines", "data_name": "mcycle_splines", diff --git a/posterior_database/posteriors/mnist_100-nn_rbm1bJ10.json b/posterior_database/posteriors/mnist_100-nn_rbm1bJ10.json index 8ca52849..fb4a91f8 100644 --- a/posterior_database/posteriors/mnist_100-nn_rbm1bJ10.json +++ b/posterior_database/posteriors/mnist_100-nn_rbm1bJ10.json @@ -1,6 +1,6 @@ { "name": "mnist_100-nn_rbm1bJ10", - "keywords": ["neural net", "multimodal"] + "keywords": ["neural net", "multimodal"], "urls": null, "model_name": "nn_rbm1bJ10", "data_name": "mnist_100", diff --git a/posterior_database/posteriors/nes2000-nes.json b/posterior_database/posteriors/nes2000-nes.json index 175ac3ba..e5e21e7d 100644 --- a/posterior_database/posteriors/nes2000-nes.json +++ b/posterior_database/posteriors/nes2000-nes.json @@ -1,6 +1,6 @@ { "name": "nes2000-nes", - "keywords": ["arm book", "stan examples", "pathfinder_paper"], + "keywords": ["arm book", "stan examples", "pathfinder paper"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.4", "model_name": "nes", "data_name": "nes2000", diff --git a/posterior_database/posteriors/nes_logit_data-nes_logit_model.json b/posterior_database/posteriors/nes_logit_data-nes_logit_model.json index e3eafe6c..eee7a94f 100644 --- a/posterior_database/posteriors/nes_logit_data-nes_logit_model.json +++ b/posterior_database/posteriors/nes_logit_data-nes_logit_model.json @@ -1,5 +1,5 @@ { - "keywords": ["arm_book"], + "keywords": ["arm book"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { diff --git a/posterior_database/posteriors/sat-hier_2pl.json b/posterior_database/posteriors/sat-hier_2pl.json index a9459671..7bf67f6c 100644 --- a/posterior_database/posteriors/sat-hier_2pl.json +++ b/posterior_database/posteriors/sat-hier_2pl.json @@ -1,6 +1,6 @@ { "name": "sat-hier_2pl", - "keywords": ["stan case studies", "item response theory", "hierarchical", "binomial"], + "keywords": ["stan case study", "item response theory model", "hierarchical model", "binomial"], "urls": "https://mc-stan.org/users/documentation/case-studies/hierarchical_2pl.html", "model_name": "hier_2pl", "data_name": "sat", diff --git a/posterior_database/posteriors/sblrc-blr.json b/posterior_database/posteriors/sblrc-blr.json index 6e2401a6..81b4ef25 100644 --- a/posterior_database/posteriors/sblrc-blr.json +++ b/posterior_database/posteriors/sblrc-blr.json @@ -1,6 +1,6 @@ { "name": "sblrc-blr", - "keywords": ["pathfinder_paper", "linear regression"], + "keywords": ["pathfinder paper", "linear regression"], "urls": [], "model_name": "blr", "data_name": "sblrc", diff --git a/posterior_database/posteriors/three_men1-ldaK2.json b/posterior_database/posteriors/three_men1-ldaK2.json index 047f6cf6..13848def 100644 --- a/posterior_database/posteriors/three_men1-ldaK2.json +++ b/posterior_database/posteriors/three_men1-ldaK2.json @@ -1,5 +1,5 @@ { - "keywords": ["multimodal", "text"], + "keywords": ["multimodal", "text data"], "references": "jonasson2021rapid", "dimensions": { "theta": 12, diff --git a/posterior_database/posteriors/three_men2-ldaK2.json b/posterior_database/posteriors/three_men2-ldaK2.json index d5569612..c20ffa63 100644 --- a/posterior_database/posteriors/three_men2-ldaK2.json +++ b/posterior_database/posteriors/three_men2-ldaK2.json @@ -1,5 +1,5 @@ { - "keywords": ["multimodal", "text"], + "keywords": ["multimodal", "text data"], "references": "jonasson2021rapid", "dimensions": { "theta": 28, diff --git a/posterior_database/posteriors/three_men3-ldaK2.json b/posterior_database/posteriors/three_men3-ldaK2.json index 96538b35..fc340822 100644 --- a/posterior_database/posteriors/three_men3-ldaK2.json +++ b/posterior_database/posteriors/three_men3-ldaK2.json @@ -1,5 +1,5 @@ { - "keywords": ["multimodal", "text"], + "keywords": ["multimodal", "text data"], "references": "jonasson2021rapid", "dimensions": { "theta": 18, diff --git a/posterior_database/posteriors/wells_data-wells_interaction_model.json b/posterior_database/posteriors/wells_data-wells_interaction_model.json index 9bb4eb6b..496db73a 100644 --- a/posterior_database/posteriors/wells_data-wells_interaction_model.json +++ b/posterior_database/posteriors/wells_data-wells_interaction_model.json @@ -1,5 +1,5 @@ { - "keywords": ["arm_book", "logistic regression", "interaction"], + "keywords": ["arm book", "logistic regression", "interaction"], "urls": "https://github.com/stan-dev/example-models/tree/master/ARM/Ch.5", "references": "gelman2006data", "dimensions": { From 3be74ac17f1e804a097c3a968031a220e6bb6a1a Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Mon, 24 Apr 2023 21:48:03 +0200 Subject: [PATCH 11/31] Minor tag fixes --- .../posteriors/GLMM_Poisson_data-GLMM_Poisson_model.json | 2 +- .../posteriors/GLM_Poisson_Data-GLM_Poisson_model.json | 2 +- posterior_database/posteriors/lsat_data-lsat_model.json | 2 +- .../posteriors/seeds_data-seeds_centered_model.json | 2 +- posterior_database/posteriors/seeds_data-seeds_model.json | 2 +- .../posteriors/seeds_data-seeds_stanified_model.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/posterior_database/posteriors/GLMM_Poisson_data-GLMM_Poisson_model.json b/posterior_database/posteriors/GLMM_Poisson_data-GLMM_Poisson_model.json index 2045b14d..9daaf79c 100644 --- a/posterior_database/posteriors/GLMM_Poisson_data-GLMM_Poisson_model.json +++ b/posterior_database/posteriors/GLMM_Poisson_data-GLMM_Poisson_model.json @@ -1,5 +1,5 @@ { - "keywords": ["bpa book", "GLMM", "Poisson"], + "keywords": ["bpa book", "GLMM", "Poisson model"], "urls": "https://github.com/stan-dev/example-models/blob/master/BPA/Ch.06", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/GLM_Poisson_Data-GLM_Poisson_model.json b/posterior_database/posteriors/GLM_Poisson_Data-GLM_Poisson_model.json index 40e248d3..599c60ac 100644 --- a/posterior_database/posteriors/GLM_Poisson_Data-GLM_Poisson_model.json +++ b/posterior_database/posteriors/GLM_Poisson_Data-GLM_Poisson_model.json @@ -1,5 +1,5 @@ { - "keywords": ["bpa book", "Poisson"], + "keywords": ["bpa book", "Poisson model"], "urls": "https://github.com/stan-dev/example-models/tree/master/BPA/Ch.03", "references": "kery2011population", "dimensions": { diff --git a/posterior_database/posteriors/lsat_data-lsat_model.json b/posterior_database/posteriors/lsat_data-lsat_model.json index a5d2cf8f..09fa5bf1 100644 --- a/posterior_database/posteriors/lsat_data-lsat_model.json +++ b/posterior_database/posteriors/lsat_data-lsat_model.json @@ -1,5 +1,5 @@ { - "keywords": ["bugs examples", "random effects"], + "keywords": ["stan examples", "bugs examples", "random effects model"], "urls": "https://github.com/stan-dev/example-models/tree/master/bugs_examples/vol1/lsat", "references": "mrc1winbugs", "dimensions": { diff --git a/posterior_database/posteriors/seeds_data-seeds_centered_model.json b/posterior_database/posteriors/seeds_data-seeds_centered_model.json index 9d6af94e..fcf975c0 100644 --- a/posterior_database/posteriors/seeds_data-seeds_centered_model.json +++ b/posterior_database/posteriors/seeds_data-seeds_centered_model.json @@ -1,5 +1,5 @@ { - "keywords": ["random effect", "logistic regression"], + "keywords": ["random effects model", "logistic regression"], "urls": "http://www.mrc-bsu.cam.ac.uk/wp-content/uploads/WinBUGS_Vol1.pdf", "references": "crowder1978beta", "dimensions": { diff --git a/posterior_database/posteriors/seeds_data-seeds_model.json b/posterior_database/posteriors/seeds_data-seeds_model.json index 231615cc..5b5d6dfb 100644 --- a/posterior_database/posteriors/seeds_data-seeds_model.json +++ b/posterior_database/posteriors/seeds_data-seeds_model.json @@ -1,5 +1,5 @@ { - "keywords": ["random effect", "logistic regression"], + "keywords": ["random effects model", "logistic regression"], "urls": "http://www.mrc-bsu.cam.ac.uk/wp-content/uploads/WinBUGS_Vol1.pdf", "references": "crowder1978beta", "dimensions": { diff --git a/posterior_database/posteriors/seeds_data-seeds_stanified_model.json b/posterior_database/posteriors/seeds_data-seeds_stanified_model.json index aa49a312..fa8f5f77 100644 --- a/posterior_database/posteriors/seeds_data-seeds_stanified_model.json +++ b/posterior_database/posteriors/seeds_data-seeds_stanified_model.json @@ -1,5 +1,5 @@ { - "keywords": ["random effect", "logistic regression"], + "keywords": ["random effects model", "logistic regression"], "urls": "http://www.mrc-bsu.cam.ac.uk/wp-content/uploads/WinBUGS_Vol1.pdf", "references": "crowder1978beta", "dimensions": { From 7b676a63e6643bba30f083cb7a96bd651dfd7fdd Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Mon, 24 Apr 2023 21:48:13 +0200 Subject: [PATCH 12/31] Definitions of keywords --- doc/KEYWORDS.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/doc/KEYWORDS.md b/doc/KEYWORDS.md index d31ba54b..ac198964 100644 --- a/doc/KEYWORDS.md +++ b/doc/KEYWORDS.md @@ -1,16 +1,27 @@ Posterior keywords ================== -Below are the definition of some of the keywords used. These are tags added to posterior that we known. Hence, there might exist posteriors that should have the keyword where it is currently missing. If you see this, please file an issue and we will try to fix it. - -```arm book```: Posteriors that can be found in Gelman, A., & Hill, J. (2006). Data analysis using regression and multilevel/hierarchical models. Cambridge university press. +Below are the definition of some of the keywords used. These are tags added to posterior that we __known__. Hence, there might exist posteriors that should have the keyword where it is currently missing. If you see this, please file an issue and we will try to fix it. ```easy```: Posteriors that can be computed with standard Stan settings (adapt delta = 0.8) without any divergent transitions for 10 000 draws and on average uses less than 100 leapfrog steps. ```slow```: Posteriors that takes more than 1h to run 1000 iterations/warmup on a standard CPU. The difficulties can be due to different reasons. + +```arm book```: Posteriors that can be found in Gelman, A., & Hill, J. (2006). Data analysis using regression and multilevel/hierarchical models. Cambridge university press. + ```pathfinder paper```: Posteriors used in Zhang, L., Carpenter, B., Gelman, A., & Vehtari, A. (2022). Pathfinder: Parallel quasi-Newton variational inference. Journal of Machine Learning Research, 23(306), 1-49. +```bpa book```: Posteriors translated by Hiroki Itô from Kéry, M., & Schaub, M. (2011). Bayesian population analysis using WinBUGS: a hierarchical perspective. Academic Press. + +```stan benchmark```: Early posteriors used in the Stan repository "Benchmark Models for Evaluating Algorithm Accuracy". The repository can be found here: +https://github.com/stan-dev/stat_comp_benchmarks + +```stan case study```: Posteriors for Stan cases studies. See the following URL for more information: +https://mc-stan.org/users/documentation/case-studies.html +```warmup paper```: Posteriors used in Bales, B., Pourzanjani, A., Vehtari, A., & Petzold, L. (2019). Selecting the metric in Hamiltonian monte carlo. arXiv preprint arXiv:1905.11916. +```bugs examples``` Posteriors from BUGS example models and data. See the following URL for more information: https://github.com/stan-dev/example-models/tree/master/bugs_examples +```stan examples``` Posteriors from Stan examples at: https://github.com/stan-dev/example-models From e423a847368dfad68e6a6c2b911613fa578eaa0b Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Thu, 14 Sep 2023 15:25:56 +0200 Subject: [PATCH 13/31] Updates reference draws --- .github/workflows/posteriordb_content.yml | 2 +- doc/REFERENCE_POSTERIOR_DEFINITION.md | 17 +++-------------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/.github/workflows/posteriordb_content.yml b/.github/workflows/posteriordb_content.yml index 82394d6f..bb263f21 100644 --- a/.github/workflows/posteriordb_content.yml +++ b/.github/workflows/posteriordb_content.yml @@ -40,7 +40,7 @@ jobs: - name: Cache R packages if: runner.os != 'Windows' - uses: actions/cache@v1 + uses: actions/cache@v2 with: path: ${{ env.R_LIBS_USER }} key: ${{ runner.os }}-r-${{ matrix.config.r }}-${{ hashFiles('DESCRIPTION') }} diff --git a/doc/REFERENCE_POSTERIOR_DEFINITION.md b/doc/REFERENCE_POSTERIOR_DEFINITION.md index 2d4db5ee..92a8e45c 100644 --- a/doc/REFERENCE_POSTERIOR_DEFINITION.md +++ b/doc/REFERENCE_POSTERIOR_DEFINITION.md @@ -5,10 +5,10 @@ The purpose of the reference posterior definition is to define the criteria for A reference posterior should have: 1. 10 000 draws per parameter in the model. -1. Each parameter should have an Rhat (see [arXiv](https://arxiv.org/abs/1903.08008)) below 1.01. -1. The effective sample size (bulk and tail) should fall within a probability bound of 0.95. See details below. +1. An Rhat (see [arXiv](https://arxiv.org/abs/1903.08008)) below 1.01 for all parameters. +1. Approximately independent draws, i.e all parameters have an autocorrelation at lag 1 that is less than 0.05. 1. All Expected Fraction of Missing Information (E-FMI) is below 0.2 -1. Efficient sample size (ESS) / iteration > 0.0001 +1. No divergent transitions (if HMC is used) Computing Reference Posteriors Draws @@ -29,14 +29,3 @@ Check that: If it is possible to compute the true posterior analytically, we can make draws from the posterior distribution directly. - - - -Computing parameter ESS bounds ------- - -The variability of ESS estimate is relatively high, so to assert that we have a reasonable bound on the ESS values, we have simulated the distribution for ESS bulk and ESS tail (see [arXiv](https://arxiv.org/abs/1903.08008)) based on 10 000 normal draws. - -We now check that the ESS bulk and tail is roughly within 4 SD from a NULL distribution (that is roughly ```sqrt(7 * S)``` where ```S``` is the total number of draws. This is a rough check for the ESS values, but far from perfect. In the long run, we want to check this with a hierarchical model instead. - -See `ess_bounds()` in ```rpackage/R/utils_reference_posterior.R``` to see details for how bounds are chosen. From e9828ed177fb78fbb6e52e6ad62b38fa49f691ee Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Thu, 14 Sep 2023 19:52:30 +0200 Subject: [PATCH 14/31] Updated arK --- posterior_database/models/info/arK.info.json | 3 ++- posterior_database/models/stan/arK.stan | 10 ++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/posterior_database/models/info/arK.info.json b/posterior_database/models/info/arK.info.json index 8925c0b5..3d096cf3 100644 --- a/posterior_database/models/info/arK.info.json +++ b/posterior_database/models/info/arK.info.json @@ -14,7 +14,8 @@ }, "model_implementations": { "stan": { - "model_code": "models/stan/arK.stan" + "model_code": "models/stan/arK.stan", + "stan_version": ">=2.26.0" } }, "added_by": "Mans Magnusson", diff --git a/posterior_database/models/stan/arK.stan b/posterior_database/models/stan/arK.stan index d3177c88..847511de 100644 --- a/posterior_database/models/stan/arK.stan +++ b/posterior_database/models/stan/arK.stan @@ -1,25 +1,23 @@ data { int K; int T; - real y[T]; + array[T] real y; } - parameters { real alpha; - real beta[K]; + array[K] real beta; real sigma; } - model { alpha ~ normal(0, 10); beta ~ normal(0, 10); sigma ~ cauchy(0, 2.5); - for (t in (K+1):T) { + for (t in (K + 1) : T) { real mu; mu = alpha; - for (k in 1:K) + for (k in 1 : K) mu = mu + beta[k] * y[t - k]; y[t] ~ normal(mu, sigma); From 70688f0bc4fc7cfad07b0fb82659b3a41d5f5639 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Fri, 15 Sep 2023 13:50:50 +0200 Subject: [PATCH 15/31] Updated 2pl_latent... --- .../models/info/2pl_latent_reg_irt.info.json | 16 +---- .../models/stan/2pl_latent_reg_irt.stan | 72 +++++++++++-------- 2 files changed, 42 insertions(+), 46 deletions(-) diff --git a/posterior_database/models/info/2pl_latent_reg_irt.info.json b/posterior_database/models/info/2pl_latent_reg_irt.info.json index 4291b8b5..bbf20078 100644 --- a/posterior_database/models/info/2pl_latent_reg_irt.info.json +++ b/posterior_database/models/info/2pl_latent_reg_irt.info.json @@ -1,15 +1 @@ -{ - "name": "2pl_latent_reg_irt", - "keywords": "item response model", - "title": "Two-parameter logistic item theory model with latent regression", - "description": "The Rasch model (Rasch 1960) is an item response theory model for dichotomous items. The two-parameter logistic model (2PL) (Swaminathan and Gifford 1985) is an item response theory model that includes parameters for both the difficulty and discrimination of dichotomous items. The version presented includes a latent regression. However, the latent regression part of the model may be restricted to an intercept only, resulting in a regular 2PL.", - "urls": "https://github.com/danielcfurr/edstan", - "references": null, - "added_by": "Keane Nguyen", - "added_date": "2021-08-03", - "model_implementations": { - "stan": { - "model_code": "models/stan/2pl_latent_reg_irt.stan" - } - } -} +{"name":["2pl_latent_reg_irt"],"keywords":["item response model"],"title":["Two-parameter logistic item theory model with latent regression"],"description":["The Rasch model (Rasch 1960) is an item response theory model for dichotomous items. The two-parameter logistic model (2PL) (Swaminathan and Gifford 1985) is an item response theory model that includes parameters for both the difficulty and discrimination of dichotomous items. The version presented includes a latent regression. However, the latent regression part of the model may be restricted to an intercept only, resulting in a regular 2PL."],"urls":["https://github.com/danielcfurr/edstan"],"references":{},"added_by":["Keane Nguyen"],"added_date":["2021-08-03"],"model_implementations":{"stan":{"model_code":["models/stan/2pl_latent_reg_irt.stan"],"stan_version":[">=2.26.0"]}}} diff --git a/posterior_database/models/stan/2pl_latent_reg_irt.stan b/posterior_database/models/stan/2pl_latent_reg_irt.stan index 3135b5a0..e969eca4 100644 --- a/posterior_database/models/stan/2pl_latent_reg_irt.stan +++ b/posterior_database/models/stan/2pl_latent_reg_irt.stan @@ -6,19 +6,23 @@ functions { matrix[2, cols(W)] adj; adj[1, 1] = 0; adj[2, 1] = 1; - if(cols(W) > 1) { - for(k in 2:cols(W)) { // remaining columns - min_w = min(W[1:rows(W), k]); - max_w = max(W[1:rows(W), k]); + if (cols(W) > 1) { + for (k in 2 : cols(W)) { + // remaining columns + min_w = min(W[1 : rows(W), k]); + max_w = max(W[1 : rows(W), k]); minmax_count = 0; - for(j in 1:rows(W)) - minmax_count = minmax_count + W[j,k] == min_w || W[j,k] == max_w; - if(minmax_count == rows(W)) { // if column takes only 2 values - adj[1, k] = mean(W[1:rows(W), k]); - adj[2, k] = (max_w - min_w); - } else { // if column takes > 2 values - adj[1, k] = mean(W[1:rows(W), k]); - adj[2, k] = sd(W[1:rows(W), k]) * 2; + for (j in 1 : rows(W)) { + minmax_count = minmax_count + W[j, k] == min_w || W[j, k] == max_w; + } + if (minmax_count == rows(W)) { + // if column takes only 2 values + adj[1, k] = mean(W[1 : rows(W), k]); + adj[2, k] = max_w - min_w; + } else { + // if column takes > 2 values + adj[1, k] = mean(W[1 : rows(W), k]); + adj[2, k] = sd(W[1 : rows(W), k]) * 2; } } } @@ -26,42 +30,48 @@ functions { } } data { - int I; // # questions - int J; // # persons - int N; // # observations - int ii[N]; // question for n - int jj[N]; // person for n - int y[N]; // correctness for n - int K; // # person covariates - matrix[J,K] W; // person covariate matrix + int I; // # questions + int J; // # persons + int N; // # observations + array[N] int ii; // question for n + array[N] int jj; // person for n + array[N] int y; // correctness for n + int K; // # person covariates + matrix[J, K] W; // person covariate matrix } transformed data { - matrix[2,K] adj; // values for centering and scaling covariates - matrix[J,K] W_adj; // centered and scaled covariates + matrix[2, K] adj; // values for centering and scaling covariates + matrix[J, K] W_adj; // centered and scaled covariates adj = obtain_adjustments(W); - for(k in 1:K) for(j in 1:J) - W_adj[j,k] = (W[j,k] - adj[1,k]) / adj[2,k]; + for (k in 1 : K) { + for (j in 1 : J) { + W_adj[j, k] = (W[j, k] - adj[1, k]) / adj[2, k]; + } + } } parameters { vector[I] alpha; - vector[I-1] beta_free; + vector[I - 1] beta_free; vector[J] theta; vector[K] lambda_adj; } transformed parameters { vector[I] beta; - beta[1:(I-1)] = beta_free; - beta[I] = -1*sum(beta_free); + beta[1 : I - 1] = beta_free; + beta[I] = -1 * sum(beta_free); } model { alpha ~ lognormal(1, 1); target += normal_lpdf(beta | 0, 3); lambda_adj ~ student_t(3, 0, 1); - theta ~ normal(W_adj*lambda_adj, 1); - y ~ bernoulli_logit(alpha[ii].*theta[jj] - beta[ii]); + theta ~ normal(W_adj * lambda_adj, 1); + y ~ bernoulli_logit(alpha[ii] .* theta[jj] - beta[ii]); } generated quantities { vector[K] lambda; - lambda[2:K] = lambda_adj[2:K] ./ to_vector(adj[2,2:K]); - lambda[1] = W_adj[1, 1:K]*lambda_adj[1:K] - W[1, 2:K]*lambda[2:K]; + lambda[2 : K] = lambda_adj[2 : K] ./ to_vector(adj[2, 2 : K]); + lambda[1] = W_adj[1, 1 : K] * lambda_adj[1 : K] + - W[1, 2 : K] * lambda[2 : K]; } + + From 9cfb66bf11dc8e9621bdd5b86cce24ff6222bad6 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Fri, 15 Sep 2023 14:00:03 +0200 Subject: [PATCH 16/31] Updated accel_gp model with new syntax --- .../models/info/accel_gp.info.json | 3 +- posterior_database/models/stan/accel_gp.stan | 68 ++++++++++--------- 2 files changed, 39 insertions(+), 32 deletions(-) diff --git a/posterior_database/models/info/accel_gp.info.json b/posterior_database/models/info/accel_gp.info.json index 19d9e1f7..4420e35e 100644 --- a/posterior_database/models/info/accel_gp.info.json +++ b/posterior_database/models/info/accel_gp.info.json @@ -9,7 +9,8 @@ "urls": "https://github.com/bbbales2/cmdstan-warmup/blob/develop/examples/accel_gp/", "model_implementations": { "stan": { - "model_code": "models/stan/accel_gp.stan" + "model_code": "models/stan/accel_gp.stan", + "stan_version": ">=2.26.0" } }, "references": "bales2019selecting", diff --git a/posterior_database/models/stan/accel_gp.stan b/posterior_database/models/stan/accel_gp.stan index 454e900d..04999c53 100644 --- a/posterior_database/models/stan/accel_gp.stan +++ b/posterior_database/models/stan/accel_gp.stan @@ -1,6 +1,5 @@ // generated with brms 2.10.0 functions { - /* compute a latent Gaussian process * Args: * x: array of continuous predictor values @@ -10,27 +9,27 @@ functions { * Returns: * a vector to be added to the linear predictor */ - vector gp(vector[] x, real sdgp, vector lscale, vector zgp) { + vector gp(array[] vector x, real sdgp, vector lscale, vector zgp) { int Dls = rows(lscale); int N = size(x); matrix[N, N] cov; if (Dls == 1) { // one dimensional or isotropic GP - cov = cov_exp_quad(x, sdgp, lscale[1]); + cov = gp_exp_quad_cov(x, sdgp, lscale[1]); } else { // multi-dimensional non-isotropic GP - cov = cov_exp_quad(x[, 1], sdgp, lscale[1]); - for (d in 2:Dls) { - cov = cov .* cov_exp_quad(x[, d], 1, lscale[d]); + cov = gp_exp_quad_cov(x[ : , 1], sdgp, lscale[1]); + for (d in 2 : Dls) { + cov = cov .* gp_exp_quad_cov(x[ : , d], 1, lscale[d]); } } - for (n in 1:N) { + for (n in 1 : N) { // deal with numerical non-positive-definiteness cov[n, n] += 1e-12; } return cholesky_decompose(cov) * zgp; } - + /* Spectral density function of a Gaussian process * Args: * x: array of numeric values of dimension NB x D @@ -39,23 +38,23 @@ functions { * Returns: * numeric values of the function evaluated at 'x' */ - vector spd_cov_exp_quad(vector[] x, real sdgp, vector lscale) { + vector spd_cov_exp_quad(array[] vector x, real sdgp, vector lscale) { int NB = dims(x)[1]; int D = dims(x)[2]; int Dls = rows(lscale); vector[NB] out; if (Dls == 1) { // one dimensional or isotropic GP - real constant = square(sdgp) * (sqrt(2 * pi()) * lscale[1])^D; + real constant = square(sdgp) * (sqrt(2 * pi()) * lscale[1]) ^ D; real neg_half_lscale2 = -0.5 * square(lscale[1]); - for (m in 1:NB) { + for (m in 1 : NB) { out[m] = constant * exp(neg_half_lscale2 * dot_self(x[m])); } } else { // multi-dimensional non-isotropic GP - real constant = square(sdgp) * sqrt(2 * pi())^D * prod(lscale); + real constant = square(sdgp) * sqrt(2 * pi()) ^ D * prod(lscale); vector[Dls] neg_half_lscale2 = -0.5 * square(lscale); - for (m in 1:NB) { + for (m in 1 : NB) { out[m] = constant * exp(dot_product(neg_half_lscale2, square(x[m]))); } } @@ -71,37 +70,39 @@ functions { * Returns: * a vector to be added to the linear predictor */ - vector gpa(matrix X, real sdgp, vector lscale, vector zgp, vector[] slambda) { + vector gpa(matrix X, real sdgp, vector lscale, vector zgp, + array[] vector slambda) { vector[cols(X)] diag_spd = sqrt(spd_cov_exp_quad(slambda, sdgp, lscale)); return X * (diag_spd .* zgp); } } data { - int N; // number of observations - vector[N] Y; // response variable + int N; // number of observations + vector[N] Y; // response variable // data related to GPs // number of sub-GPs (equal to 1 unless 'by' was used) int Kgp_1; - int Dgp_1; // GP dimension + int Dgp_1; // GP dimension // number of basis functions of an approximate GP int NBgp_1; // approximate GP basis matrices matrix[N, NBgp_1] Xgp_1; // approximate GP eigenvalues - vector[Dgp_1] slambda_1[NBgp_1]; + array[NBgp_1] vector[Dgp_1] slambda_1; // data related to GPs // number of sub-GPs (equal to 1 unless 'by' was used) int Kgp_sigma_1; - int Dgp_sigma_1; // GP dimension + int Dgp_sigma_1; // GP dimension // number of basis functions of an approximate GP int NBgp_sigma_1; // approximate GP basis matrices matrix[N, NBgp_sigma_1] Xgp_sigma_1; // approximate GP eigenvalues - vector[Dgp_sigma_1] slambda_sigma_1[NBgp_sigma_1]; - int prior_only; // should the likelihood be ignored? + array[NBgp_sigma_1] vector[Dgp_sigma_1] slambda_sigma_1; + int prior_only; // should the likelihood be ignored? } transformed data { + } parameters { // temporary intercept for centered predictors @@ -122,34 +123,37 @@ parameters { vector[NBgp_sigma_1] zgp_sigma_1; } transformed parameters { - // vector versions of real parameters + // vector versions of real parameters vector[Kgp_1] vsdgp_1; - vector[1] vlscale_1[Kgp_1]; + array[Kgp_1] vector[1] vlscale_1; vector[Kgp_sigma_1] vsdgp_sigma_1; - vector[1] vlscale_sigma_1[Kgp_sigma_1]; + array[Kgp_sigma_1] vector[1] vlscale_sigma_1; vsdgp_1[1] = sdgp_1; - vlscale_1[1,1] = lscale_1; + vlscale_1[1, 1] = lscale_1; vsdgp_sigma_1[1] = sdgp_sigma_1; - vlscale_sigma_1[1,1] = lscale_sigma_1; + vlscale_sigma_1[1, 1] = lscale_sigma_1; } model { // initialize linear predictor term - vector[N] mu = Intercept + rep_vector(0, N) + gpa(Xgp_1, vsdgp_1[1], vlscale_1[1], zgp_1, slambda_1); + vector[N] mu = Intercept + rep_vector(0, N) + + gpa(Xgp_1, vsdgp_1[1], vlscale_1[1], zgp_1, slambda_1); // initialize linear predictor term - vector[N] sigma = Intercept_sigma + rep_vector(0, N) + gpa(Xgp_sigma_1, vsdgp_sigma_1[1], vlscale_sigma_1[1], zgp_sigma_1, slambda_sigma_1); - for (n in 1:N) { + vector[N] sigma = Intercept_sigma + rep_vector(0, N) + + gpa(Xgp_sigma_1, vsdgp_sigma_1[1], vlscale_sigma_1[1], + zgp_sigma_1, slambda_sigma_1); + for (n in 1 : N) { // apply the inverse link function sigma[n] = exp(sigma[n]); } // priors including all constants target += student_t_lpdf(Intercept | 3, -13, 36); target += student_t_lpdf(vsdgp_1 | 3, 0, 36) - - 1 * student_t_lccdf(0 | 3, 0, 36); + - 1 * student_t_lccdf(0 | 3, 0, 36); target += normal_lpdf(zgp_1 | 0, 1); target += inv_gamma_lpdf(vlscale_1[1] | 1.124909, 0.0177); target += student_t_lpdf(Intercept_sigma | 3, 0, 10); target += student_t_lpdf(vsdgp_sigma_1 | 3, 0, 36) - - 1 * student_t_lccdf(0 | 3, 0, 36); + - 1 * student_t_lccdf(0 | 3, 0, 36); target += normal_lpdf(zgp_sigma_1 | 0, 1); target += inv_gamma_lpdf(vlscale_sigma_1[1] | 1.124909, 0.0177); // likelihood including all constants @@ -163,3 +167,5 @@ generated quantities { // actual population-level intercept real b_sigma_Intercept = Intercept_sigma; } + + From d164f363a465837dc0cb1cc08a46ab711e6f4ec9 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Fri, 15 Sep 2023 14:01:29 +0200 Subject: [PATCH 17/31] Added accel_splies --- .../models/info/accel_splines.info.json | 3 +- .../models/stan/accel_splines.stan | 31 +++++++++++-------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/posterior_database/models/info/accel_splines.info.json b/posterior_database/models/info/accel_splines.info.json index ae6cda25..35daeea9 100644 --- a/posterior_database/models/info/accel_splines.info.json +++ b/posterior_database/models/info/accel_splines.info.json @@ -9,7 +9,8 @@ "urls": "https://github.com/bbbales2/cmdstan-warmup/blob/develop/examples/accel_splines/", "model_implementations": { "stan": { - "model_code": "models/stan/accel_splines.stan" + "model_code": "models/stan/accel_splines.stan", + "stan_version": ">=2.26.0" } }, "references": "bales2019selecting", diff --git a/posterior_database/models/stan/accel_splines.stan b/posterior_database/models/stan/accel_splines.stan index 74f684c8..4a8ce142 100644 --- a/posterior_database/models/stan/accel_splines.stan +++ b/posterior_database/models/stan/accel_splines.stan @@ -1,26 +1,28 @@ // generated with brms 2.10.0 functions { + } data { - int N; // number of observations - vector[N] Y; // response variable + int N; // number of observations + vector[N] Y; // response variable // data for splines - int Ks; // number of linear effects - matrix[N, Ks] Xs; // design matrix for the linear effects + int Ks; // number of linear effects + matrix[N, Ks] Xs; // design matrix for the linear effects // data for spline s(times,k=40) - int knots_1; // number of knots + int knots_1; // number of knots // basis function matrices matrix[N, knots_1] Zs_1_1; // data for splines - int Ks_sigma; // number of linear effects - matrix[N, Ks_sigma] Xs_sigma; // design matrix for the linear effects + int Ks_sigma; // number of linear effects + matrix[N, Ks_sigma] Xs_sigma; // design matrix for the linear effects // data for spline s(times,k=40) - int knots_sigma_1; // number of knots + int knots_sigma_1; // number of knots // basis function matrices matrix[N, knots_sigma_1] Zs_sigma_1_1; - int prior_only; // should the likelihood be ignored? + int prior_only; // should the likelihood be ignored? } transformed data { + } parameters { // temporary intercept for centered predictors @@ -52,8 +54,9 @@ model { // initialize linear predictor term vector[N] mu = Intercept + rep_vector(0, N) + Xs * bs + Zs_1_1 * s_1_1; // initialize linear predictor term - vector[N] sigma = Intercept_sigma + rep_vector(0, N) + Xs_sigma * bs_sigma + Zs_sigma_1_1 * s_sigma_1_1; - for (n in 1:N) { + vector[N] sigma = Intercept_sigma + rep_vector(0, N) + Xs_sigma * bs_sigma + + Zs_sigma_1_1 * s_sigma_1_1; + for (n in 1 : N) { // apply the inverse link function sigma[n] = exp(sigma[n]); } @@ -61,11 +64,11 @@ model { target += student_t_lpdf(Intercept | 3, -13, 36); target += normal_lpdf(zs_1_1 | 0, 1); target += student_t_lpdf(sds_1_1 | 3, 0, 36) - - 1 * student_t_lccdf(0 | 3, 0, 36); + - 1 * student_t_lccdf(0 | 3, 0, 36); target += student_t_lpdf(Intercept_sigma | 3, 0, 10); target += normal_lpdf(zs_sigma_1_1 | 0, 1); target += student_t_lpdf(sds_sigma_1_1 | 3, 0, 36) - - 1 * student_t_lccdf(0 | 3, 0, 36); + - 1 * student_t_lccdf(0 | 3, 0, 36); // likelihood including all constants if (!prior_only) { target += normal_lpdf(Y | mu, sigma); @@ -77,3 +80,5 @@ generated quantities { // actual population-level intercept real b_sigma_Intercept = Intercept_sigma; } + + From 8487f80175f2de39eececaa53b49e19e3fac6825 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Fri, 15 Sep 2023 14:02:19 +0200 Subject: [PATCH 18/31] arK fixes --- posterior_database/models/info/arK.info.json | 9 ++------- posterior_database/models/stan/arK.stan | 11 +++++++---- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/posterior_database/models/info/arK.info.json b/posterior_database/models/info/arK.info.json index 3d096cf3..ec159b9c 100644 --- a/posterior_database/models/info/arK.info.json +++ b/posterior_database/models/info/arK.info.json @@ -2,13 +2,8 @@ "name": "arK", "title": "Autoregressive-5 model", "description": "An AR(5) time series model.", - "keywords": [ - "time series", - "stan_benchmark" - ], - "urls": [ - "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/arK" - ], + "keywords": ["time series", "stan_benchmark"], + "urls": "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/arK", "prior": { "keywords": [] }, diff --git a/posterior_database/models/stan/arK.stan b/posterior_database/models/stan/arK.stan index 847511de..6d57d9ed 100644 --- a/posterior_database/models/stan/arK.stan +++ b/posterior_database/models/stan/arK.stan @@ -12,14 +12,17 @@ model { alpha ~ normal(0, 10); beta ~ normal(0, 10); sigma ~ cauchy(0, 2.5); - + for (t in (K + 1) : T) { real mu; mu = alpha; - - for (k in 1 : K) + + for (k in 1 : K) { mu = mu + beta[k] * y[t - k]; - + } + y[t] ~ normal(mu, sigma); } } + + From 3be720c310d62cc0ac22e0ff105dfff4deb6c772 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Fri, 15 Sep 2023 14:24:43 +0200 Subject: [PATCH 19/31] Update --- .../models/info/GLMM1_model.info.json | 3 +- .../models/stan/GLMM1_model.stan | 41 +++++++++---------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/posterior_database/models/info/GLMM1_model.info.json b/posterior_database/models/info/GLMM1_model.info.json index 7cb46a8e..2fce9fcb 100644 --- a/posterior_database/models/info/GLMM1_model.info.json +++ b/posterior_database/models/info/GLMM1_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-06-25", "model_implementations": { "stan": { - "model_code": "models/stan/GLMM1_model.stan" + "model_code": "models/stan/GLMM1_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/stan/GLMM1_model.stan b/posterior_database/models/stan/GLMM1_model.stan index af82e360..ed372865 100644 --- a/posterior_database/models/stan/GLMM1_model.stan +++ b/posterior_database/models/stan/GLMM1_model.stan @@ -1,41 +1,40 @@ data { - int nobs; // Number of observed data - int nmis; // Number of missing data - int nyear; // Number of years - int nsite; // Number of sites - int obs[nobs]; // Observed counts - int obsyear[nobs]; // Years in observed data - int obssite[nobs]; // Sites in observed data - int misyear[nmis]; // Years in missing data - int missite[nmis]; // Sites in missing data + int nobs; // Number of observed data + int nmis; // Number of missing data + int nyear; // Number of years + int nsite; // Number of sites + array[nobs] int obs; // Observed counts + array[nobs] int obsyear; // Years in observed data + array[nobs] int obssite; // Sites in observed data + array[nmis] int misyear; // Years in missing data + array[nmis] int missite; // Sites in missing data } - parameters { - vector[nsite] alpha; // Random site effects + vector[nsite] alpha; // Random site effects real mu_alpha; - real sd_alpha; + real sd_alpha; } - transformed parameters { matrix[nyear, nsite] log_lambda; - + log_lambda = rep_matrix(alpha', nyear); } - model { // Priors alpha ~ normal(mu_alpha, sd_alpha); mu_alpha ~ normal(0, 10); // sd_alpha ~ uniform(0, 5); // Implicitly defined - - for (i in 1:nobs) + + for (i in 1 : nobs) { obs[i] ~ poisson_log(log_lambda[obsyear[i], obssite[i]]); + } } - generated quantities { - int mis[nmis]; - - for (i in 1:nmis) + array[nmis] int mis; + + for (i in 1 : nmis) { mis[i] = poisson_log_rng(log_lambda[misyear[i], missite[i]]); + } } + From e50fcf620f480d9029e5801c82b65e2ad5dc6866 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Fri, 15 Sep 2023 15:11:20 +0200 Subject: [PATCH 20/31] Revert "Updated 2pl_latent..." This reverts commit 70688f0bc4fc7cfad07b0fb82659b3a41d5f5639. --- .../models/info/2pl_latent_reg_irt.info.json | 16 ++++- .../models/stan/2pl_latent_reg_irt.stan | 72 ++++++++----------- 2 files changed, 46 insertions(+), 42 deletions(-) diff --git a/posterior_database/models/info/2pl_latent_reg_irt.info.json b/posterior_database/models/info/2pl_latent_reg_irt.info.json index bbf20078..4291b8b5 100644 --- a/posterior_database/models/info/2pl_latent_reg_irt.info.json +++ b/posterior_database/models/info/2pl_latent_reg_irt.info.json @@ -1 +1,15 @@ -{"name":["2pl_latent_reg_irt"],"keywords":["item response model"],"title":["Two-parameter logistic item theory model with latent regression"],"description":["The Rasch model (Rasch 1960) is an item response theory model for dichotomous items. The two-parameter logistic model (2PL) (Swaminathan and Gifford 1985) is an item response theory model that includes parameters for both the difficulty and discrimination of dichotomous items. The version presented includes a latent regression. However, the latent regression part of the model may be restricted to an intercept only, resulting in a regular 2PL."],"urls":["https://github.com/danielcfurr/edstan"],"references":{},"added_by":["Keane Nguyen"],"added_date":["2021-08-03"],"model_implementations":{"stan":{"model_code":["models/stan/2pl_latent_reg_irt.stan"],"stan_version":[">=2.26.0"]}}} +{ + "name": "2pl_latent_reg_irt", + "keywords": "item response model", + "title": "Two-parameter logistic item theory model with latent regression", + "description": "The Rasch model (Rasch 1960) is an item response theory model for dichotomous items. The two-parameter logistic model (2PL) (Swaminathan and Gifford 1985) is an item response theory model that includes parameters for both the difficulty and discrimination of dichotomous items. The version presented includes a latent regression. However, the latent regression part of the model may be restricted to an intercept only, resulting in a regular 2PL.", + "urls": "https://github.com/danielcfurr/edstan", + "references": null, + "added_by": "Keane Nguyen", + "added_date": "2021-08-03", + "model_implementations": { + "stan": { + "model_code": "models/stan/2pl_latent_reg_irt.stan" + } + } +} diff --git a/posterior_database/models/stan/2pl_latent_reg_irt.stan b/posterior_database/models/stan/2pl_latent_reg_irt.stan index e969eca4..3135b5a0 100644 --- a/posterior_database/models/stan/2pl_latent_reg_irt.stan +++ b/posterior_database/models/stan/2pl_latent_reg_irt.stan @@ -6,23 +6,19 @@ functions { matrix[2, cols(W)] adj; adj[1, 1] = 0; adj[2, 1] = 1; - if (cols(W) > 1) { - for (k in 2 : cols(W)) { - // remaining columns - min_w = min(W[1 : rows(W), k]); - max_w = max(W[1 : rows(W), k]); + if(cols(W) > 1) { + for(k in 2:cols(W)) { // remaining columns + min_w = min(W[1:rows(W), k]); + max_w = max(W[1:rows(W), k]); minmax_count = 0; - for (j in 1 : rows(W)) { - minmax_count = minmax_count + W[j, k] == min_w || W[j, k] == max_w; - } - if (minmax_count == rows(W)) { - // if column takes only 2 values - adj[1, k] = mean(W[1 : rows(W), k]); - adj[2, k] = max_w - min_w; - } else { - // if column takes > 2 values - adj[1, k] = mean(W[1 : rows(W), k]); - adj[2, k] = sd(W[1 : rows(W), k]) * 2; + for(j in 1:rows(W)) + minmax_count = minmax_count + W[j,k] == min_w || W[j,k] == max_w; + if(minmax_count == rows(W)) { // if column takes only 2 values + adj[1, k] = mean(W[1:rows(W), k]); + adj[2, k] = (max_w - min_w); + } else { // if column takes > 2 values + adj[1, k] = mean(W[1:rows(W), k]); + adj[2, k] = sd(W[1:rows(W), k]) * 2; } } } @@ -30,48 +26,42 @@ functions { } } data { - int I; // # questions - int J; // # persons - int N; // # observations - array[N] int ii; // question for n - array[N] int jj; // person for n - array[N] int y; // correctness for n - int K; // # person covariates - matrix[J, K] W; // person covariate matrix + int I; // # questions + int J; // # persons + int N; // # observations + int ii[N]; // question for n + int jj[N]; // person for n + int y[N]; // correctness for n + int K; // # person covariates + matrix[J,K] W; // person covariate matrix } transformed data { - matrix[2, K] adj; // values for centering and scaling covariates - matrix[J, K] W_adj; // centered and scaled covariates + matrix[2,K] adj; // values for centering and scaling covariates + matrix[J,K] W_adj; // centered and scaled covariates adj = obtain_adjustments(W); - for (k in 1 : K) { - for (j in 1 : J) { - W_adj[j, k] = (W[j, k] - adj[1, k]) / adj[2, k]; - } - } + for(k in 1:K) for(j in 1:J) + W_adj[j,k] = (W[j,k] - adj[1,k]) / adj[2,k]; } parameters { vector[I] alpha; - vector[I - 1] beta_free; + vector[I-1] beta_free; vector[J] theta; vector[K] lambda_adj; } transformed parameters { vector[I] beta; - beta[1 : I - 1] = beta_free; - beta[I] = -1 * sum(beta_free); + beta[1:(I-1)] = beta_free; + beta[I] = -1*sum(beta_free); } model { alpha ~ lognormal(1, 1); target += normal_lpdf(beta | 0, 3); lambda_adj ~ student_t(3, 0, 1); - theta ~ normal(W_adj * lambda_adj, 1); - y ~ bernoulli_logit(alpha[ii] .* theta[jj] - beta[ii]); + theta ~ normal(W_adj*lambda_adj, 1); + y ~ bernoulli_logit(alpha[ii].*theta[jj] - beta[ii]); } generated quantities { vector[K] lambda; - lambda[2 : K] = lambda_adj[2 : K] ./ to_vector(adj[2, 2 : K]); - lambda[1] = W_adj[1, 1 : K] * lambda_adj[1 : K] - - W[1, 2 : K] * lambda[2 : K]; + lambda[2:K] = lambda_adj[2:K] ./ to_vector(adj[2,2:K]); + lambda[1] = W_adj[1, 1:K]*lambda_adj[1:K] - W[1, 2:K]*lambda[2:K]; } - - From ad5a456d1dcc268c4c815bc8b33748bd731b76c9 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Fri, 15 Sep 2023 15:13:33 +0200 Subject: [PATCH 21/31] updated 2pl correctly --- .../models/info/2pl_latent_reg_irt.info.json | 3 +- .../models/stan/2pl_latent_reg_irt.stan | 72 +++++++++++-------- 2 files changed, 43 insertions(+), 32 deletions(-) diff --git a/posterior_database/models/info/2pl_latent_reg_irt.info.json b/posterior_database/models/info/2pl_latent_reg_irt.info.json index 4291b8b5..ad6869b3 100644 --- a/posterior_database/models/info/2pl_latent_reg_irt.info.json +++ b/posterior_database/models/info/2pl_latent_reg_irt.info.json @@ -9,7 +9,8 @@ "added_date": "2021-08-03", "model_implementations": { "stan": { - "model_code": "models/stan/2pl_latent_reg_irt.stan" + "model_code": "models/stan/2pl_latent_reg_irt.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/stan/2pl_latent_reg_irt.stan b/posterior_database/models/stan/2pl_latent_reg_irt.stan index 3135b5a0..e969eca4 100644 --- a/posterior_database/models/stan/2pl_latent_reg_irt.stan +++ b/posterior_database/models/stan/2pl_latent_reg_irt.stan @@ -6,19 +6,23 @@ functions { matrix[2, cols(W)] adj; adj[1, 1] = 0; adj[2, 1] = 1; - if(cols(W) > 1) { - for(k in 2:cols(W)) { // remaining columns - min_w = min(W[1:rows(W), k]); - max_w = max(W[1:rows(W), k]); + if (cols(W) > 1) { + for (k in 2 : cols(W)) { + // remaining columns + min_w = min(W[1 : rows(W), k]); + max_w = max(W[1 : rows(W), k]); minmax_count = 0; - for(j in 1:rows(W)) - minmax_count = minmax_count + W[j,k] == min_w || W[j,k] == max_w; - if(minmax_count == rows(W)) { // if column takes only 2 values - adj[1, k] = mean(W[1:rows(W), k]); - adj[2, k] = (max_w - min_w); - } else { // if column takes > 2 values - adj[1, k] = mean(W[1:rows(W), k]); - adj[2, k] = sd(W[1:rows(W), k]) * 2; + for (j in 1 : rows(W)) { + minmax_count = minmax_count + W[j, k] == min_w || W[j, k] == max_w; + } + if (minmax_count == rows(W)) { + // if column takes only 2 values + adj[1, k] = mean(W[1 : rows(W), k]); + adj[2, k] = max_w - min_w; + } else { + // if column takes > 2 values + adj[1, k] = mean(W[1 : rows(W), k]); + adj[2, k] = sd(W[1 : rows(W), k]) * 2; } } } @@ -26,42 +30,48 @@ functions { } } data { - int I; // # questions - int J; // # persons - int N; // # observations - int ii[N]; // question for n - int jj[N]; // person for n - int y[N]; // correctness for n - int K; // # person covariates - matrix[J,K] W; // person covariate matrix + int I; // # questions + int J; // # persons + int N; // # observations + array[N] int ii; // question for n + array[N] int jj; // person for n + array[N] int y; // correctness for n + int K; // # person covariates + matrix[J, K] W; // person covariate matrix } transformed data { - matrix[2,K] adj; // values for centering and scaling covariates - matrix[J,K] W_adj; // centered and scaled covariates + matrix[2, K] adj; // values for centering and scaling covariates + matrix[J, K] W_adj; // centered and scaled covariates adj = obtain_adjustments(W); - for(k in 1:K) for(j in 1:J) - W_adj[j,k] = (W[j,k] - adj[1,k]) / adj[2,k]; + for (k in 1 : K) { + for (j in 1 : J) { + W_adj[j, k] = (W[j, k] - adj[1, k]) / adj[2, k]; + } + } } parameters { vector[I] alpha; - vector[I-1] beta_free; + vector[I - 1] beta_free; vector[J] theta; vector[K] lambda_adj; } transformed parameters { vector[I] beta; - beta[1:(I-1)] = beta_free; - beta[I] = -1*sum(beta_free); + beta[1 : I - 1] = beta_free; + beta[I] = -1 * sum(beta_free); } model { alpha ~ lognormal(1, 1); target += normal_lpdf(beta | 0, 3); lambda_adj ~ student_t(3, 0, 1); - theta ~ normal(W_adj*lambda_adj, 1); - y ~ bernoulli_logit(alpha[ii].*theta[jj] - beta[ii]); + theta ~ normal(W_adj * lambda_adj, 1); + y ~ bernoulli_logit(alpha[ii] .* theta[jj] - beta[ii]); } generated quantities { vector[K] lambda; - lambda[2:K] = lambda_adj[2:K] ./ to_vector(adj[2,2:K]); - lambda[1] = W_adj[1, 1:K]*lambda_adj[1:K] - W[1, 2:K]*lambda[2:K]; + lambda[2 : K] = lambda_adj[2 : K] ./ to_vector(adj[2, 2 : K]); + lambda[1] = W_adj[1, 1 : K] * lambda_adj[1 : K] + - W[1, 2 : K] * lambda[2 : K]; } + + From f70b09f6dd77ccf6b962dc32192bda2e430ab1f5 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Fri, 15 Sep 2023 19:17:52 +0200 Subject: [PATCH 22/31] Updates --- .../models/info/GLMM_Poisson_model.info.json | 3 +- .../models/stan/GLMM_Poisson_model.stan | 39 ++++++++----------- 2 files changed, 18 insertions(+), 24 deletions(-) diff --git a/posterior_database/models/info/GLMM_Poisson_model.info.json b/posterior_database/models/info/GLMM_Poisson_model.info.json index 0c8d6b43..901b834f 100644 --- a/posterior_database/models/info/GLMM_Poisson_model.info.json +++ b/posterior_database/models/info/GLMM_Poisson_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-06-29", "model_implementations": { "stan": { - "model_code": "models/stan/GLMM_Poisson_model.stan" + "model_code": "models/stan/GLMM_Poisson_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/stan/GLMM_Poisson_model.stan b/posterior_database/models/stan/GLMM_Poisson_model.stan index 7ae494e4..079e616d 100644 --- a/posterior_database/models/stan/GLMM_Poisson_model.stan +++ b/posterior_database/models/stan/GLMM_Poisson_model.stan @@ -1,37 +1,30 @@ data { - int n; // Number of years - int C[n]; // Counts - vector[n] year; // Year + int n; // Number of years + array[n] int C; // Counts + vector[n] year; // Year } - transformed data { vector[n] year_squared; vector[n] year_cubed; - + year_squared = year .* year; year_cubed = year .* year .* year; } - parameters { - real alpha; - real beta1; - real beta2; - real beta3; - vector[n] eps; // Year effects - real sigma; + real alpha; + real beta1; + real beta2; + real beta3; + vector[n] eps; // Year effects + real sigma; } - transformed parameters { vector[n] log_lambda; - + // Linear predictor incl. random year effect - log_lambda = alpha - + beta1 * year - + beta2 * year_squared - + beta3 * year_cubed - + eps; + log_lambda = alpha + beta1 * year + beta2 * year_squared + + beta3 * year_cubed + eps; } - model { // Priors alpha ~ uniform(-20, 20); @@ -39,15 +32,15 @@ model { beta2 ~ uniform(-10, 10); beta3 ~ uniform(-10, 10); sigma ~ uniform(0, 5); - + // Likelihood C ~ poisson_log(log_lambda); eps ~ normal(0, sigma); } - generated quantities { vector[n] lambda; - + lambda = exp(log_lambda); } + From 799a8a086d834e112b9eace2527d91f0727fdca2 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Fri, 15 Sep 2023 19:19:59 +0200 Subject: [PATCH 23/31] GML_binomial --- .../models/info/GLM_Binomial_model.info.json | 3 +- .../models/stan/GLM_Binomial_model.stan | 31 ++++++++----------- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/posterior_database/models/info/GLM_Binomial_model.info.json b/posterior_database/models/info/GLM_Binomial_model.info.json index 04a621db..6ccdfbd4 100644 --- a/posterior_database/models/info/GLM_Binomial_model.info.json +++ b/posterior_database/models/info/GLM_Binomial_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-01", "model_implementations": { "stan": { - "model_code": "models/stan/GLM_Binomial_model.stan" + "model_code": "models/stan/GLM_Binomial_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/stan/GLM_Binomial_model.stan b/posterior_database/models/stan/GLM_Binomial_model.stan index db8b6c14..2f41bb6d 100644 --- a/posterior_database/models/stan/GLM_Binomial_model.stan +++ b/posterior_database/models/stan/GLM_Binomial_model.stan @@ -1,46 +1,41 @@ data { - int nyears; // Number of Years - int C[nyears]; // Counts - int N[nyears]; // Binomial Totals - vector[nyears] year; // Year covariates + int nyears; // Number of Years + array[nyears] int C; // Counts + array[nyears] int N; // Binomial Totals + vector[nyears] year; // Year covariates } - transformed data { vector[nyears] year_squared; - + year_squared = year .* year; } - parameters { real alpha; real beta1; real beta2; } - transformed parameters { vector[nyears] logit_p; - + // Linear predictor - logit_p = alpha - + beta1 * year - + beta2 * year_squared; + logit_p = alpha + beta1 * year + beta2 * year_squared; } - model { // Priors alpha ~ normal(0, 100); beta1 ~ normal(0, 100); beta2 ~ normal(0, 100); - + // Likelihood // Distribution for random part C ~ binomial_logit(N, logit_p); } - generated quantities { - real p[nyears]; - - for (i in 1:nyears) + array[nyears] real p; + + for (i in 1 : nyears) { p[i] = inv_logit(logit_p[i]); + } } + From cf34f55ffee1d5474c9db55f41f1b83edd512d5f Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Fri, 15 Sep 2023 19:44:38 +0200 Subject: [PATCH 24/31] Add more models --- .../models/info/GLM_Poisson_model.info.json | 3 +- .../models/info/M0_model.info.json | 3 +- .../models/info/Mb_model.info.json | 3 +- .../models/info/Mh_model.info.json | 3 +- .../models/info/Mt_model.info.json | 3 +- .../models/info/Mtbh_model.info.json | 3 +- .../models/info/Mth_model.info.json | 3 +- .../models/stan/GLM_Poisson_model.stan | 35 ++++----- posterior_database/models/stan/M0_model.stan | 50 ++++++------- posterior_database/models/stan/Mb_model.stan | 65 ++++++++--------- posterior_database/models/stan/Mh_model.stan | 60 ++++++++-------- posterior_database/models/stan/Mt_model.stan | 45 ++++++------ .../models/stan/Mtbh_model.stan | 72 ++++++++++--------- posterior_database/models/stan/Mth_model.stan | 71 +++++++++--------- 14 files changed, 218 insertions(+), 201 deletions(-) diff --git a/posterior_database/models/info/GLM_Poisson_model.info.json b/posterior_database/models/info/GLM_Poisson_model.info.json index 67523aaf..b10130c8 100644 --- a/posterior_database/models/info/GLM_Poisson_model.info.json +++ b/posterior_database/models/info/GLM_Poisson_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-01", "model_implementations": { "stan": { - "model_code": "models/stan/GLM_Poisson_model.stan" + "model_code": "models/stan/GLM_Poisson_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/M0_model.info.json b/posterior_database/models/info/M0_model.info.json index 74b529a8..1f3a1b16 100644 --- a/posterior_database/models/info/M0_model.info.json +++ b/posterior_database/models/info/M0_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-06-24", "model_implementations": { "stan": { - "model_code": "models/stan/M0_model.stan" + "model_code": "models/stan/M0_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/Mb_model.info.json b/posterior_database/models/info/Mb_model.info.json index 61a60567..4b58fcfe 100644 --- a/posterior_database/models/info/Mb_model.info.json +++ b/posterior_database/models/info/Mb_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-06-25", "model_implementations": { "stan": { - "model_code": "models/stan/Mb_model.stan" + "model_code": "models/stan/Mb_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/Mh_model.info.json b/posterior_database/models/info/Mh_model.info.json index a8cbd9a2..f732098f 100644 --- a/posterior_database/models/info/Mh_model.info.json +++ b/posterior_database/models/info/Mh_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-06-25", "model_implementations": { "stan": { - "model_code": "models/stan/Mh_model.stan" + "model_code": "models/stan/Mh_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/Mt_model.info.json b/posterior_database/models/info/Mt_model.info.json index f54d103b..2c5bc00c 100644 --- a/posterior_database/models/info/Mt_model.info.json +++ b/posterior_database/models/info/Mt_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-06-25", "model_implementations": { "stan": { - "model_code": "models/stan/Mt_model.stan" + "model_code": "models/stan/Mt_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/Mtbh_model.info.json b/posterior_database/models/info/Mtbh_model.info.json index 35e77387..497e2d9a 100644 --- a/posterior_database/models/info/Mtbh_model.info.json +++ b/posterior_database/models/info/Mtbh_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-06-25", "model_implementations": { "stan": { - "model_code": "models/stan/Mtbh_model.stan" + "model_code": "models/stan/Mtbh_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/Mth_model.info.json b/posterior_database/models/info/Mth_model.info.json index 0a81b1dc..67dd2673 100644 --- a/posterior_database/models/info/Mth_model.info.json +++ b/posterior_database/models/info/Mth_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-06-25", "model_implementations": { "stan": { - "model_code": "models/stan/Mth_model.stan" + "model_code": "models/stan/Mth_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/stan/GLM_Poisson_model.stan b/posterior_database/models/stan/GLM_Poisson_model.stan index 694e41c9..07ed4f5f 100644 --- a/posterior_database/models/stan/GLM_Poisson_model.stan +++ b/posterior_database/models/stan/GLM_Poisson_model.stan @@ -1,42 +1,37 @@ data { - int n; // Number of years - int C[n]; // Count - vector[n] year; // Year + int n; // Number of years + array[n] int C; // Count + vector[n] year; // Year } - transformed data { vector[n] year_squared; vector[n] year_cubed; - + year_squared = square(year); year_cubed = year_squared .* year; } - parameters { - real alpha; - real beta1; - real beta2; - real beta3; + real alpha; + real beta1; + real beta2; + real beta3; } - transformed parameters { vector[n] log_lambda; - - log_lambda = alpha - + beta1 * year + - + beta2 * year_squared + - + beta3 * year_cubed; + + log_lambda = alpha + beta1 * year + +beta2 * year_squared + + +beta3 * year_cubed; } - model { // Implicit uniform priors are used. - + // Likelihood C ~ poisson_log(log_lambda); } - generated quantities { vector[n] lambda; - + lambda = exp(log_lambda); } + + diff --git a/posterior_database/models/stan/M0_model.stan b/posterior_database/models/stan/M0_model.stan index a04e71d0..bd1e0cba 100644 --- a/posterior_database/models/stan/M0_model.stan +++ b/posterior_database/models/stan/M0_model.stan @@ -1,45 +1,47 @@ data { - int M; // Size of augumented data set - int T; // Number of sampling occasions - int y[M, T]; // Capture-history matrix + int M; // Size of augumented data set + int T; // Number of sampling occasions + array[M, T] int y; // Capture-history matrix } - transformed data { - int s[M]; // Totals in each row - int C; // Size of observed data set - + array[M] int s; // Totals in each row + int C; // Size of observed data set + C = 0; - for (i in 1:M) { + for (i in 1 : M) { s[i] = sum(y[i]); - if (s[i] > 0) + if (s[i] > 0) { C = C + 1; + } } } - parameters { - real omega; // Inclusion probability - real p; // Detection probability + real omega; // Inclusion probability + real p; // Detection probability } - model { // Priors are imlicitly defined; // omega ~ uniform(0, 1); // p ~ uniform(0, 1); - + // Likelihood - for (i in 1:M) - if (s[i] > 0) + for (i in 1 : M) { + if (s[i] > 0) { // z[i] == 1 - target += bernoulli_lpmf(1 | omega) - + binomial_lpmf(s[i] | T, p); - else // s[i] == 0 - target += log_sum_exp( bernoulli_lpmf(1 | omega) // z[i] == 1 - + binomial_lpmf(0 | T, p), - bernoulli_lpmf(0 | omega)); // z[i] == 0 + target += bernoulli_lpmf(1 | omega) + binomial_lpmf(s[i] | T, p); + } else // s[i] == 0 + { + target += log_sum_exp(bernoulli_lpmf(1 | omega) + // z[i] == 1 + + binomial_lpmf(0 | T, p), + bernoulli_lpmf(0 | omega)); + } + } // z[i] == 0 } - generated quantities { // prob present given never detected - real omega_nd = (omega * (1 - p)^T) / (omega * (1 - p)^T + (1 - omega)); + real omega_nd = (omega * (1 - p) ^ T) / (omega * (1 - p) ^ T + (1 - omega)); int N = C + binomial_rng(M - C, omega_nd); } + + diff --git a/posterior_database/models/stan/Mb_model.stan b/posterior_database/models/stan/Mb_model.stan index b552b1b4..7b02c0e9 100644 --- a/posterior_database/models/stan/Mb_model.stan +++ b/posterior_database/models/stan/Mb_model.stan @@ -1,64 +1,65 @@ data { - int M; // Size of augumented data set - int T; // Number of sampling occasions - int y[M, T]; // Capture-history matrix + int M; // Size of augumented data set + int T; // Number of sampling occasions + array[M, T] int y; // Capture-history matrix } - transformed data { - int s[M]; // Totals in each row - int C; // Size of observed data set - + array[M] int s; // Totals in each row + int C; // Size of observed data set + C = 0; - for (i in 1:M) { + for (i in 1 : M) { s[i] = sum(y[i]); - if (s[i] > 0) + if (s[i] > 0) { C = C + 1; + } } } - parameters { - real omega; // Inclusion probability - real p; // Capture probability - //(not captureed during the preceeding occasion) - real c; // Capture probability - //(captureed during the preceeding occasion) + real omega; // Inclusion probability + real p; // Capture probability + //(not captureed during the preceeding occasion) + real c; // Capture probability + //(captureed during the preceeding occasion) } - transformed parameters { - vector[T] p_eff[M]; - - for (i in 1:M) { + array[M] vector[T] p_eff; + + for (i in 1 : M) { // First occasion p_eff[i, 1] = p; - + // All subsequent occasions - for (j in 2:T) + for (j in 2 : T) { p_eff[i, j] = (1 - y[i, j - 1]) * p + y[i, j - 1] * c; + } } } - model { // Priors are implicitly define; // omega ~ uniform(0, 1); // p ~ uniform(0, 1); - + // Likelihood - for (i in 1:M) - if (s[i] > 0) + for (i in 1 : M) { + if (s[i] > 0) { // z[i] == 1 - target += bernoulli_lpmf(1 | omega) - + bernoulli_lpmf(y[i] | p_eff[i]); - else // s[i] == 0 - target += log_sum_exp(bernoulli_lpmf(1 | omega) // z[i] == 1 + target += bernoulli_lpmf(1 | omega) + bernoulli_lpmf(y[i] | p_eff[i]); + } else // s[i] == 0 + { + target += log_sum_exp(bernoulli_lpmf(1 | omega) + // z[i] == 1 + bernoulli_lpmf(y[i] | p_eff[i]), - bernoulli_lpmf(0 | omega)); // z[i] == 0 + bernoulli_lpmf(0 | omega)); + } + } // z[i] == 0 } - generated quantities { // prob present given never detected // animals never detected have not been detected before, so p.eff == p - real omega_nd = (omega * (1 - p)^T) / (omega * (1 - p)^T + (1 - omega)); + real omega_nd = (omega * (1 - p) ^ T) / (omega * (1 - p) ^ T + (1 - omega)); int N = C + binomial_rng(M - C, omega_nd); real trap_response = c - p; } + diff --git a/posterior_database/models/stan/Mh_model.stan b/posterior_database/models/stan/Mh_model.stan index a1552230..e76d2016 100644 --- a/posterior_database/models/stan/Mh_model.stan +++ b/posterior_database/models/stan/Mh_model.stan @@ -1,32 +1,29 @@ data { - int M; // Size of augumented data set - int T; // Number of sampling occasions - int y[M]; // Capture-history matrix + int M; // Size of augumented data set + int T; // Number of sampling occasions + array[M] int y; // Capture-history matrix } - transformed data { - int C; // Size of observed data set - + int C; // Size of observed data set + C = 0; - for (i in 1:M) { - if (y[i] > 0) + for (i in 1 : M) { + if (y[i] > 0) { C = C + 1; + } } } - parameters { - real omega; // Inclusion probability - real mean_p; // Mean detection probability - real sigma; + real omega; // Inclusion probability + real mean_p; // Mean detection probability + real sigma; // In case a weakly informative prior is used // real sigma; vector[M] eps_raw; } - transformed parameters { vector[M] eps = logit(mean_p) + sigma * eps_raw; } - model { // Priors are implicitly defined. // omega ~ uniform(0, 1); @@ -35,31 +32,38 @@ model { // In case a weakly informative is used // sigma ~ normal(2.5, 1.25); eps_raw ~ normal(0, 1); - + // Likelihood - for (i in 1:M) - if (y[i] > 0) + for (i in 1 : M) { + if (y[i] > 0) { // z[i] == 1 target += bernoulli_lpmf(1 | omega) - + binomial_logit_lpmf(y[i] | T, eps[i]); - else // y[i] == 0 - target += log_sum_exp(bernoulli_lpmf(1 | omega) // z[i] == 1 + + binomial_logit_lpmf(y[i] | T, eps[i]); + } else // y[i] == 0 + { + target += log_sum_exp(bernoulli_lpmf(1 | omega) + // z[i] == 1 + binomial_logit_lpmf(0 | T, eps[i]), - bernoulli_lpmf(0 | omega)); // z[i] == 0 + bernoulli_lpmf(0 | omega)); + } + } // z[i] == 0 } - generated quantities { - int z[M]; + array[M] int z; int N; - - for (i in 1:M) { - if(y[i] > 0) { // animal was detected at least once + + for (i in 1 : M) { + if (y[i] > 0) { + // animal was detected at least once z[i] = 1; - } else { // animal was never detected + } else { + // animal was never detected real qT; - qT = (inv_logit(-eps[i]))^T; // q^T where q = 1 - p; prob never detected given present + qT = inv_logit(-eps[i]) ^ T; // q^T where q = 1 - p; prob never detected given present z[i] = bernoulli_rng(omega * qT / (omega * qT + (1 - omega))); } } N = sum(z); } + + diff --git a/posterior_database/models/stan/Mt_model.stan b/posterior_database/models/stan/Mt_model.stan index 80a0bec6..6cbe6a21 100644 --- a/posterior_database/models/stan/Mt_model.stan +++ b/posterior_database/models/stan/Mt_model.stan @@ -1,43 +1,43 @@ data { - int M; // Size of augumented data set - int T; // Number of sampling occasions - int y[M, T]; // Capture-history matrix + int M; // Size of augumented data set + int T; // Number of sampling occasions + array[M, T] int y; // Capture-history matrix } - transformed data { - int s[M]; // Totals in each row - int C; // Size of observed data set - + array[M] int s; // Totals in each row + int C; // Size of observed data set + C = 0; - for (i in 1:M) { + for (i in 1 : M) { s[i] = sum(y[i]); - if (s[i] > 0) + if (s[i] > 0) { C = C + 1; + } } } - parameters { - real omega; // Inclusion probability - vector[T] p; // Detection probability + real omega; // Inclusion probability + vector[T] p; // Detection probability } - model { // Priors are implicitly defined. // omega ~ uniform(0, 1); // p ~ uniform(0, 1); - + // Likelihood - for (i in 1:M) - if (s[i] > 0) + for (i in 1 : M) { + if (s[i] > 0) { // z[i] == 1 - target += bernoulli_lpmf(1 | omega) - + bernoulli_lpmf(y[i] | p); - else // s[i] == 0 - target += log_sum_exp(bernoulli_lpmf(1 | omega) // z[i] == 1 + target += bernoulli_lpmf(1 | omega) + bernoulli_lpmf(y[i] | p); + } else // s[i] == 0 + { + target += log_sum_exp(bernoulli_lpmf(1 | omega) + // z[i] == 1 + bernoulli_lpmf(y[i] | p), - bernoulli_lpmf(0 | omega)); // z[i] == 0 + bernoulli_lpmf(0 | omega)); + } + } // z[i] == 0 } - generated quantities { // prob never captured given present real pr = prod(1 - p); @@ -46,3 +46,4 @@ generated quantities { int N = C + binomial_rng(M - C, omega_nd); } + diff --git a/posterior_database/models/stan/Mtbh_model.stan b/posterior_database/models/stan/Mtbh_model.stan index 91e68af4..db8501cd 100644 --- a/posterior_database/models/stan/Mtbh_model.stan +++ b/posterior_database/models/stan/Mtbh_model.stan @@ -1,45 +1,44 @@ data { - int M; // Number of species - int T; // Number of grab occasions - int y[M, T]; // Grab counts + int M; // Number of species + int T; // Number of grab occasions + array[M, T] int y; // Grab counts } - transformed data { - int s[M]; // Detection times for each species - int C; // Number of observed species - + array[M] int s; // Detection times for each species + int C; // Number of observed species + C = 0; - for (i in 1:M) { + for (i in 1 : M) { s[i] = sum(y[i]); - if (s[i] > 0) + if (s[i] > 0) { C = C + 1; + } } } - parameters { - real omega; // Inclusion probability - vector[T] mean_p; // Mean detection probability + real omega; // Inclusion probability + vector[T] mean_p; // Mean detection probability real gamma; - real sigma; + real sigma; // In case a weakly informative prior is used // real sigma; vector[M] eps_raw; } - transformed parameters { vector[M] eps = sigma * eps_raw; vector[T] alpha = logit(mean_p); matrix[M, T] logit_p; - + // First occasion: no term for recapture (gamma) - logit_p[ , 1] = alpha[1] + eps; - + logit_p[ : , 1] = alpha[1] + eps; + // All subsequent occasions: includes recapture term (gamma) - for (i in 1:M) - for (j in 2:T) + for (i in 1 : M) { + for (j in 2 : T) { logit_p[i, j] = alpha[j] + eps[i] + gamma * y[i, j - 1]; + } + } } - model { // Priors gamma ~ normal(0, 10); @@ -50,28 +49,33 @@ model { // In case a weakly informative prior is used // sigma ~ normal(1.5, 0.75); eps_raw ~ normal(0, 1); - + // Likelihood - for (i in 1:M) - if (s[i] > 0) + for (i in 1 : M) { + if (s[i] > 0) { // z[i] == 1 target += bernoulli_lpmf(1 | omega) - + bernoulli_logit_lpmf(y[i] | logit_p[i]); - else // s[i] == 0 - target += log_sum_exp(bernoulli_lpmf(1 | omega) // z[i] == 1 + + bernoulli_logit_lpmf(y[i] | logit_p[i]); + } else // s[i] == 0 + { + target += log_sum_exp(bernoulli_lpmf(1 | omega) + // z[i] == 1 + bernoulli_logit_lpmf(y[i] | logit_p[i]), - bernoulli_lpmf(0 | omega)); // z[i] == 0 + bernoulli_lpmf(0 | omega)); + } + } // z[i] == 0 } - generated quantities { - matrix[M, T] p = inv_logit(logit_p); - int z[M]; + matrix[M, T] p = inv_logit(logit_p); + array[M] int z; int N; - - for (i in 1:M) { - if(s[i] > 0) { // animal was detected at least once + + for (i in 1 : M) { + if (s[i] > 0) { + // animal was detected at least once z[i] = 1; - } else { // animal never detected + } else { + // animal never detected // prob never detected given present real pr = prod(rep_vector(1, T) - p[i]'); z[i] = bernoulli_rng(omega * pr / (omega * pr + (1 - omega))); diff --git a/posterior_database/models/stan/Mth_model.stan b/posterior_database/models/stan/Mth_model.stan index 810e3a4e..be2aba22 100644 --- a/posterior_database/models/stan/Mth_model.stan +++ b/posterior_database/models/stan/Mth_model.stan @@ -1,39 +1,37 @@ data { - int M; // Size of augumented data set - int T; // Number of sampling occasions - int y[M, T]; // Capture-history matrix + int M; // Size of augumented data set + int T; // Number of sampling occasions + array[M, T] int y; // Capture-history matrix } - transformed data { - int s[M]; // Totals in each row - int C; // Size of observed data set - + array[M] int s; // Totals in each row + int C; // Size of observed data set + C = 0; - for (i in 1:M) { + for (i in 1 : M) { s[i] = sum(y[i]); - if (s[i] > 0) + if (s[i] > 0) { C = C + 1; + } } } - parameters { - real omega; // Inclusion probability - real mean_p[T]; // Mean detection probability - real sigma; + real omega; // Inclusion probability + array[T] real mean_p; // Mean detection probability + real sigma; // In case a weakly informative prior is used // real sigma; vector[M] eps_raw; } - transformed parameters { - vector[M] eps = sigma * eps_raw; // Random effects - real mean_lp[T] = logit(mean_p); + vector[M] eps = sigma * eps_raw; // Random effects + array[T] real mean_lp = logit(mean_p); matrix[M, T] logit_p; - - for (j in 1:T) - logit_p[ , j] = mean_lp[j] + eps; + + for (j in 1 : T) { + logit_p[ : , j] = mean_lp[j] + eps; + } } - model { // Priors are implicitly defined. // omega ~ uniform(0, 1); @@ -42,29 +40,33 @@ model { // In case a weakly informative prior is used // sigma ~ normal(2.5, 1.25); eps_raw ~ normal(0, 1); - + // Likelihood - for (i in 1:M) { - if (s[i] > 0) + for (i in 1 : M) { + if (s[i] > 0) { // z[i] == 1 target += bernoulli_lpmf(1 | omega) - + bernoulli_logit_lpmf(y[i] | logit_p[i]); - else // s[i] == 0 - target += log_sum_exp(bernoulli_lpmf(1 | omega) // z[i] == 1 + + bernoulli_logit_lpmf(y[i] | logit_p[i]); + } else // s[i] == 0 + { + target += log_sum_exp(bernoulli_lpmf(1 | omega) + // z[i] == 1 + bernoulli_logit_lpmf(y[i] | logit_p[i]), - bernoulli_lpmf(0 | omega)); // z[i] == 0 + bernoulli_lpmf(0 | omega)); + } // z[i] == 0 } } - generated quantities { - matrix[M, T] p = inv_logit(logit_p); - int z[M]; + matrix[M, T] p = inv_logit(logit_p); + array[M] int z; int N; - - for (i in 1:M) { - if(s[i] > 0) { // animal was detected at least once + + for (i in 1 : M) { + if (s[i] > 0) { + // animal was detected at least once z[i] = 1; - } else { // animal was never detected + } else { + // animal was never detected // prob never detected given present real pr = prod(rep_vector(1, T) - p[i]'); z[i] = bernoulli_rng(omega * pr / (omega * pr + (1 - omega))); @@ -73,3 +75,4 @@ generated quantities { N = sum(z); } + From ac100554d3fd0bbbc58ca8ea08ccabc0486c7f51 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Fri, 15 Sep 2023 20:23:52 +0200 Subject: [PATCH 25/31] Updated all models --- .../models/info/Rate_1_model.info.json | 3 +- .../models/info/Rate_2_model.info.json | 3 +- .../models/info/Rate_3_model.info.json | 3 +- .../models/info/Rate_4_model.info.json | 3 +- .../models/info/Rate_5_model.info.json | 3 +- .../models/info/Survey_model.info.json | 3 +- .../models/info/arma11.info.json | 11 +- posterior_database/models/info/blr.info.json | 3 +- .../models/info/bones_model.info.json | 3 +- .../models/info/bym2_offset_only.info.json | 3 +- .../models/info/covid19imperial_v2.info.json | 3 +- .../models/info/covid19imperial_v3.info.json | 3 +- .../models/info/diamonds.info.json | 3 +- posterior_database/models/info/dogs.info.json | 3 +- .../models/info/dogs_hierarchical.info.json | 3 +- .../models/info/dogs_log.info.json | 3 +- .../info/dogs_nonhierarchical.info.json | 3 +- .../models/info/dugongs_model.info.json | 3 +- .../models/info/earn_height.info.json | 3 +- .../info/eight_schools_centered.info.json | 17 +- .../info/eight_schools_noncentered.info.json | 16 +- .../models/info/election88_full.info.json | 3 +- .../models/info/garch11.info.json | 12 +- .../models/info/gp_pois_regr.info.json | 12 +- .../models/info/gp_regr.info.json | 12 +- .../models/info/gpcm_latent_reg_irt.info.json | 3 +- .../models/info/grsm_latent_reg_irt.info.json | 3 +- .../models/info/hier_2pl.info.json | 3 +- .../models/info/hierarchical_gp.info.json | 3 +- .../models/info/hmm_drive_0.info.json | 3 +- .../models/info/hmm_drive_1.info.json | 3 +- .../models/info/hmm_example.info.json | 3 +- .../models/info/hmm_gaussian.info.json | 3 +- .../models/info/iohmm_reg.info.json | 3 +- .../models/info/irt_2pl.info.json | 12 +- .../info/kidscore_interaction.info.json | 3 +- .../info/kidscore_interaction_c.info.json | 3 +- .../info/kidscore_interaction_c2.info.json | 3 +- .../info/kidscore_interaction_z.info.json | 3 +- .../models/info/kidscore_mom_work.info.json | 3 +- .../models/info/kidscore_momhs.info.json | 3 +- .../models/info/kidscore_momhsiq.info.json | 3 +- .../models/info/kidscore_momiq.info.json | 3 +- .../models/info/kilpisjarvi.info.json | 3 +- .../models/info/kronecker_gp.info.json | 3 +- .../models/info/ldaK2.info.json | 3 +- .../models/info/ldaK5.info.json | 15 +- .../models/info/log10earn_height.info.json | 3 +- .../models/info/logearn_height.info.json | 3 +- .../models/info/logearn_height_male.info.json | 3 +- .../models/info/logearn_interaction.info.json | 3 +- .../info/logearn_interaction_z.info.json | 3 +- .../info/logearn_logheight_male.info.json | 3 +- .../info/logistic_regression_rhs.info.json | 3 +- .../models/info/logmesquite.info.json | 3 +- .../models/info/logmesquite_logva.info.json | 3 +- .../models/info/logmesquite_logvas.info.json | 3 +- .../models/info/logmesquite_logvash.info.json | 3 +- .../info/logmesquite_logvolume.info.json | 3 +- .../models/info/losscurve_sislob.info.json | 3 +- .../models/info/lotka_volterra.info.json | 3 +- .../models/info/low_dim_gauss_mix.info.json | 12 +- .../info/low_dim_gauss_mix_collapse.info.json | 12 +- .../models/info/lsat_model.info.json | 3 +- .../models/info/mesquite.info.json | 3 +- .../models/info/multi_occupancy.info.json | 3 +- posterior_database/models/info/nes.info.json | 3 +- .../models/info/nes_logit_model.info.json | 3 +- .../models/info/nn_rbm1bJ10.info.json | 3 +- .../models/info/nn_rbm1bJ100.info.json | 3 +- .../models/info/normal_mixture.info.json | 3 +- .../models/info/normal_mixture_k.info.json | 3 +- .../info/one_comp_mm_elim_abs.info.json | 11 +- .../models/info/pilots.info.json | 3 +- .../models/info/prophet.info.json | 3 +- .../models/info/radon_county.info.json | 3 +- .../info/radon_county_intercept.info.json | 3 +- ..._hierarchical_intercept_centered.info.json | 3 +- ...erarchical_intercept_noncentered.info.json | 3 +- .../radon_partially_pooled_centered.info.json | 3 +- ...don_partially_pooled_noncentered.info.json | 3 +- .../models/info/radon_pooled.info.json | 3 +- ...adon_variable_intercept_centered.info.json | 3 +- ...n_variable_intercept_noncentered.info.json | 3 +- ...ariable_intercept_slope_centered.info.json | 3 +- ...able_intercept_slope_noncentered.info.json | 3 +- .../radon_variable_slope_centered.info.json | 3 +- ...radon_variable_slope_noncentered.info.json | 3 +- .../models/info/rats_model.info.json | 3 +- .../info/seeds_centered_model.info.json | 3 +- .../info/seeds_stanified_model.info.json | 3 +- .../models/info/sesame_one_pred_a.info.json | 3 +- posterior_database/models/info/sir.info.json | 15 +- .../models/info/soil_incubation.info.json | 3 +- ...hastic_level_stochastic_seasonal.info.json | 3 +- .../models/info/surgical_model.info.json | 3 +- .../models/info/wells_daae_c_model.info.json | 3 +- .../models/info/wells_dae_c_model.info.json | 3 +- .../info/wells_dae_inter_model.info.json | 3 +- .../models/info/wells_dae_model.info.json | 3 +- .../models/info/wells_dist.info.json | 3 +- .../models/info/wells_dist100_model.info.json | 3 +- .../info/wells_dist100ars_model.info.json | 3 +- .../info/wells_interaction_c_model.info.json | 3 +- .../info/wells_interaction_model.info.json | 3 +- .../models/stan/Rate_1_model.stan | 12 +- .../models/stan/Rate_2_model.stan | 18 +- .../models/stan/Rate_3_model.stan | 14 +- .../models/stan/Rate_4_model.stan | 12 +- .../models/stan/Rate_5_model.stan | 18 +- .../models/stan/Survey_model.stan | 32 ++- posterior_database/models/stan/arma11.stan | 22 +- posterior_database/models/stan/blr.stan | 16 +- .../models/stan/bones_model.stan | 30 ++- .../models/stan/bym2_offset_only.stan | 33 +-- .../models/stan/covid19imperial_v2.stan | 199 +++++++------- .../models/stan/covid19imperial_v3.stan | 199 +++++++------- posterior_database/models/stan/diamonds.stan | 30 ++- posterior_database/models/stan/dogs.stan | 36 +-- .../models/stan/dogs_hierarchical.stan | 42 +-- posterior_database/models/stan/dogs_log.stan | 36 +-- .../models/stan/dogs_nonhierarchical.stan | 53 ++-- .../models/stan/dugongs_model.stan | 45 ++-- .../models/stan/earn_height.stan | 2 + .../models/stan/eight_schools_centered.stan | 10 +- .../stan/eight_schools_noncentered.stan | 16 +- .../models/stan/election88_full.stan | 49 ++-- posterior_database/models/stan/garch11.stan | 18 +- .../models/stan/gp_pois_regr.stan | 13 +- posterior_database/models/stan/gp_regr.stan | 12 +- .../models/stan/gpcm_latent_reg_irt.stan | 91 ++++--- .../models/stan/grsm_latent_reg_irt.stan | 77 +++--- posterior_database/models/stan/hier_2pl.stan | 44 ++-- .../models/stan/hierarchical_gp.stan | 126 ++++----- .../models/stan/hmm_drive_0.stan | 100 ++++--- .../models/stan/hmm_drive_1.stan | 104 ++++---- .../models/stan/hmm_example.stan | 70 ++--- .../models/stan/hmm_gaussian.stan | 174 ++++++------ posterior_database/models/stan/iohmm_reg.stan | 249 ++++++++++-------- posterior_database/models/stan/irt_2pl.stan | 19 +- .../models/stan/kidscore_interaction.stan | 8 +- .../models/stan/kidscore_interaction_c.stan | 7 +- .../models/stan/kidscore_interaction_c2.stan | 7 +- .../models/stan/kidscore_interaction_z.stan | 7 +- .../models/stan/kidscore_mom_work.stan | 6 +- .../models/stan/kidscore_momhs.stan | 2 + .../models/stan/kidscore_momhsiq.stan | 2 + .../models/stan/kidscore_momiq.stan | 2 + .../models/stan/kilpisjarvi.stan | 10 +- .../models/stan/kronecker_gp.stan | 139 +++++----- posterior_database/models/stan/ldaK2.stan | 41 +-- posterior_database/models/stan/ldaK5.stan | 39 +-- .../models/stan/log10earn_height.stan | 7 +- .../models/stan/logearn_height.stan | 5 +- .../models/stan/logearn_height_male.stan | 5 +- .../models/stan/logearn_interaction.stan | 8 +- .../models/stan/logearn_interaction_z.stan | 12 +- .../models/stan/logearn_logheight_male.stan | 9 +- .../models/stan/logistic_regression_rhs.stan | 51 ++-- .../models/stan/logmesquite.stan | 21 +- .../models/stan/logmesquite_logva.stan | 9 +- .../models/stan/logmesquite_logvas.stan | 18 +- .../models/stan/logmesquite_logvash.stan | 16 +- .../models/stan/logmesquite_logvolume.stan | 4 +- .../models/stan/losscurve_sislob.stan | 203 +++++++------- .../models/stan/lotka_volterra.stan | 53 ++-- .../models/stan/low_dim_gauss_mix.stan | 24 +- .../stan/low_dim_gauss_mix_collapse.stan | 24 +- .../models/stan/lsat_model.stan | 52 ++-- posterior_database/models/stan/mesquite.stan | 5 +- .../models/stan/multi_occupancy.stan | 109 ++++---- posterior_database/models/stan/nes.stan | 20 +- .../models/stan/nes_logit_model.stan | 5 +- .../models/stan/nn_rbm1bJ10.stan | 37 +-- .../models/stan/nn_rbm1bJ100.stan | 37 +-- .../models/stan/normal_mixture.stan | 23 +- .../models/stan/normal_mixture_k.stan | 21 +- .../models/stan/one_comp_mm_elim_abs.stan | 68 +++-- posterior_database/models/stan/pilots.stan | 25 +- posterior_database/models/stan/prophet.stan | 112 ++++---- .../models/stan/radon_county.stan | 17 +- .../models/stan/radon_county_intercept.stan | 10 +- ...radon_hierarchical_intercept_centered.stan | 10 +- ...on_hierarchical_intercept_noncentered.stan | 12 +- .../stan/radon_partially_pooled_centered.stan | 17 +- .../radon_partially_pooled_noncentered.stan | 18 +- .../models/stan/radon_pooled.stan | 12 +- .../radon_variable_intercept_centered.stan | 25 +- .../radon_variable_intercept_noncentered.stan | 24 +- ...don_variable_intercept_slope_centered.stan | 20 +- ..._variable_intercept_slope_noncentered.stan | 20 +- .../stan/radon_variable_slope_centered.stan | 20 +- .../radon_variable_slope_noncentered.stan | 21 +- .../models/stan/rats_model.stan | 24 +- .../models/stan/seeds_centered_model.stan | 50 ++-- .../models/stan/seeds_model.stan | 51 ++-- .../models/stan/seeds_stanified_model.stan | 47 ++-- .../models/stan/sesame_one_pred_a.stan | 6 +- posterior_database/models/stan/sir.stan | 50 ++-- .../models/stan/soil_incubation.stan | 123 +++++---- ..._stochastic_level_stochastic_seasonal.stan | 20 +- .../models/stan/surgical_model.stan | 24 +- .../models/stan/wells_daae_c_model.stan | 6 +- .../models/stan/wells_dae_c_model.stan | 5 +- .../models/stan/wells_dae_inter_model.stan | 7 +- .../models/stan/wells_dae_model.stan | 5 +- .../models/stan/wells_dist.stan | 4 +- .../models/stan/wells_dist100_model.stan | 8 +- .../models/stan/wells_dist100ars_model.stan | 6 +- .../stan/wells_interaction_c_model.stan | 5 +- .../models/stan/wells_interaction_model.stan | 5 +- 211 files changed, 2314 insertions(+), 2068 deletions(-) diff --git a/posterior_database/models/info/Rate_1_model.info.json b/posterior_database/models/info/Rate_1_model.info.json index dc390649..defc7755 100644 --- a/posterior_database/models/info/Rate_1_model.info.json +++ b/posterior_database/models/info/Rate_1_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-06-30", "model_implementations": { "stan": { - "model_code": "models/stan/Rate_1_model.stan" + "model_code": "models/stan/Rate_1_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/Rate_2_model.info.json b/posterior_database/models/info/Rate_2_model.info.json index 586d0979..48eaf2f3 100644 --- a/posterior_database/models/info/Rate_2_model.info.json +++ b/posterior_database/models/info/Rate_2_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-06-30", "model_implementations": { "stan": { - "model_code": "models/stan/Rate_2_model.stan" + "model_code": "models/stan/Rate_2_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/Rate_3_model.info.json b/posterior_database/models/info/Rate_3_model.info.json index bfecf373..94f93d76 100644 --- a/posterior_database/models/info/Rate_3_model.info.json +++ b/posterior_database/models/info/Rate_3_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-06-30", "model_implementations": { "stan": { - "model_code": "models/stan/Rate_3_model.stan" + "model_code": "models/stan/Rate_3_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/Rate_4_model.info.json b/posterior_database/models/info/Rate_4_model.info.json index c614530f..fe73bedc 100644 --- a/posterior_database/models/info/Rate_4_model.info.json +++ b/posterior_database/models/info/Rate_4_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-06-30", "model_implementations": { "stan": { - "model_code": "models/stan/Rate_4_model.stan" + "model_code": "models/stan/Rate_4_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/Rate_5_model.info.json b/posterior_database/models/info/Rate_5_model.info.json index 19c098fb..51941cb4 100644 --- a/posterior_database/models/info/Rate_5_model.info.json +++ b/posterior_database/models/info/Rate_5_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-06-30", "model_implementations": { "stan": { - "model_code": "models/stan/Rate_5_model.stan" + "model_code": "models/stan/Rate_5_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/Survey_model.info.json b/posterior_database/models/info/Survey_model.info.json index 728e87ea..69c047ef 100644 --- a/posterior_database/models/info/Survey_model.info.json +++ b/posterior_database/models/info/Survey_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-06-30", "model_implementations": { "stan": { - "model_code": "models/stan/Survey_model.stan" + "model_code": "models/stan/Survey_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/arma11.info.json b/posterior_database/models/info/arma11.info.json index 72aee427..f4841f1b 100644 --- a/posterior_database/models/info/arma11.info.json +++ b/posterior_database/models/info/arma11.info.json @@ -2,19 +2,16 @@ "name": "arma11", "title": "Autoregressive Moving Average", "description": "An ARMA(1, 1) time series model.", - "keywords": [ - "stan_benchmark" - ], + "keywords": "stan_benchmark", "references": null, - "urls": [ - "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/arma" - ], + "urls": "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/arma", "prior": { "keywords": [] }, "model_implementations": { "stan": { - "model_code": "models/stan/arma11.stan" + "model_code": "models/stan/arma11.stan", + "stan_version": ">=2.26.0" } }, "added_by": "Mans Magnusson", diff --git a/posterior_database/models/info/blr.info.json b/posterior_database/models/info/blr.info.json index 41fee574..7dec8cdf 100644 --- a/posterior_database/models/info/blr.info.json +++ b/posterior_database/models/info/blr.info.json @@ -10,7 +10,8 @@ }, "model_implementations": { "stan": { - "model_code": "models/stan/blr.stan" + "model_code": "models/stan/blr.stan", + "stan_version": ">=2.26.0" } }, "added_by": "Mans Magnusson", diff --git a/posterior_database/models/info/bones_model.info.json b/posterior_database/models/info/bones_model.info.json index 47a3d371..1a8cf2da 100644 --- a/posterior_database/models/info/bones_model.info.json +++ b/posterior_database/models/info/bones_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-06", "model_implementations": { "stan": { - "model_code": "models/stan/bones_model.stan" + "model_code": "models/stan/bones_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/bym2_offset_only.info.json b/posterior_database/models/info/bym2_offset_only.info.json index 33a819b9..8010aaf2 100644 --- a/posterior_database/models/info/bym2_offset_only.info.json +++ b/posterior_database/models/info/bym2_offset_only.info.json @@ -9,7 +9,8 @@ "added_date": "2021-08-03", "model_implementations": { "stan": { - "model_code": "models/stan/bym2_offset_only.stan" + "model_code": "models/stan/bym2_offset_only.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/covid19imperial_v2.info.json b/posterior_database/models/info/covid19imperial_v2.info.json index 61da8cf0..f6607a6c 100644 --- a/posterior_database/models/info/covid19imperial_v2.info.json +++ b/posterior_database/models/info/covid19imperial_v2.info.json @@ -9,7 +9,8 @@ "urls": "https://github.com/ImperialCollegeLondon/covid19model", "model_implementations": { "stan": { - "model_code": "models/stan/covid19imperial_v2.stan" + "model_code": "models/stan/covid19imperial_v2.stan", + "stan_version": ">=2.26.0" } }, "references": "flaxman2020report", diff --git a/posterior_database/models/info/covid19imperial_v3.info.json b/posterior_database/models/info/covid19imperial_v3.info.json index 5f9e7e2b..ded0cb98 100644 --- a/posterior_database/models/info/covid19imperial_v3.info.json +++ b/posterior_database/models/info/covid19imperial_v3.info.json @@ -9,7 +9,8 @@ "urls": "https://github.com/ImperialCollegeLondon/covid19model", "model_implementations": { "stan": { - "model_code": "models/stan/covid19imperial_v3.stan" + "model_code": "models/stan/covid19imperial_v3.stan", + "stan_version": ">=2.26.0" } }, "references": null, diff --git a/posterior_database/models/info/diamonds.info.json b/posterior_database/models/info/diamonds.info.json index e93cf485..baa33e5a 100644 --- a/posterior_database/models/info/diamonds.info.json +++ b/posterior_database/models/info/diamonds.info.json @@ -9,7 +9,8 @@ "urls": "https://github.com/bbbales2/cmdstan-warmup/blob/develop/examples/diamonds", "model_implementations": { "stan": { - "model_code": "models/stan/diamonds.stan" + "model_code": "models/stan/diamonds.stan", + "stan_version": ">=2.26.0" } }, "references": "bales2019selecting", diff --git a/posterior_database/models/info/dogs.info.json b/posterior_database/models/info/dogs.info.json index cf77efa2..4e730776 100644 --- a/posterior_database/models/info/dogs.info.json +++ b/posterior_database/models/info/dogs.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.24/dogs.stan", "model_implementations": { "stan": { - "model_code": "models/stan/dogs.stan" + "model_code": "models/stan/dogs.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/dogs_hierarchical.info.json b/posterior_database/models/info/dogs_hierarchical.info.json index 780109c5..fcfc522f 100644 --- a/posterior_database/models/info/dogs_hierarchical.info.json +++ b/posterior_database/models/info/dogs_hierarchical.info.json @@ -12,7 +12,8 @@ "added_date": "2022-08-12", "model_implementations": { "stan": { - "model_code": "models/stan/dogs_hierarchical.stan" + "model_code": "models/stan/dogs_hierarchical.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/dogs_log.info.json b/posterior_database/models/info/dogs_log.info.json index 83ca5b5e..1dca5ecc 100644 --- a/posterior_database/models/info/dogs_log.info.json +++ b/posterior_database/models/info/dogs_log.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.24/dogs_log.stan", "model_implementations": { "stan": { - "model_code": "models/stan/dogs_log.stan" + "model_code": "models/stan/dogs_log.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/dogs_nonhierarchical.info.json b/posterior_database/models/info/dogs_nonhierarchical.info.json index ba27522b..b86b32a3 100644 --- a/posterior_database/models/info/dogs_nonhierarchical.info.json +++ b/posterior_database/models/info/dogs_nonhierarchical.info.json @@ -12,7 +12,8 @@ "added_date": "2022-08-12", "model_implementations": { "stan": { - "model_code": "models/stan/dogs_nonhierarchical.stan" + "model_code": "models/stan/dogs_nonhierarchical.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/dugongs_model.info.json b/posterior_database/models/info/dugongs_model.info.json index 37f3f8f7..39daeca5 100644 --- a/posterior_database/models/info/dugongs_model.info.json +++ b/posterior_database/models/info/dugongs_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-15", "model_implementations": { "stan": { - "model_code": "models/stan/dugongs_model.stan" + "model_code": "models/stan/dugongs_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/earn_height.info.json b/posterior_database/models/info/earn_height.info.json index cab75238..344e740f 100644 --- a/posterior_database/models/info/earn_height.info.json +++ b/posterior_database/models/info/earn_height.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/earn_height.stan", "model_implementations": { "stan": { - "model_code": "models/stan/earn_height.stan" + "model_code": "models/stan/earn_height.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/eight_schools_centered.info.json b/posterior_database/models/info/eight_schools_centered.info.json index 09560ccf..e6f82596 100644 --- a/posterior_database/models/info/eight_schools_centered.info.json +++ b/posterior_database/models/info/eight_schools_centered.info.json @@ -2,23 +2,16 @@ "name": "eight_schools_centered", "title": "A centered hiearchical model for 8 schools", "description": "A centered hiearchical model for the 8 schools example of Rubin (1981)", - "keywords": [ - "bda3_example", - "hiearchical" - ], - "references": [ - "rubin1981estimation", - "gelman2013bayesian" - ], - "urls": [ - "http://www.stat.columbia.edu/~gelman/arm/examples/schools" - ], + "keywords": ["bda3_example", "hiearchical"], + "references": ["rubin1981estimation", "gelman2013bayesian"], + "urls": "http://www.stat.columbia.edu/~gelman/arm/examples/schools", "prior": { "keywords": [] }, "model_implementations": { "stan": { - "model_code": "models/stan/eight_schools_centered.stan" + "model_code": "models/stan/eight_schools_centered.stan", + "stan_version": ">=2.26.0" } }, "added_by": "Mans Magnusson", diff --git a/posterior_database/models/info/eight_schools_noncentered.info.json b/posterior_database/models/info/eight_schools_noncentered.info.json index 2dc9096d..b83367f9 100644 --- a/posterior_database/models/info/eight_schools_noncentered.info.json +++ b/posterior_database/models/info/eight_schools_noncentered.info.json @@ -2,22 +2,16 @@ "name": "eight_schools_noncentered", "title": "A non-centered hiearchical model for 8 schools", "description": "A non-centered hiearchical model for the 8 schools example of Rubin (1981)", - "keywords": [ - "hiearchical" - ], - "references": [ - "rubin1981estimation", - "gelman2013bayesian" - ], - "urls": [ - "http://www.stat.columbia.edu/~gelman/arm/examples/schools" - ], + "keywords": "hiearchical", + "references": ["rubin1981estimation", "gelman2013bayesian"], + "urls": "http://www.stat.columbia.edu/~gelman/arm/examples/schools", "prior": { "keywords": [] }, "model_implementations": { "stan": { - "model_code": "models/stan/eight_schools_noncentered.stan" + "model_code": "models/stan/eight_schools_noncentered.stan", + "stan_version": ">=2.26.0" }, "pymc3": { "model_code": "models/pymc3/eight_schools_noncentered.py" diff --git a/posterior_database/models/info/election88_full.info.json b/posterior_database/models/info/election88_full.info.json index e7029cb4..058b3567 100644 --- a/posterior_database/models/info/election88_full.info.json +++ b/posterior_database/models/info/election88_full.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.14/election88_full.stan", "model_implementations": { "stan": { - "model_code": "models/stan/election88_full.stan" + "model_code": "models/stan/election88_full.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/garch11.info.json b/posterior_database/models/info/garch11.info.json index cd5a5c08..65ccdb38 100644 --- a/posterior_database/models/info/garch11.info.json +++ b/posterior_database/models/info/garch11.info.json @@ -2,20 +2,16 @@ "name": "garch11", "title": "Generalized Autoregressive Conditional Heteroscedastic Model", "description": "A GARCH(1, 1) time series model.", - "keywords": [ - "stan_benchmark", - "time series" - ], + "keywords": ["stan_benchmark", "time series"], "references": null, - "urls": [ - "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/garch" - ], + "urls": "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/garch", "prior": { "keywords": [] }, "model_implementations": { "stan": { - "model_code": "models/stan/garch11.stan" + "model_code": "models/stan/garch11.stan", + "stan_version": ">=2.26.0" } }, "added_by": "Mans Magnusson", diff --git a/posterior_database/models/info/gp_pois_regr.info.json b/posterior_database/models/info/gp_pois_regr.info.json index 28c1f161..75bb7bbf 100644 --- a/posterior_database/models/info/gp_pois_regr.info.json +++ b/posterior_database/models/info/gp_pois_regr.info.json @@ -2,20 +2,16 @@ "name": "gp_pois_regr", "title": "Gaussian Process Poisson Regression", "description": "Poisson regression with a one-dimensional latent Gaussian process \nusing the exponential quadratic covariance function.", - "keywords": [ - "stan_benchmark", - "gaussian process" - ], + "keywords": ["stan_benchmark", "gaussian process"], "references": null, - "urls": [ - "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/gp_pois_regr" - ], + "urls": "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/gp_pois_regr", "prior": { "keywords": [] }, "model_implementations": { "stan": { - "model_code": "models/stan/gp_pois_regr.stan" + "model_code": "models/stan/gp_pois_regr.stan", + "stan_version": ">=2.26.0" } }, "added_by": "Mans Magnusson", diff --git a/posterior_database/models/info/gp_regr.info.json b/posterior_database/models/info/gp_regr.info.json index 195e3d83..1f5ffbe0 100644 --- a/posterior_database/models/info/gp_regr.info.json +++ b/posterior_database/models/info/gp_regr.info.json @@ -2,20 +2,16 @@ "name": "gp_regr", "title": "Gaussian Process regression", "description": "One-dimensional Gaussian process Regression using the\nexponential quadratic covariance function.", - "keywords": [ - "stan_benchmark", - "gaussian process" - ], + "keywords": ["stan_benchmark", "gaussian process"], "references": null, - "urls": [ - "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/gp_regr" - ], + "urls": "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/gp_regr", "prior": { "keywords": [] }, "model_implementations": { "stan": { - "model_code": "models/stan/gp_regr.stan" + "model_code": "models/stan/gp_regr.stan", + "stan_version": ">=2.26.0" } }, "added_by": "Mans Magnusson", diff --git a/posterior_database/models/info/gpcm_latent_reg_irt.info.json b/posterior_database/models/info/gpcm_latent_reg_irt.info.json index f174f5a8..dba25396 100644 --- a/posterior_database/models/info/gpcm_latent_reg_irt.info.json +++ b/posterior_database/models/info/gpcm_latent_reg_irt.info.json @@ -9,7 +9,8 @@ "added_date": "2021-08-03", "model_implementations": { "stan": { - "model_code": "models/stan/gpcm_latent_reg_irt.stan" + "model_code": "models/stan/gpcm_latent_reg_irt.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/grsm_latent_reg_irt.info.json b/posterior_database/models/info/grsm_latent_reg_irt.info.json index 18c47c26..ab0c4878 100644 --- a/posterior_database/models/info/grsm_latent_reg_irt.info.json +++ b/posterior_database/models/info/grsm_latent_reg_irt.info.json @@ -9,7 +9,8 @@ "added_date": "2021-08-03", "model_implementations": { "stan": { - "model_code": "models/stan/grsm_latent_reg_irt.stan" + "model_code": "models/stan/grsm_latent_reg_irt.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/hier_2pl.info.json b/posterior_database/models/info/hier_2pl.info.json index 52d2910b..b99b0f9e 100644 --- a/posterior_database/models/info/hier_2pl.info.json +++ b/posterior_database/models/info/hier_2pl.info.json @@ -9,7 +9,8 @@ "urls": "https://mc-stan.org/users/documentation/case-studies/hierarchical_2pl.html", "model_implementations": { "stan": { - "model_code": "models/stan/hier_2pl.stan" + "model_code": "models/stan/hier_2pl.stan", + "stan_version": ">=2.26.0" } }, "references": "furr2016hier", diff --git a/posterior_database/models/info/hierarchical_gp.info.json b/posterior_database/models/info/hierarchical_gp.info.json index 7329da18..ee1feb49 100644 --- a/posterior_database/models/info/hierarchical_gp.info.json +++ b/posterior_database/models/info/hierarchical_gp.info.json @@ -9,7 +9,8 @@ "added_date": "2021-08-03", "model_implementations": { "stan": { - "model_code": "models/stan/hierarchical_gp.stan" + "model_code": "models/stan/hierarchical_gp.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/hmm_drive_0.info.json b/posterior_database/models/info/hmm_drive_0.info.json index 34577d56..4e4f0bfe 100644 --- a/posterior_database/models/info/hmm_drive_0.info.json +++ b/posterior_database/models/info/hmm_drive_0.info.json @@ -9,7 +9,8 @@ "urls": "https://github.com/imadmali/bball-hmm/blob/master/models/drive_0.stan", "model_implementations": { "stan": { - "model_code": "models/stan/hmm_drive_0.stan" + "model_code": "models/stan/hmm_drive_0.stan", + "stan_version": ">=2.26.0" } }, "added_date": "2020-05-10", diff --git a/posterior_database/models/info/hmm_drive_1.info.json b/posterior_database/models/info/hmm_drive_1.info.json index bf83a3ac..58ed7b9f 100644 --- a/posterior_database/models/info/hmm_drive_1.info.json +++ b/posterior_database/models/info/hmm_drive_1.info.json @@ -9,7 +9,8 @@ "urls": "https://github.com/imadmali/bball-hmm/blob/master/models/drive_1.stan", "model_implementations": { "stan": { - "model_code": "models/stan/hmm_drive_1.stan" + "model_code": "models/stan/hmm_drive_1.stan", + "stan_version": ">=2.26.0" } }, "references": null, diff --git a/posterior_database/models/info/hmm_example.info.json b/posterior_database/models/info/hmm_example.info.json index 6e968d27..bfcc45b0 100644 --- a/posterior_database/models/info/hmm_example.info.json +++ b/posterior_database/models/info/hmm_example.info.json @@ -9,7 +9,8 @@ "urls": "https://github.com/imadmali/bball-hmm/blob/master/models/hmm_example.stan", "model_implementations": { "stan": { - "model_code": "models/stan/hmm_example.stan" + "model_code": "models/stan/hmm_example.stan", + "stan_version": ">=2.26.0" } }, "references": null, diff --git a/posterior_database/models/info/hmm_gaussian.info.json b/posterior_database/models/info/hmm_gaussian.info.json index d8529b07..bb0cd5b8 100644 --- a/posterior_database/models/info/hmm_gaussian.info.json +++ b/posterior_database/models/info/hmm_gaussian.info.json @@ -9,7 +9,8 @@ "added_date": "2021-08-19", "model_implementations": { "stan": { - "model_code": "models/stan/hmm_gaussian.stan" + "model_code": "models/stan/hmm_gaussian.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/iohmm_reg.info.json b/posterior_database/models/info/iohmm_reg.info.json index f9e0c1b7..c1448fcd 100644 --- a/posterior_database/models/info/iohmm_reg.info.json +++ b/posterior_database/models/info/iohmm_reg.info.json @@ -9,7 +9,8 @@ "added_date": "2021-08-19", "model_implementations": { "stan": { - "model_code": "models/stan/iohmm_reg.stan" + "model_code": "models/stan/iohmm_reg.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/irt_2pl.info.json b/posterior_database/models/info/irt_2pl.info.json index 844baad9..a813d296 100644 --- a/posterior_database/models/info/irt_2pl.info.json +++ b/posterior_database/models/info/irt_2pl.info.json @@ -2,20 +2,16 @@ "name": "irt_2pl", "title": "Two Parameter Logistic Item Response Theory Model", "description": "Hierarchical item response theory model.", - "keywords": [ - "stan_benchmark", - "hiearchical" - ], + "keywords": ["stan_benchmark", "hiearchical"], "references": null, - "urls": [ - "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/irt_2pl" - ], + "urls": "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/irt_2pl", "prior": { "keywords": [] }, "model_implementations": { "stan": { - "model_code": "models/stan/irt_2pl.stan" + "model_code": "models/stan/irt_2pl.stan", + "stan_version": ">=2.26.0" } }, "added_by": "Mans Magnusson", diff --git a/posterior_database/models/info/kidscore_interaction.info.json b/posterior_database/models/info/kidscore_interaction.info.json index 2085c45e..925b4da0 100644 --- a/posterior_database/models/info/kidscore_interaction.info.json +++ b/posterior_database/models/info/kidscore_interaction.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.3/kidiq_interaction.stan", "model_implementations": { "stan": { - "model_code": "models/stan/kidscore_interaction.stan" + "model_code": "models/stan/kidscore_interaction.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/kidscore_interaction_c.info.json b/posterior_database/models/info/kidscore_interaction_c.info.json index 47a64829..dd240b98 100644 --- a/posterior_database/models/info/kidscore_interaction_c.info.json +++ b/posterior_database/models/info/kidscore_interaction_c.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/kidiq_interaction_c.stan", "model_implementations": { "stan": { - "model_code": "models/stan/kidscore_interaction_c.stan" + "model_code": "models/stan/kidscore_interaction_c.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/kidscore_interaction_c2.info.json b/posterior_database/models/info/kidscore_interaction_c2.info.json index f65bc830..b2dd61dc 100644 --- a/posterior_database/models/info/kidscore_interaction_c2.info.json +++ b/posterior_database/models/info/kidscore_interaction_c2.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/kidiq_interaction_c2.stan", "model_implementations": { "stan": { - "model_code": "models/stan/kidscore_interaction_c2.stan" + "model_code": "models/stan/kidscore_interaction_c2.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/kidscore_interaction_z.info.json b/posterior_database/models/info/kidscore_interaction_z.info.json index 9a5b6bc6..98f30eed 100644 --- a/posterior_database/models/info/kidscore_interaction_z.info.json +++ b/posterior_database/models/info/kidscore_interaction_z.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/kidiq_interaction_z.stan", "model_implementations": { "stan": { - "model_code": "models/stan/kidscore_interaction_z.stan" + "model_code": "models/stan/kidscore_interaction_z.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/kidscore_mom_work.info.json b/posterior_database/models/info/kidscore_mom_work.info.json index 714d2ae1..ef3b4bf4 100644 --- a/posterior_database/models/info/kidscore_mom_work.info.json +++ b/posterior_database/models/info/kidscore_mom_work.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/kidscore_momwork.stan", "model_implementations": { "stan": { - "model_code": "models/stan/kidscore_mom_work.stan" + "model_code": "models/stan/kidscore_mom_work.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/kidscore_momhs.info.json b/posterior_database/models/info/kidscore_momhs.info.json index 4e4b316d..ee935e5e 100644 --- a/posterior_database/models/info/kidscore_momhs.info.json +++ b/posterior_database/models/info/kidscore_momhs.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.3/kidscore_momhs.stan", "model_implementations": { "stan": { - "model_code": "models/stan/kidscore_momhs.stan" + "model_code": "models/stan/kidscore_momhs.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/kidscore_momhsiq.info.json b/posterior_database/models/info/kidscore_momhsiq.info.json index e7a9af33..95643ef8 100644 --- a/posterior_database/models/info/kidscore_momhsiq.info.json +++ b/posterior_database/models/info/kidscore_momhsiq.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.3/kidiq_multi_preds.stan", "model_implementations": { "stan": { - "model_code": "models/stan/kidscore_momhsiq.stan" + "model_code": "models/stan/kidscore_momhsiq.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/kidscore_momiq.info.json b/posterior_database/models/info/kidscore_momiq.info.json index dc92b960..1f7246c8 100644 --- a/posterior_database/models/info/kidscore_momiq.info.json +++ b/posterior_database/models/info/kidscore_momiq.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.3/kidscore_momiq.stan", "model_implementations": { "stan": { - "model_code": "models/stan/kidscore_momiq.stan" + "model_code": "models/stan/kidscore_momiq.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/kilpisjarvi.info.json b/posterior_database/models/info/kilpisjarvi.info.json index 23a890ea..39327bf8 100644 --- a/posterior_database/models/info/kilpisjarvi.info.json +++ b/posterior_database/models/info/kilpisjarvi.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/bbbales2/cmdstan-warmup/develop/examples/kilpisjarvi/kilpisjarvi.stan", "model_implementations": { "stan": { - "model_code": "models/stan/kilpisjarvi.stan" + "model_code": "models/stan/kilpisjarvi.stan", + "stan_version": ">=2.26.0" } }, "references": "bales2019selecting", diff --git a/posterior_database/models/info/kronecker_gp.info.json b/posterior_database/models/info/kronecker_gp.info.json index e85cb267..1bd69286 100644 --- a/posterior_database/models/info/kronecker_gp.info.json +++ b/posterior_database/models/info/kronecker_gp.info.json @@ -9,7 +9,8 @@ "added_date": "2021-08-03", "model_implementations": { "stan": { - "model_code": "models/stan/kronecker_gp.stan" + "model_code": "models/stan/kronecker_gp.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/ldaK2.info.json b/posterior_database/models/info/ldaK2.info.json index 4a568722..fc6c2717 100644 --- a/posterior_database/models/info/ldaK2.info.json +++ b/posterior_database/models/info/ldaK2.info.json @@ -9,7 +9,8 @@ "added_date": "2021-02-26", "model_implementations": { "stan": { - "model_code": "models/stan/ldaK2.stan" + "model_code": "models/stan/ldaK2.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/ldaK5.info.json b/posterior_database/models/info/ldaK5.info.json index 43925110..80186b63 100644 --- a/posterior_database/models/info/ldaK5.info.json +++ b/posterior_database/models/info/ldaK5.info.json @@ -2,21 +2,16 @@ "name": "ldaK5", "title": "LDA with 5 topics", "description": "Latent Dirichlet Allocation (LDA) with token indicators marginalized out.", - "keywords": [ - "mixed_membership" - ], - "references": [ - "blei2003latent" - ], - "urls": [ - "https://mc-stan.org/docs/2_18/stan-users-guide/latent-dirichlet-allocation.html" - ], + "keywords": "mixed_membership", + "references": "blei2003latent", + "urls": "https://mc-stan.org/docs/2_18/stan-users-guide/latent-dirichlet-allocation.html", "prior": { "keywords": [] }, "model_implementations": { "stan": { - "model_code": "models/stan/ldaK5.stan" + "model_code": "models/stan/ldaK5.stan", + "stan_version": ">=2.26.0" } }, "added_by": "Mans Magnusson", diff --git a/posterior_database/models/info/log10earn_height.info.json b/posterior_database/models/info/log10earn_height.info.json index e7a4d60a..caf0d5e5 100644 --- a/posterior_database/models/info/log10earn_height.info.json +++ b/posterior_database/models/info/log10earn_height.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/log10earn_height.stan", "model_implementations": { "stan": { - "model_code": "models/stan/log10earn_height.stan" + "model_code": "models/stan/log10earn_height.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/logearn_height.info.json b/posterior_database/models/info/logearn_height.info.json index 9c66e684..10409885 100644 --- a/posterior_database/models/info/logearn_height.info.json +++ b/posterior_database/models/info/logearn_height.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/logearn_height.stan", "model_implementations": { "stan": { - "model_code": "models/stan/logearn_height.stan" + "model_code": "models/stan/logearn_height.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/logearn_height_male.info.json b/posterior_database/models/info/logearn_height_male.info.json index 7936f56a..3d5117d0 100644 --- a/posterior_database/models/info/logearn_height_male.info.json +++ b/posterior_database/models/info/logearn_height_male.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/logearn_height_male.stan", "model_implementations": { "stan": { - "model_code": "models/stan/logearn_height_male.stan" + "model_code": "models/stan/logearn_height_male.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/logearn_interaction.info.json b/posterior_database/models/info/logearn_interaction.info.json index e525f3ff..05a5f632 100644 --- a/posterior_database/models/info/logearn_interaction.info.json +++ b/posterior_database/models/info/logearn_interaction.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/logearn_interaction.stan", "model_implementations": { "stan": { - "model_code": "models/stan/logearn_interaction.stan" + "model_code": "models/stan/logearn_interaction.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/logearn_interaction_z.info.json b/posterior_database/models/info/logearn_interaction_z.info.json index d7dc51a9..aa3b24df 100644 --- a/posterior_database/models/info/logearn_interaction_z.info.json +++ b/posterior_database/models/info/logearn_interaction_z.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/logearn_interaction_z.stan", "model_implementations": { "stan": { - "model_code": "models/stan/logearn_interaction_z.stan" + "model_code": "models/stan/logearn_interaction_z.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/logearn_logheight_male.info.json b/posterior_database/models/info/logearn_logheight_male.info.json index 02eacc4c..7e0ce3ed 100644 --- a/posterior_database/models/info/logearn_logheight_male.info.json +++ b/posterior_database/models/info/logearn_logheight_male.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/logearn_logheight.stan", "model_implementations": { "stan": { - "model_code": "models/stan/logearn_logheight_male.stan" + "model_code": "models/stan/logearn_logheight_male.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/logistic_regression_rhs.info.json b/posterior_database/models/info/logistic_regression_rhs.info.json index 33507de0..822a8f27 100644 --- a/posterior_database/models/info/logistic_regression_rhs.info.json +++ b/posterior_database/models/info/logistic_regression_rhs.info.json @@ -9,7 +9,8 @@ "urls": "", "model_implementations": { "stan": { - "model_code": "models/stan/logistic_regression_rhs.stan" + "model_code": "models/stan/logistic_regression_rhs.stan", + "stan_version": ">=2.26.0" } }, "references": "piironen2017sparsity", diff --git a/posterior_database/models/info/logmesquite.info.json b/posterior_database/models/info/logmesquite.info.json index 70d1a516..a9d8759c 100644 --- a/posterior_database/models/info/logmesquite.info.json +++ b/posterior_database/models/info/logmesquite.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/mesquite_log.stan", "model_implementations": { "stan": { - "model_code": "models/stan/logmesquite.stan" + "model_code": "models/stan/logmesquite.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/logmesquite_logva.info.json b/posterior_database/models/info/logmesquite_logva.info.json index d4afa3c2..5cb98968 100644 --- a/posterior_database/models/info/logmesquite_logva.info.json +++ b/posterior_database/models/info/logmesquite_logva.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/mesquite_va.stan", "model_implementations": { "stan": { - "model_code": "models/stan/logmesquite_logva.stan" + "model_code": "models/stan/logmesquite_logva.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/logmesquite_logvas.info.json b/posterior_database/models/info/logmesquite_logvas.info.json index 85652395..1f4d24dd 100644 --- a/posterior_database/models/info/logmesquite_logvas.info.json +++ b/posterior_database/models/info/logmesquite_logvas.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/mesquite_vas.stan", "model_implementations": { "stan": { - "model_code": "models/stan/logmesquite_logvas.stan" + "model_code": "models/stan/logmesquite_logvas.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/logmesquite_logvash.info.json b/posterior_database/models/info/logmesquite_logvash.info.json index f479e686..53d4d281 100644 --- a/posterior_database/models/info/logmesquite_logvash.info.json +++ b/posterior_database/models/info/logmesquite_logvash.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/mesquite_vash.stan", "model_implementations": { "stan": { - "model_code": "models/stan/logmesquite_logvash.stan" + "model_code": "models/stan/logmesquite_logvash.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/logmesquite_logvolume.info.json b/posterior_database/models/info/logmesquite_logvolume.info.json index a3b52e05..70734e2d 100644 --- a/posterior_database/models/info/logmesquite_logvolume.info.json +++ b/posterior_database/models/info/logmesquite_logvolume.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/mesquite_volume.stan", "model_implementations": { "stan": { - "model_code": "models/stan/logmesquite_logvolume.stan" + "model_code": "models/stan/logmesquite_logvolume.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/losscurve_sislob.info.json b/posterior_database/models/info/losscurve_sislob.info.json index 06c32eb1..4d7f2f6d 100644 --- a/posterior_database/models/info/losscurve_sislob.info.json +++ b/posterior_database/models/info/losscurve_sislob.info.json @@ -9,7 +9,8 @@ "added_date": "2021-08-03", "model_implementations": { "stan": { - "model_code": "models/stan/losscurve_sislob.stan" + "model_code": "models/stan/losscurve_sislob.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/lotka_volterra.info.json b/posterior_database/models/info/lotka_volterra.info.json index 0d1dc8e0..4d8cc719 100644 --- a/posterior_database/models/info/lotka_volterra.info.json +++ b/posterior_database/models/info/lotka_volterra.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/knitr/lotka-volterra/lotka-volterra.stan", "model_implementations": { "stan": { - "model_code": "models/stan/lotka_volterra.stan" + "model_code": "models/stan/lotka_volterra.stan", + "stan_version": ">=2.26.0" } }, "references": ["lotka1925principles", "volterra1926fluctuations", "volterra1927variazioni"], diff --git a/posterior_database/models/info/low_dim_gauss_mix.info.json b/posterior_database/models/info/low_dim_gauss_mix.info.json index c659aba4..2d272192 100644 --- a/posterior_database/models/info/low_dim_gauss_mix.info.json +++ b/posterior_database/models/info/low_dim_gauss_mix.info.json @@ -2,20 +2,16 @@ "name": "low_dim_gauss_mix", "title": "A Two-Dimensional Gaussian Mixture Model", "description": "A Two-Dimensional Gaussian Mixture Model", - "keywords": [ - "stan_benchmark", - "mixture model" - ], + "keywords": ["stan_benchmark", "mixture model"], "references": null, - "urls": [ - "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/low_dim_gauss_mix" - ], + "urls": "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/low_dim_gauss_mix", "prior": { "keywords": [] }, "model_implementations": { "stan": { - "model_code": "models/stan/low_dim_gauss_mix.stan" + "model_code": "models/stan/low_dim_gauss_mix.stan", + "stan_version": ">=2.26.0" } }, "added_by": "Mans Magnusson", diff --git a/posterior_database/models/info/low_dim_gauss_mix_collapse.info.json b/posterior_database/models/info/low_dim_gauss_mix_collapse.info.json index d157bee2..ef7bcdcb 100644 --- a/posterior_database/models/info/low_dim_gauss_mix_collapse.info.json +++ b/posterior_database/models/info/low_dim_gauss_mix_collapse.info.json @@ -2,20 +2,16 @@ "name": "low_dim_gauss_mix_collapse", "title": "A Two-Dimensional (unordered) Gaussian Mixture Model", "description": "A Two-Dimensional Gaussian Mixture Model", - "keywords": [ - "stan_benchmark", - "mixture model" - ], + "keywords": ["stan_benchmark", "mixture model"], "references": null, - "urls": [ - "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/low_dim_gauss_mix_collapse" - ], + "urls": "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/low_dim_gauss_mix_collapse", "prior": { "keywords": [] }, "model_implementations": { "stan": { - "model_code": "models/stan/low_dim_gauss_mix_collapse.stan" + "model_code": "models/stan/low_dim_gauss_mix_collapse.stan", + "stan_version": ">=2.26.0" } }, "added_by": "Mans Magnusson", diff --git a/posterior_database/models/info/lsat_model.info.json b/posterior_database/models/info/lsat_model.info.json index c6c0e99f..13257a7c 100644 --- a/posterior_database/models/info/lsat_model.info.json +++ b/posterior_database/models/info/lsat_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-13", "model_implementations": { "stan": { - "model_code": "models/stan/lsat_model.stan" + "model_code": "models/stan/lsat_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/mesquite.info.json b/posterior_database/models/info/mesquite.info.json index 5e08a139..6d8fc1a1 100644 --- a/posterior_database/models/info/mesquite.info.json +++ b/posterior_database/models/info/mesquite.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/mesquite.stan", "model_implementations": { "stan": { - "model_code": "models/stan/mesquite.stan" + "model_code": "models/stan/mesquite.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/multi_occupancy.info.json b/posterior_database/models/info/multi_occupancy.info.json index 7fc3d6cf..17d887c8 100644 --- a/posterior_database/models/info/multi_occupancy.info.json +++ b/posterior_database/models/info/multi_occupancy.info.json @@ -9,7 +9,8 @@ "urls": "", "model_implementations": { "stan": { - "model_code": "models/stan/multi_occupancy.stan" + "model_code": "models/stan/multi_occupancy.stan", + "stan_version": ">=2.26.0" } }, "references": "dorazio2006estimating", diff --git a/posterior_database/models/info/nes.info.json b/posterior_database/models/info/nes.info.json index 6d68dc83..741863b5 100644 --- a/posterior_database/models/info/nes.info.json +++ b/posterior_database/models/info/nes.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.4/nes.stan", "model_implementations": { "stan": { - "model_code": "models/stan/nes.stan" + "model_code": "models/stan/nes.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/nes_logit_model.info.json b/posterior_database/models/info/nes_logit_model.info.json index 46fd69a3..351c53c2 100644 --- a/posterior_database/models/info/nes_logit_model.info.json +++ b/posterior_database/models/info/nes_logit_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-01", "model_implementations": { "stan": { - "model_code": "models/stan/nes_logit_model.stan" + "model_code": "models/stan/nes_logit_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/nn_rbm1bJ10.info.json b/posterior_database/models/info/nn_rbm1bJ10.info.json index f71278ce..925f9bad 100644 --- a/posterior_database/models/info/nn_rbm1bJ10.info.json +++ b/posterior_database/models/info/nn_rbm1bJ10.info.json @@ -9,7 +9,8 @@ "urls": "https://github.com/stan-dev/example-models/tree/master/knitr/neural-nets", "model_implementations": { "stan": { - "model_code": "models/stan/nn_rbm1bJ10.stan" + "model_code": "models/stan/nn_rbm1bJ10.stan", + "stan_version": ">=2.26.0" } }, "references": "lampinen2001bayesian", diff --git a/posterior_database/models/info/nn_rbm1bJ100.info.json b/posterior_database/models/info/nn_rbm1bJ100.info.json index 731bff17..d6a5afa3 100644 --- a/posterior_database/models/info/nn_rbm1bJ100.info.json +++ b/posterior_database/models/info/nn_rbm1bJ100.info.json @@ -9,7 +9,8 @@ "urls": "https://github.com/stan-dev/example-models/tree/master/knitr/neural-nets", "model_implementations": { "stan": { - "model_code": "models/stan/nn_rbm1bJ100.stan" + "model_code": "models/stan/nn_rbm1bJ100.stan", + "stan_version": ">=2.26.0" } }, "references": "lampinen2001bayesian", diff --git a/posterior_database/models/info/normal_mixture.info.json b/posterior_database/models/info/normal_mixture.info.json index abf2d6ce..ac3d9bd5 100644 --- a/posterior_database/models/info/normal_mixture.info.json +++ b/posterior_database/models/info/normal_mixture.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/basic_estimators/normal_mixture.stan", "model_implementations": { "stan": { - "model_code": "models/stan/normal_mixture.stan" + "model_code": "models/stan/normal_mixture.stan", + "stan_version": ">=2.26.0" } }, "references": null, diff --git a/posterior_database/models/info/normal_mixture_k.info.json b/posterior_database/models/info/normal_mixture_k.info.json index 62c8a5bc..be1f376b 100644 --- a/posterior_database/models/info/normal_mixture_k.info.json +++ b/posterior_database/models/info/normal_mixture_k.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/basic_estimators/normal_mixture_k.stan", "model_implementations": { "stan": { - "model_code": "models/stan/normal_mixture_k.stan" + "model_code": "models/stan/normal_mixture_k.stan", + "stan_version": ">=2.26.0" } }, "references": null, diff --git a/posterior_database/models/info/one_comp_mm_elim_abs.info.json b/posterior_database/models/info/one_comp_mm_elim_abs.info.json index dc61a88a..16c0783f 100644 --- a/posterior_database/models/info/one_comp_mm_elim_abs.info.json +++ b/posterior_database/models/info/one_comp_mm_elim_abs.info.json @@ -2,19 +2,16 @@ "name": "one_comp_mm_elim_abs", "title": "A one compartment model", "description": "Note that the model in the database currently hardcodes C0.", - "keywords": [ - "stan_benchmark" - ], + "keywords": "stan_benchmark", "references": null, - "urls": [ - "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/pkpd" - ], + "urls": "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/pkpd", "prior": { "keywords": [] }, "model_implementations": { "stan": { - "model_code": "models/stan/one_comp_mm_elim_abs.stan" + "model_code": "models/stan/one_comp_mm_elim_abs.stan", + "stan_version": ">=2.26.0" } }, "added_by": "Mans Magnusson", diff --git a/posterior_database/models/info/pilots.info.json b/posterior_database/models/info/pilots.info.json index 97e0efe3..2f9841b2 100644 --- a/posterior_database/models/info/pilots.info.json +++ b/posterior_database/models/info/pilots.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/stan-dev/example-models/master/ARM/Ch.14/pilots.stan", "model_implementations": { "stan": { - "model_code": "models/stan/pilots.stan" + "model_code": "models/stan/pilots.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/prophet.info.json b/posterior_database/models/info/prophet.info.json index fca4333a..f5f5f13d 100644 --- a/posterior_database/models/info/prophet.info.json +++ b/posterior_database/models/info/prophet.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/facebook/prophet/master/R/inst/stan/prophet.stan", "model_implementations": { "stan": { - "model_code": "models/stan/prophet.stan" + "model_code": "models/stan/prophet.stan", + "stan_version": ">=2.26.0" } }, "references": "taylor2018forecasting", diff --git a/posterior_database/models/info/radon_county.info.json b/posterior_database/models/info/radon_county.info.json index 079839c0..f9380a29 100644 --- a/posterior_database/models/info/radon_county.info.json +++ b/posterior_database/models/info/radon_county.info.json @@ -9,7 +9,8 @@ "urls": "https://raw.githubusercontent.com/bbbales2/cmdstan-warmup/develop/examples/radon/radon.stan", "model_implementations": { "stan": { - "model_code": "models/stan/radon_county.stan" + "model_code": "models/stan/radon_county.stan", + "stan_version": ">=2.26.0" } }, "references": "bales2019selecting", diff --git a/posterior_database/models/info/radon_county_intercept.info.json b/posterior_database/models/info/radon_county_intercept.info.json index 60708d73..2593bf34 100644 --- a/posterior_database/models/info/radon_county_intercept.info.json +++ b/posterior_database/models/info/radon_county_intercept.info.json @@ -9,7 +9,8 @@ "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_implementations": { "stan": { - "model_code": "models/stan/radon_county_intercept.stan" + "model_code": "models/stan/radon_county_intercept.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/radon_hierarchical_intercept_centered.info.json b/posterior_database/models/info/radon_hierarchical_intercept_centered.info.json index 8e0c23dd..6f804782 100644 --- a/posterior_database/models/info/radon_hierarchical_intercept_centered.info.json +++ b/posterior_database/models/info/radon_hierarchical_intercept_centered.info.json @@ -9,7 +9,8 @@ "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_implementations": { "stan": { - "model_code": "models/stan/radon_hierarchical_intercept_centered.stan" + "model_code": "models/stan/radon_hierarchical_intercept_centered.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/radon_hierarchical_intercept_noncentered.info.json b/posterior_database/models/info/radon_hierarchical_intercept_noncentered.info.json index 64ea1682..14804eb1 100644 --- a/posterior_database/models/info/radon_hierarchical_intercept_noncentered.info.json +++ b/posterior_database/models/info/radon_hierarchical_intercept_noncentered.info.json @@ -9,7 +9,8 @@ "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_implementations": { "stan": { - "model_code": "models/stan/radon_hierarchical_intercept_noncentered.stan" + "model_code": "models/stan/radon_hierarchical_intercept_noncentered.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/radon_partially_pooled_centered.info.json b/posterior_database/models/info/radon_partially_pooled_centered.info.json index dad2f40a..67bf0e3e 100644 --- a/posterior_database/models/info/radon_partially_pooled_centered.info.json +++ b/posterior_database/models/info/radon_partially_pooled_centered.info.json @@ -9,7 +9,8 @@ "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_implementations": { "stan": { - "model_code": "models/stan/radon_partially_pooled_centered.stan" + "model_code": "models/stan/radon_partially_pooled_centered.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/radon_partially_pooled_noncentered.info.json b/posterior_database/models/info/radon_partially_pooled_noncentered.info.json index 875a84d6..f1e552f9 100644 --- a/posterior_database/models/info/radon_partially_pooled_noncentered.info.json +++ b/posterior_database/models/info/radon_partially_pooled_noncentered.info.json @@ -9,7 +9,8 @@ "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_implementations": { "stan": { - "model_code": "models/stan/radon_partially_pooled_noncentered.stan" + "model_code": "models/stan/radon_partially_pooled_noncentered.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/radon_pooled.info.json b/posterior_database/models/info/radon_pooled.info.json index 4b49b515..a02ca7a7 100644 --- a/posterior_database/models/info/radon_pooled.info.json +++ b/posterior_database/models/info/radon_pooled.info.json @@ -9,7 +9,8 @@ "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_implementations": { "stan": { - "model_code": "models/stan/radon_pooled.stan" + "model_code": "models/stan/radon_pooled.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/radon_variable_intercept_centered.info.json b/posterior_database/models/info/radon_variable_intercept_centered.info.json index e1160a75..d0c502e8 100644 --- a/posterior_database/models/info/radon_variable_intercept_centered.info.json +++ b/posterior_database/models/info/radon_variable_intercept_centered.info.json @@ -9,7 +9,8 @@ "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_implementations": { "stan": { - "model_code": "models/stan/radon_variable_intercept_centered.stan" + "model_code": "models/stan/radon_variable_intercept_centered.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/radon_variable_intercept_noncentered.info.json b/posterior_database/models/info/radon_variable_intercept_noncentered.info.json index dbcb8ca4..5a4f827a 100644 --- a/posterior_database/models/info/radon_variable_intercept_noncentered.info.json +++ b/posterior_database/models/info/radon_variable_intercept_noncentered.info.json @@ -9,7 +9,8 @@ "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_implementations": { "stan": { - "model_code": "models/stan/radon_variable_intercept_noncentered.stan" + "model_code": "models/stan/radon_variable_intercept_noncentered.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/radon_variable_intercept_slope_centered.info.json b/posterior_database/models/info/radon_variable_intercept_slope_centered.info.json index 7b79f815..f23bb238 100644 --- a/posterior_database/models/info/radon_variable_intercept_slope_centered.info.json +++ b/posterior_database/models/info/radon_variable_intercept_slope_centered.info.json @@ -9,7 +9,8 @@ "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_implementations": { "stan": { - "model_code": "models/stan/radon_variable_intercept_slope_centered.stan" + "model_code": "models/stan/radon_variable_intercept_slope_centered.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/radon_variable_intercept_slope_noncentered.info.json b/posterior_database/models/info/radon_variable_intercept_slope_noncentered.info.json index 7eaaaf20..26599d87 100644 --- a/posterior_database/models/info/radon_variable_intercept_slope_noncentered.info.json +++ b/posterior_database/models/info/radon_variable_intercept_slope_noncentered.info.json @@ -9,7 +9,8 @@ "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_implementations": { "stan": { - "model_code": "models/stan/radon_variable_intercept_slope_noncentered.stan" + "model_code": "models/stan/radon_variable_intercept_slope_noncentered.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/radon_variable_slope_centered.info.json b/posterior_database/models/info/radon_variable_slope_centered.info.json index 5f0afac0..f6a7bf10 100644 --- a/posterior_database/models/info/radon_variable_slope_centered.info.json +++ b/posterior_database/models/info/radon_variable_slope_centered.info.json @@ -9,7 +9,8 @@ "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_implementations": { "stan": { - "model_code": "models/stan/radon_variable_slope_centered.stan" + "model_code": "models/stan/radon_variable_slope_centered.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/radon_variable_slope_noncentered.info.json b/posterior_database/models/info/radon_variable_slope_noncentered.info.json index c5cf6b77..1565a4a0 100644 --- a/posterior_database/models/info/radon_variable_slope_noncentered.info.json +++ b/posterior_database/models/info/radon_variable_slope_noncentered.info.json @@ -9,7 +9,8 @@ "urls": "https://mc-stan.org/users/documentation/case-studies/radon.html", "model_implementations": { "stan": { - "model_code": "models/stan/radon_variable_slope_noncentered.stan" + "model_code": "models/stan/radon_variable_slope_noncentered.stan", + "stan_version": ">=2.26.0" } }, "references": "gelman2006data", diff --git a/posterior_database/models/info/rats_model.info.json b/posterior_database/models/info/rats_model.info.json index eb84d6f1..dfbe4505 100644 --- a/posterior_database/models/info/rats_model.info.json +++ b/posterior_database/models/info/rats_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-06", "model_implementations": { "stan": { - "model_code": "models/stan/rats_model.stan" + "model_code": "models/stan/rats_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/seeds_centered_model.info.json b/posterior_database/models/info/seeds_centered_model.info.json index 4d11c6ee..b82e8e03 100644 --- a/posterior_database/models/info/seeds_centered_model.info.json +++ b/posterior_database/models/info/seeds_centered_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-07", "model_implementations": { "stan": { - "model_code": "models/stan/seeds_centered_model.stan" + "model_code": "models/stan/seeds_centered_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/seeds_stanified_model.info.json b/posterior_database/models/info/seeds_stanified_model.info.json index 4e4469a6..6c7dcde8 100644 --- a/posterior_database/models/info/seeds_stanified_model.info.json +++ b/posterior_database/models/info/seeds_stanified_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-07", "model_implementations": { "stan": { - "model_code": "models/stan/seeds_stanified_model.stan" + "model_code": "models/stan/seeds_stanified_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/sesame_one_pred_a.info.json b/posterior_database/models/info/sesame_one_pred_a.info.json index 42e9b4e0..85ccbb8a 100644 --- a/posterior_database/models/info/sesame_one_pred_a.info.json +++ b/posterior_database/models/info/sesame_one_pred_a.info.json @@ -9,7 +9,8 @@ "added_date": "2020-10-23", "model_implementations": { "stan": { - "model_code": "models/stan/sesame_one_pred_a.stan" + "model_code": "models/stan/sesame_one_pred_a.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/sir.info.json b/posterior_database/models/info/sir.info.json index 6ebace6e..ac1ee79b 100644 --- a/posterior_database/models/info/sir.info.json +++ b/posterior_database/models/info/sir.info.json @@ -2,21 +2,16 @@ "name": "sir", "title": "Simple SIR model", "description": "A relatively simple susceptible-infected-recovered (SIR) model\nusing the RK45 ODE integrator.", - "keywords": [ - "stan_benchmark" - ], - "references": [ - "grad2012cholera" - ], - "urls": [ - "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/sir" - ], + "keywords": "stan_benchmark", + "references": "grad2012cholera", + "urls": "https://github.com/stan-dev/stat_comp_benchmarks/tree/master/benchmarks/sir", "prior": { "keywords": [] }, "model_implementations": { "stan": { - "model_code": "models/stan/sir.stan" + "model_code": "models/stan/sir.stan", + "stan_version": ">=2.26.0" } }, "added_by": "Mans Magnusson", diff --git a/posterior_database/models/info/soil_incubation.info.json b/posterior_database/models/info/soil_incubation.info.json index a47f1056..2fbcf14a 100644 --- a/posterior_database/models/info/soil_incubation.info.json +++ b/posterior_database/models/info/soil_incubation.info.json @@ -9,7 +9,8 @@ "urls": "https://github.com/stan-dev/example-models/blob/master/knitr/soil-carbon/soil_incubation.stan", "model_implementations": { "stan": { - "model_code": "models/stan/soil_incubation.stan" + "model_code": "models/stan/soil_incubation.stan", + "stan_version": ">=2.26.0" } }, "references": "sierra2014modeling", diff --git a/posterior_database/models/info/state_space_stochastic_level_stochastic_seasonal.info.json b/posterior_database/models/info/state_space_stochastic_level_stochastic_seasonal.info.json index 930616a8..bf91b3cd 100644 --- a/posterior_database/models/info/state_space_stochastic_level_stochastic_seasonal.info.json +++ b/posterior_database/models/info/state_space_stochastic_level_stochastic_seasonal.info.json @@ -9,7 +9,8 @@ "added_date": "2021-08-19", "model_implementations": { "stan": { - "model_code": "models/stan/state_space_stochastic_level_stochastic_seasonal.stan" + "model_code": "models/stan/state_space_stochastic_level_stochastic_seasonal.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/surgical_model.info.json b/posterior_database/models/info/surgical_model.info.json index 7b56d384..1dd2de8c 100644 --- a/posterior_database/models/info/surgical_model.info.json +++ b/posterior_database/models/info/surgical_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-08", "model_implementations": { "stan": { - "model_code": "models/stan/surgical_model.stan" + "model_code": "models/stan/surgical_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/wells_daae_c_model.info.json b/posterior_database/models/info/wells_daae_c_model.info.json index d32bcb1f..70ec64f5 100644 --- a/posterior_database/models/info/wells_daae_c_model.info.json +++ b/posterior_database/models/info/wells_daae_c_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-07", "model_implementations": { "stan": { - "model_code": "models/stan/wells_daae_c_model.stan" + "model_code": "models/stan/wells_daae_c_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/wells_dae_c_model.info.json b/posterior_database/models/info/wells_dae_c_model.info.json index 52d53c34..35a54af7 100644 --- a/posterior_database/models/info/wells_dae_c_model.info.json +++ b/posterior_database/models/info/wells_dae_c_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-07", "model_implementations": { "stan": { - "model_code": "models/stan/wells_dae_c_model.stan" + "model_code": "models/stan/wells_dae_c_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/wells_dae_inter_model.info.json b/posterior_database/models/info/wells_dae_inter_model.info.json index 86f4aefd..6079c16a 100644 --- a/posterior_database/models/info/wells_dae_inter_model.info.json +++ b/posterior_database/models/info/wells_dae_inter_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-07", "model_implementations": { "stan": { - "model_code": "models/stan/wells_dae_inter_model.stan" + "model_code": "models/stan/wells_dae_inter_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/wells_dae_model.info.json b/posterior_database/models/info/wells_dae_model.info.json index 0c9e93cc..3c7f0579 100644 --- a/posterior_database/models/info/wells_dae_model.info.json +++ b/posterior_database/models/info/wells_dae_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-07", "model_implementations": { "stan": { - "model_code": "models/stan/wells_dae_model.stan" + "model_code": "models/stan/wells_dae_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/wells_dist.info.json b/posterior_database/models/info/wells_dist.info.json index 707864c8..5f246fc3 100644 --- a/posterior_database/models/info/wells_dist.info.json +++ b/posterior_database/models/info/wells_dist.info.json @@ -9,7 +9,8 @@ "added_date": "2020-10-02", "model_implementations": { "stan": { - "model_code": "models/stan/wells_dist.stan" + "model_code": "models/stan/wells_dist.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/wells_dist100_model.info.json b/posterior_database/models/info/wells_dist100_model.info.json index b08df9e4..011a3af8 100644 --- a/posterior_database/models/info/wells_dist100_model.info.json +++ b/posterior_database/models/info/wells_dist100_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-07", "model_implementations": { "stan": { - "model_code": "models/stan/wells_dist100_model.stan" + "model_code": "models/stan/wells_dist100_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/wells_dist100ars_model.info.json b/posterior_database/models/info/wells_dist100ars_model.info.json index 72537004..6dc9ee1f 100644 --- a/posterior_database/models/info/wells_dist100ars_model.info.json +++ b/posterior_database/models/info/wells_dist100ars_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-07", "model_implementations": { "stan": { - "model_code": "models/stan/wells_dist100ars_model.stan" + "model_code": "models/stan/wells_dist100ars_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/wells_interaction_c_model.info.json b/posterior_database/models/info/wells_interaction_c_model.info.json index 489cf028..bd4a3ca5 100644 --- a/posterior_database/models/info/wells_interaction_c_model.info.json +++ b/posterior_database/models/info/wells_interaction_c_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-05", "model_implementations": { "stan": { - "model_code": "models/stan/wells_interaction_c_model.stan" + "model_code": "models/stan/wells_interaction_c_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/info/wells_interaction_model.info.json b/posterior_database/models/info/wells_interaction_model.info.json index 86631958..835aebd6 100644 --- a/posterior_database/models/info/wells_interaction_model.info.json +++ b/posterior_database/models/info/wells_interaction_model.info.json @@ -9,7 +9,8 @@ "added_date": "2021-07-05", "model_implementations": { "stan": { - "model_code": "models/stan/wells_interaction_model.stan" + "model_code": "models/stan/wells_interaction_model.stan", + "stan_version": ">=2.26.0" } } } diff --git a/posterior_database/models/stan/Rate_1_model.stan b/posterior_database/models/stan/Rate_1_model.stan index 5254d2d1..71185c0c 100644 --- a/posterior_database/models/stan/Rate_1_model.stan +++ b/posterior_database/models/stan/Rate_1_model.stan @@ -1,12 +1,11 @@ - // Inferring a Rate -data { - int n; +data { + int n; int k; -} +} parameters { - real theta; -} + real theta; +} model { // Prior Distribution for Rate Theta theta ~ beta(1, 1); @@ -15,3 +14,4 @@ model { k ~ binomial(n, theta); } + diff --git a/posterior_database/models/stan/Rate_2_model.stan b/posterior_database/models/stan/Rate_2_model.stan index cbe2dbc9..4fccd6f0 100644 --- a/posterior_database/models/stan/Rate_2_model.stan +++ b/posterior_database/models/stan/Rate_2_model.stan @@ -1,17 +1,16 @@ - // Difference Between Two Rates -data { - int n1; - int n2; +data { + int n1; + int n2; int k1; int k2; -} +} parameters { - real theta1; - real theta2; -} + real theta1; + real theta2; +} transformed parameters { - real delta; + real delta; delta = theta1 - theta2; } model { @@ -23,3 +22,4 @@ model { k2 ~ binomial(n2, theta2); } + diff --git a/posterior_database/models/stan/Rate_3_model.stan b/posterior_database/models/stan/Rate_3_model.stan index 64c5235c..7298c0ea 100644 --- a/posterior_database/models/stan/Rate_3_model.stan +++ b/posterior_database/models/stan/Rate_3_model.stan @@ -1,14 +1,13 @@ - // // Inferring a Common Rate -data { - int n1; - int n2; +data { + int n1; + int n2; int k1; int k2; -} +} parameters { - real theta; -} + real theta; +} model { // Prior on Single Rate Theta theta ~ beta(1, 1); @@ -17,3 +16,4 @@ model { k2 ~ binomial(n2, theta); } + diff --git a/posterior_database/models/stan/Rate_4_model.stan b/posterior_database/models/stan/Rate_4_model.stan index 06471d97..bca57665 100644 --- a/posterior_database/models/stan/Rate_4_model.stan +++ b/posterior_database/models/stan/Rate_4_model.stan @@ -1,12 +1,11 @@ - // Prior and Posterior Prediction data { - int n; + int n; int k; -} +} parameters { - real theta; - real thetaprior; + real theta; + real thetaprior; } model { // Prior on Rate Theta @@ -18,10 +17,11 @@ model { generated quantities { int postpredk; int priorpredk; - + // Posterior Predictive postpredk = binomial_rng(n, theta); // Prior Predictive priorpredk = binomial_rng(n, thetaprior); } + diff --git a/posterior_database/models/stan/Rate_5_model.stan b/posterior_database/models/stan/Rate_5_model.stan index fb4b75f5..a391fa17 100644 --- a/posterior_database/models/stan/Rate_5_model.stan +++ b/posterior_database/models/stan/Rate_5_model.stan @@ -1,14 +1,13 @@ - // Inferring a Common Rate, With Posterior Predictive -data { - int n1; - int n2; +data { + int n1; + int n2; int k1; int k2; } parameters { - real theta; -} + real theta; +} model { // Prior on Single Rate Theta theta ~ beta(1, 1); @@ -18,11 +17,12 @@ model { k2 ~ binomial(n2, theta); } generated quantities { - int postpredk1; - int postpredk2; - + int postpredk1; + int postpredk2; + // Posterior Predictive postpredk1 = binomial_rng(n1, theta); postpredk2 = binomial_rng(n2, theta); } + diff --git a/posterior_database/models/stan/Survey_model.stan b/posterior_database/models/stan/Survey_model.stan index 14fb56bf..05e41d19 100644 --- a/posterior_database/models/stan/Survey_model.stan +++ b/posterior_database/models/stan/Survey_model.stan @@ -1,4 +1,3 @@ - /* * Notes to Stan model * -------------------- @@ -12,26 +11,29 @@ data { int nmax; int m; - int k[m]; + array[m] int k; } transformed data { - int nmin; // Minimal possible n - + int nmin; // Minimal possible n + nmin = max(k); } parameters { - real theta; + real theta; } transformed parameters { - vector[nmax] lp_parts; // Log probability for each n - + vector[nmax] lp_parts; // Log probability for each n + // First part of the trick for mixture model - for (n in 1:nmax) - if (n < nmin) - lp_parts[n] = log(1.0 / nmax) + negative_infinity(); // Zero probability - else + for (n in 1 : nmax) { + if (n < nmin) { + lp_parts[n] = log(1.0 / nmax) + negative_infinity(); + } // Zero probability + else { lp_parts[n] = log(1.0 / nmax) + binomial_lpmf(k | n, theta); - // Deprecated: lp_parts[n] = log(1.0 / nmax) + binomial_log(k, n, theta); + } + } + // Deprecated: lp_parts[n] = log(1.0 / nmax) + binomial_log(k, n, theta); } model { // Second part of the trick for mixture model @@ -39,10 +41,12 @@ model { target += log_sum_exp(lp_parts); } generated quantities { - int n; + int n; simplex[nmax] prob_n; - + // Transforming lp_parts to probabilities of each n prob_n = softmax(lp_parts); n = categorical_rng(prob_n); } + + diff --git a/posterior_database/models/stan/arma11.stan b/posterior_database/models/stan/arma11.stan index 6b196083..52ac52a8 100644 --- a/posterior_database/models/stan/arma11.stan +++ b/posterior_database/models/stan/arma11.stan @@ -2,31 +2,31 @@ data { int T; // number of observations - real y[T]; // observed outputs + array[T] real y; // observed outputs } - parameters { - real mu; // mean coefficient - real phi; // autoregression coefficient - real theta; // moving average coefficient + real mu; // mean coefficient + real phi; // autoregression coefficient + real theta; // moving average coefficient real sigma; // noise scale } - model { - vector[T] nu; // prediction for time t + vector[T] nu; // prediction for time t vector[T] err; // error for time t - + mu ~ normal(0, 10); phi ~ normal(0, 2); theta ~ normal(0, 2); sigma ~ cauchy(0, 2.5); - + nu[1] = mu + phi * mu; // assume err[0] == 0 err[1] = y[1] - nu[1]; - for (t in 2:T) { + for (t in 2 : T) { nu[t] = mu + phi * y[t - 1] + theta * err[t - 1]; err[t] = y[t] - nu[t]; } - + err ~ normal(0, sigma); } + + diff --git a/posterior_database/models/stan/blr.stan b/posterior_database/models/stan/blr.stan index 8fe9b63d..e115d74c 100644 --- a/posterior_database/models/stan/blr.stan +++ b/posterior_database/models/stan/blr.stan @@ -1,15 +1,13 @@ data { - int N; - int D; - matrix [N, D] X; - vector [N] y; + int N; + int D; + matrix[N, D] X; + vector[N] y; } - parameters { - vector [D] beta; - real sigma; + vector[D] beta; + real sigma; } - model { // prior target += normal_lpdf(beta | 0, 10); @@ -17,3 +15,5 @@ model { // likelihood target += normal_lpdf(y | X * beta, sigma); } + + diff --git a/posterior_database/models/stan/bones_model.stan b/posterior_database/models/stan/bones_model.stan index f25d70de..ca931d04 100644 --- a/posterior_database/models/stan/bones_model.stan +++ b/posterior_database/models/stan/bones_model.stan @@ -15,36 +15,40 @@ data { int nChild; int nInd; - real gamma[nInd, 4]; // -1 if missing - real delta[nInd]; - int ncat[nInd]; - int grade[nChild, nInd]; // -1 if missing + array[nInd, 4] real gamma; // -1 if missing + array[nInd] real delta; + array[nInd] int ncat; + array[nChild, nInd] int grade; // -1 if missing } parameters { - real theta[nChild]; + array[nChild] real theta; } model { - real p[nChild, nInd, 5]; - real Q[nChild, nInd, 4]; + array[nChild, nInd, 5] real p; + array[nChild, nInd, 4] real Q; theta ~ normal(0.0, 36); - for (i in 1:nChild) { + for (i in 1 : nChild) { // Probability of observing grade k given theta - for (j in 1:nInd) { + for (j in 1 : nInd) { // Cumulative probability of > grade k given theta - for (k in 1:(ncat[j] - 1)) + for (k in 1 : (ncat[j] - 1)) { Q[i, j, k] = inv_logit(delta[j] * (theta[i] - gamma[j, k])); + } p[i, j, 1] = 1 - Q[i, j, 1]; - for (k in 2:(ncat[j] - 1)) + for (k in 2 : (ncat[j] - 1)) { p[i, j, k] = Q[i, j, k - 1] - Q[i, j, k]; + } p[i, j, ncat[j]] = Q[i, j, ncat[j] - 1]; - + // incement log probability directly because grade[i, j] // has categorical distribution with varying dimension. // for missing grade[i, j] = -1, there is no log prob // contribution - if (grade[i, j] != -1) + if (grade[i, j] != -1) { target += log(p[i, j, grade[i, j]]); + } } } } + diff --git a/posterior_database/models/stan/bym2_offset_only.stan b/posterior_database/models/stan/bym2_offset_only.stan index 0d77a4ed..3fa03d3e 100644 --- a/posterior_database/models/stan/bym2_offset_only.stan +++ b/posterior_database/models/stan/bym2_offset_only.stan @@ -3,42 +3,42 @@ data { int N; int N_edges; - int node1[N_edges]; // node1[i] adjacent to node2[i] - int node2[N_edges]; // and node1[i] < node2[i] - - int y[N]; // count outcomes - vector[N] E; // exposure - + array[N_edges] int node1; // node1[i] adjacent to node2[i] + array[N_edges] int node2; // and node1[i] < node2[i] + + array[N] int y; // count outcomes + vector[N] E; // exposure + real scaling_factor; // scales the variance of the spatial effects } transformed data { vector[N] log_E = log(E); } parameters { - real beta0; // intercept - - real sigma; // overall standard deviation + real beta0; // intercept + + real sigma; // overall standard deviation real rho; // proportion unstructured vs. spatially structured variance - - vector[N] theta; // heterogeneous effects - vector[N] phi; // spatial effects + + vector[N] theta; // heterogeneous effects + vector[N] phi; // spatial effects } transformed parameters { vector[N] convolved_re; // variance of each component should be approximately equal to 1 - convolved_re = sqrt(1 - rho) * theta + sqrt(rho / scaling_factor) * phi; + convolved_re = sqrt(1 - rho) * theta + sqrt(rho / scaling_factor) * phi; } model { y ~ poisson_log(log_E + beta0 + convolved_re * sigma); - + target += -0.5 * dot_self(phi[node1] - phi[node2]); - + beta0 ~ normal(0, 1); theta ~ normal(0, 1); sigma ~ normal(0, 1); rho ~ beta(0.5, 0.5); // soft sum-to-zero constraint on phi) - sum(phi) ~ normal(0, 0.001 * N); // equivalent to mean(phi) ~ normal(0,0.001) + sum(phi) ~ normal(0, 0.001 * N); // equivalent to mean(phi) ~ normal(0,0.001) } generated quantities { real log_precision = -2.0 * log(sigma); @@ -47,3 +47,4 @@ generated quantities { vector[N] mu = exp(eta); } + diff --git a/posterior_database/models/stan/covid19imperial_v2.stan b/posterior_database/models/stan/covid19imperial_v2.stan index edb27708..b432775b 100644 --- a/posterior_database/models/stan/covid19imperial_v2.stan +++ b/posterior_database/models/stan/covid19imperial_v2.stan @@ -1,131 +1,134 @@ data { - int M; // number of countries - int P; // number of covariates - int N0; // number of days for which to impute infections - int N[M]; // days of observed data for country m. each entry must be <= N2 + int M; // number of countries + int P; // number of covariates + int N0; // number of days for which to impute infections + array[M] int N; // days of observed data for country m. each entry must be <= N2 int N2; // days of observed data + # of days to forecast - int cases[N2,M]; // reported cases - int deaths[N2, M]; // reported deaths -- the rows with i > N contain -1 and should be ignored + array[N2, M] int cases; // reported cases + array[N2, M] int deaths; // reported deaths -- the rows with i > N contain -1 and should be ignored matrix[N2, M] f; // h * s - matrix[N2, P] X[M]; - int EpidemicStart[M]; - real pop[M]; - real SI[N2]; // fixed pre-calculated SI using emprical data from Neil + array[M] matrix[N2, P] X; + array[M] int EpidemicStart; + array[M] real pop; + array[N2] real SI; // fixed pre-calculated SI using emprical data from Neil } - transformed data { vector[N2] SI_rev; // SI in reverse order - vector[N2] f_rev[M]; // f in reversed order - - for(i in 1:N2) - SI_rev[i] = SI[N2-i+1]; - - for(m in 1:M){ - for(i in 1:N2) { - f_rev[m, i] = f[N2-i+1,m]; + array[M] vector[N2] f_rev; // f in reversed order + + for (i in 1 : N2) { + SI_rev[i] = SI[N2 - i + 1]; + } + + for (m in 1 : M) { + for (i in 1 : N2) { + f_rev[m, i] = f[N2 - i + 1, m]; } } } - - parameters { - real mu[M]; // intercept for Rt - real alpha_hier[P]; // sudo parameter for the hier term for alpha + array[M] real mu; // intercept for Rt + array[P] real alpha_hier; // sudo parameter for the hier term for alpha real kappa; - real y[M]; + array[M] real y; real phi; real tau; - real ifr_noise[M]; + array[M] real ifr_noise; } - transformed parameters { - vector[P] alpha; - matrix[N2, M] prediction = rep_matrix(0,N2,M); - matrix[N2, M] E_deaths = rep_matrix(0,N2,M); - matrix[N2, M] Rt = rep_matrix(0,N2,M); - matrix[N2, M] Rt_adj = Rt; - - { - matrix[N2,M] cumm_sum = rep_matrix(0,N2,M); - for(i in 1:P){ - alpha[i] = alpha_hier[i] - ( log(1.05) / 6.0 ); + vector[P] alpha; + matrix[N2, M] prediction = rep_matrix(0, N2, M); + matrix[N2, M] E_deaths = rep_matrix(0, N2, M); + matrix[N2, M] Rt = rep_matrix(0, N2, M); + matrix[N2, M] Rt_adj = Rt; + + { + matrix[N2, M] cumm_sum = rep_matrix(0, N2, M); + for (i in 1 : P) { + alpha[i] = alpha_hier[i] - (log(1.05) / 6.0); + } + for (m in 1 : M) { + /* + for (i in 2:N0){ + cumm_sum[i,m] = cumm_sum[i-1,m] + y[m]; } - for (m in 1:M){ + */ + prediction[1 : N0, m] = rep_vector(y[m], N0); // learn the number of cases in the first N0 days + cumm_sum[2 : N0, m] = cumulative_sum(prediction[2 : N0, m]); + + Rt[ : , m] = mu[m] * exp(-X[m] * alpha); + Rt_adj[1 : N0, m] = Rt[1 : N0, m]; + for (i in (N0 + 1) : N2) { /* - for (i in 2:N0){ - cumm_sum[i,m] = cumm_sum[i-1,m] + y[m]; + real convolution=0; + for(j in 1:(i-1)) { + convolution += prediction[j, m] * SI[i-j]; } */ - prediction[1:N0,m] = rep_vector(y[m],N0); // learn the number of cases in the first N0 days - cumm_sum[2:N0,m] = cumulative_sum(prediction[2:N0,m]); - - Rt[,m] = mu[m] * exp(-X[m] * alpha); - Rt_adj[1:N0,m] = Rt[1:N0,m]; - for (i in (N0+1):N2) { - /* - real convolution=0; - for(j in 1:(i-1)) { - convolution += prediction[j, m] * SI[i-j]; - } - */ - real convolution = dot_product(sub_col(prediction, 1, m, i-1), tail(SI_rev, i-1)); - - cumm_sum[i,m] = cumm_sum[i-1,m] + prediction[i-1,m]; - Rt_adj[i,m] = ((pop[m]-cumm_sum[i,m]) / pop[m]) * Rt[i,m]; - prediction[i, m] = Rt_adj[i,m] * convolution; - } - - E_deaths[1, m]= 1e-15 * prediction[1,m]; - for (i in 2:N2){ - // for(j in 1:(i-1)){ - // E_deaths[i,m] += prediction[j,m] * f[i-j,m] * ifr_noise[m]; - // } - E_deaths[i,m] = ifr_noise[m] * dot_product(sub_col(prediction, 1, m, i-1), tail(f_rev[m], i-1)); - } + real convolution = dot_product(sub_col(prediction, 1, m, i - 1), + tail(SI_rev, i - 1)); + + cumm_sum[i, m] = cumm_sum[i - 1, m] + prediction[i - 1, m]; + Rt_adj[i, m] = ((pop[m] - cumm_sum[i, m]) / pop[m]) * Rt[i, m]; + prediction[i, m] = Rt_adj[i, m] * convolution; + } + + E_deaths[1, m] = 1e-15 * prediction[1, m]; + for (i in 2 : N2) { + // for(j in 1:(i-1)){ + // E_deaths[i,m] += prediction[j,m] * f[i-j,m] * ifr_noise[m]; + // } + E_deaths[i, m] = ifr_noise[m] + * dot_product(sub_col(prediction, 1, m, i - 1), + tail(f_rev[m], i - 1)); } } + } } model { tau ~ exponential(0.03); - for (m in 1:M){ - y[m] ~ exponential(1/tau); + for (m in 1 : M) { + y[m] ~ exponential(1 / tau); } - phi ~ normal(0,5); - kappa ~ normal(0,0.5); + phi ~ normal(0, 5); + kappa ~ normal(0, 0.5); mu ~ normal(3.28, kappa); // citation: https://academic.oup.com/jtm/article/27/2/taaa021/5735319 - alpha_hier ~ gamma(.1667,1); - ifr_noise ~ normal(1,0.1); - for(m in 1:M){ - deaths[EpidemicStart[m]:N[m], m] ~ neg_binomial_2(E_deaths[EpidemicStart[m]:N[m], m], phi); - } + alpha_hier ~ gamma(.1667, 1); + ifr_noise ~ normal(1, 0.1); + for (m in 1 : M) { + deaths[EpidemicStart[m] : N[m], m] ~ neg_binomial_2(E_deaths[EpidemicStart[m] : N[m], m], + phi); + } } - generated quantities { - matrix[N2, M] prediction0 = rep_matrix(0,N2,M); - matrix[N2, M] E_deaths0 = rep_matrix(0,N2,M); - - { - matrix[N2,M] cumm_sum0 = rep_matrix(0,N2,M); - for (m in 1:M){ - for (i in 2:N0){ - cumm_sum0[i,m] = cumm_sum0[i-1,m] + y[m]; - } - prediction0[1:N0,m] = rep_vector(y[m],N0); - for (i in (N0+1):N2) { - real convolution0 = 0; - for(j in 1:(i-1)) { - convolution0 += prediction0[j, m] * SI[i-j]; - } - cumm_sum0[i,m] = cumm_sum0[i-1,m] + prediction0[i-1,m]; - prediction0[i, m] = ((pop[m]-cumm_sum0[i,m]) / pop[m]) * mu[m] * convolution0; + matrix[N2, M] prediction0 = rep_matrix(0, N2, M); + matrix[N2, M] E_deaths0 = rep_matrix(0, N2, M); + + { + matrix[N2, M] cumm_sum0 = rep_matrix(0, N2, M); + for (m in 1 : M) { + for (i in 2 : N0) { + cumm_sum0[i, m] = cumm_sum0[i - 1, m] + y[m]; + } + prediction0[1 : N0, m] = rep_vector(y[m], N0); + for (i in (N0 + 1) : N2) { + real convolution0 = 0; + for (j in 1 : (i - 1)) { + convolution0 += prediction0[j, m] * SI[i - j]; } - - E_deaths0[1, m] = uniform_rng(1e-16, 1e-15); - for (i in 2:N2){ - for(j in 1:(i-1)){ - E_deaths0[i,m] += prediction0[j,m] * f[i-j,m] * ifr_noise[m]; - } + cumm_sum0[i, m] = cumm_sum0[i - 1, m] + prediction0[i - 1, m]; + prediction0[i, m] = ((pop[m] - cumm_sum0[i, m]) / pop[m]) * mu[m] + * convolution0; + } + + E_deaths0[1, m] = uniform_rng(1e-16, 1e-15); + for (i in 2 : N2) { + for (j in 1 : (i - 1)) { + E_deaths0[i, m] += prediction0[j, m] * f[i - j, m] * ifr_noise[m]; } } } + } } + + diff --git a/posterior_database/models/stan/covid19imperial_v3.stan b/posterior_database/models/stan/covid19imperial_v3.stan index edb27708..b432775b 100644 --- a/posterior_database/models/stan/covid19imperial_v3.stan +++ b/posterior_database/models/stan/covid19imperial_v3.stan @@ -1,131 +1,134 @@ data { - int M; // number of countries - int P; // number of covariates - int N0; // number of days for which to impute infections - int N[M]; // days of observed data for country m. each entry must be <= N2 + int M; // number of countries + int P; // number of covariates + int N0; // number of days for which to impute infections + array[M] int N; // days of observed data for country m. each entry must be <= N2 int N2; // days of observed data + # of days to forecast - int cases[N2,M]; // reported cases - int deaths[N2, M]; // reported deaths -- the rows with i > N contain -1 and should be ignored + array[N2, M] int cases; // reported cases + array[N2, M] int deaths; // reported deaths -- the rows with i > N contain -1 and should be ignored matrix[N2, M] f; // h * s - matrix[N2, P] X[M]; - int EpidemicStart[M]; - real pop[M]; - real SI[N2]; // fixed pre-calculated SI using emprical data from Neil + array[M] matrix[N2, P] X; + array[M] int EpidemicStart; + array[M] real pop; + array[N2] real SI; // fixed pre-calculated SI using emprical data from Neil } - transformed data { vector[N2] SI_rev; // SI in reverse order - vector[N2] f_rev[M]; // f in reversed order - - for(i in 1:N2) - SI_rev[i] = SI[N2-i+1]; - - for(m in 1:M){ - for(i in 1:N2) { - f_rev[m, i] = f[N2-i+1,m]; + array[M] vector[N2] f_rev; // f in reversed order + + for (i in 1 : N2) { + SI_rev[i] = SI[N2 - i + 1]; + } + + for (m in 1 : M) { + for (i in 1 : N2) { + f_rev[m, i] = f[N2 - i + 1, m]; } } } - - parameters { - real mu[M]; // intercept for Rt - real alpha_hier[P]; // sudo parameter for the hier term for alpha + array[M] real mu; // intercept for Rt + array[P] real alpha_hier; // sudo parameter for the hier term for alpha real kappa; - real y[M]; + array[M] real y; real phi; real tau; - real ifr_noise[M]; + array[M] real ifr_noise; } - transformed parameters { - vector[P] alpha; - matrix[N2, M] prediction = rep_matrix(0,N2,M); - matrix[N2, M] E_deaths = rep_matrix(0,N2,M); - matrix[N2, M] Rt = rep_matrix(0,N2,M); - matrix[N2, M] Rt_adj = Rt; - - { - matrix[N2,M] cumm_sum = rep_matrix(0,N2,M); - for(i in 1:P){ - alpha[i] = alpha_hier[i] - ( log(1.05) / 6.0 ); + vector[P] alpha; + matrix[N2, M] prediction = rep_matrix(0, N2, M); + matrix[N2, M] E_deaths = rep_matrix(0, N2, M); + matrix[N2, M] Rt = rep_matrix(0, N2, M); + matrix[N2, M] Rt_adj = Rt; + + { + matrix[N2, M] cumm_sum = rep_matrix(0, N2, M); + for (i in 1 : P) { + alpha[i] = alpha_hier[i] - (log(1.05) / 6.0); + } + for (m in 1 : M) { + /* + for (i in 2:N0){ + cumm_sum[i,m] = cumm_sum[i-1,m] + y[m]; } - for (m in 1:M){ + */ + prediction[1 : N0, m] = rep_vector(y[m], N0); // learn the number of cases in the first N0 days + cumm_sum[2 : N0, m] = cumulative_sum(prediction[2 : N0, m]); + + Rt[ : , m] = mu[m] * exp(-X[m] * alpha); + Rt_adj[1 : N0, m] = Rt[1 : N0, m]; + for (i in (N0 + 1) : N2) { /* - for (i in 2:N0){ - cumm_sum[i,m] = cumm_sum[i-1,m] + y[m]; + real convolution=0; + for(j in 1:(i-1)) { + convolution += prediction[j, m] * SI[i-j]; } */ - prediction[1:N0,m] = rep_vector(y[m],N0); // learn the number of cases in the first N0 days - cumm_sum[2:N0,m] = cumulative_sum(prediction[2:N0,m]); - - Rt[,m] = mu[m] * exp(-X[m] * alpha); - Rt_adj[1:N0,m] = Rt[1:N0,m]; - for (i in (N0+1):N2) { - /* - real convolution=0; - for(j in 1:(i-1)) { - convolution += prediction[j, m] * SI[i-j]; - } - */ - real convolution = dot_product(sub_col(prediction, 1, m, i-1), tail(SI_rev, i-1)); - - cumm_sum[i,m] = cumm_sum[i-1,m] + prediction[i-1,m]; - Rt_adj[i,m] = ((pop[m]-cumm_sum[i,m]) / pop[m]) * Rt[i,m]; - prediction[i, m] = Rt_adj[i,m] * convolution; - } - - E_deaths[1, m]= 1e-15 * prediction[1,m]; - for (i in 2:N2){ - // for(j in 1:(i-1)){ - // E_deaths[i,m] += prediction[j,m] * f[i-j,m] * ifr_noise[m]; - // } - E_deaths[i,m] = ifr_noise[m] * dot_product(sub_col(prediction, 1, m, i-1), tail(f_rev[m], i-1)); - } + real convolution = dot_product(sub_col(prediction, 1, m, i - 1), + tail(SI_rev, i - 1)); + + cumm_sum[i, m] = cumm_sum[i - 1, m] + prediction[i - 1, m]; + Rt_adj[i, m] = ((pop[m] - cumm_sum[i, m]) / pop[m]) * Rt[i, m]; + prediction[i, m] = Rt_adj[i, m] * convolution; + } + + E_deaths[1, m] = 1e-15 * prediction[1, m]; + for (i in 2 : N2) { + // for(j in 1:(i-1)){ + // E_deaths[i,m] += prediction[j,m] * f[i-j,m] * ifr_noise[m]; + // } + E_deaths[i, m] = ifr_noise[m] + * dot_product(sub_col(prediction, 1, m, i - 1), + tail(f_rev[m], i - 1)); } } + } } model { tau ~ exponential(0.03); - for (m in 1:M){ - y[m] ~ exponential(1/tau); + for (m in 1 : M) { + y[m] ~ exponential(1 / tau); } - phi ~ normal(0,5); - kappa ~ normal(0,0.5); + phi ~ normal(0, 5); + kappa ~ normal(0, 0.5); mu ~ normal(3.28, kappa); // citation: https://academic.oup.com/jtm/article/27/2/taaa021/5735319 - alpha_hier ~ gamma(.1667,1); - ifr_noise ~ normal(1,0.1); - for(m in 1:M){ - deaths[EpidemicStart[m]:N[m], m] ~ neg_binomial_2(E_deaths[EpidemicStart[m]:N[m], m], phi); - } + alpha_hier ~ gamma(.1667, 1); + ifr_noise ~ normal(1, 0.1); + for (m in 1 : M) { + deaths[EpidemicStart[m] : N[m], m] ~ neg_binomial_2(E_deaths[EpidemicStart[m] : N[m], m], + phi); + } } - generated quantities { - matrix[N2, M] prediction0 = rep_matrix(0,N2,M); - matrix[N2, M] E_deaths0 = rep_matrix(0,N2,M); - - { - matrix[N2,M] cumm_sum0 = rep_matrix(0,N2,M); - for (m in 1:M){ - for (i in 2:N0){ - cumm_sum0[i,m] = cumm_sum0[i-1,m] + y[m]; - } - prediction0[1:N0,m] = rep_vector(y[m],N0); - for (i in (N0+1):N2) { - real convolution0 = 0; - for(j in 1:(i-1)) { - convolution0 += prediction0[j, m] * SI[i-j]; - } - cumm_sum0[i,m] = cumm_sum0[i-1,m] + prediction0[i-1,m]; - prediction0[i, m] = ((pop[m]-cumm_sum0[i,m]) / pop[m]) * mu[m] * convolution0; + matrix[N2, M] prediction0 = rep_matrix(0, N2, M); + matrix[N2, M] E_deaths0 = rep_matrix(0, N2, M); + + { + matrix[N2, M] cumm_sum0 = rep_matrix(0, N2, M); + for (m in 1 : M) { + for (i in 2 : N0) { + cumm_sum0[i, m] = cumm_sum0[i - 1, m] + y[m]; + } + prediction0[1 : N0, m] = rep_vector(y[m], N0); + for (i in (N0 + 1) : N2) { + real convolution0 = 0; + for (j in 1 : (i - 1)) { + convolution0 += prediction0[j, m] * SI[i - j]; } - - E_deaths0[1, m] = uniform_rng(1e-16, 1e-15); - for (i in 2:N2){ - for(j in 1:(i-1)){ - E_deaths0[i,m] += prediction0[j,m] * f[i-j,m] * ifr_noise[m]; - } + cumm_sum0[i, m] = cumm_sum0[i - 1, m] + prediction0[i - 1, m]; + prediction0[i, m] = ((pop[m] - cumm_sum0[i, m]) / pop[m]) * mu[m] + * convolution0; + } + + E_deaths0[1, m] = uniform_rng(1e-16, 1e-15); + for (i in 2 : N2) { + for (j in 1 : (i - 1)) { + E_deaths0[i, m] += prediction0[j, m] * f[i - j, m] * ifr_noise[m]; } } } + } } + + diff --git a/posterior_database/models/stan/diamonds.stan b/posterior_database/models/stan/diamonds.stan index 3c336fd4..47ebc7da 100644 --- a/posterior_database/models/stan/diamonds.stan +++ b/posterior_database/models/stan/diamonds.stan @@ -1,37 +1,39 @@ // generated with brms 2.10.0 functions { + } data { - int N; // number of observations - vector[N] Y; // response variable - int K; // number of population-level effects - matrix[N, K] X; // population-level design matrix - int prior_only; // should the likelihood be ignored? + int N; // number of observations + vector[N] Y; // response variable + int K; // number of population-level effects + matrix[N, K] X; // population-level design matrix + int prior_only; // should the likelihood be ignored? } transformed data { int Kc = K - 1; - matrix[N, Kc] Xc; // centered version of X without an intercept - vector[Kc] means_X; // column means of X before centering - for (i in 2:K) { - means_X[i - 1] = mean(X[, i]); - Xc[, i - 1] = X[, i] - means_X[i - 1]; + matrix[N, Kc] Xc; // centered version of X without an intercept + vector[Kc] means_X; // column means of X before centering + for (i in 2 : K) { + means_X[i - 1] = mean(X[ : , i]); + Xc[ : , i - 1] = X[ : , i] - means_X[i - 1]; } } parameters { - vector[Kc] b; // population-level effects + vector[Kc] b; // population-level effects // temporary intercept for centered predictors real Intercept; - real sigma; // residual SD + real sigma; // residual SD } transformed parameters { + } model { // priors including all constants target += normal_lpdf(b | 0, 1); target += student_t_lpdf(Intercept | 3, 8, 10); target += student_t_lpdf(sigma | 3, 0, 10) - - 1 * student_t_lccdf(0 | 3, 0, 10); + - 1 * student_t_lccdf(0 | 3, 0, 10); // likelihood including all constants if (!prior_only) { target += normal_id_glm_lpdf(Y | Xc, Intercept, b, sigma); @@ -41,3 +43,5 @@ generated quantities { // actual population-level intercept real b_Intercept = Intercept - dot_product(means_X, b); } + + diff --git a/posterior_database/models/stan/dogs.stan b/posterior_database/models/stan/dogs.stan index 35511f82..6c3fc5ad 100644 --- a/posterior_database/models/stan/dogs.stan +++ b/posterior_database/models/stan/dogs.stan @@ -1,31 +1,35 @@ data { int n_dogs; int n_trials; - int y[n_dogs,n_trials]; + array[n_dogs, n_trials] int y; } parameters { vector[3] beta; } transformed parameters { - matrix[n_dogs,n_trials] n_avoid; - matrix[n_dogs,n_trials] n_shock; - matrix[n_dogs,n_trials] p; - - for (j in 1:n_dogs) { - n_avoid[j,1] = 0; - n_shock[j,1] = 0; - for (t in 2:n_trials) { - n_avoid[j,t] = n_avoid[j,t-1] + 1 - y[j,t-1]; - n_shock[j,t] = n_shock[j,t-1] + y[j,t-1]; + matrix[n_dogs, n_trials] n_avoid; + matrix[n_dogs, n_trials] n_shock; + matrix[n_dogs, n_trials] p; + + for (j in 1 : n_dogs) { + n_avoid[j, 1] = 0; + n_shock[j, 1] = 0; + for (t in 2 : n_trials) { + n_avoid[j, t] = n_avoid[j, t - 1] + 1 - y[j, t - 1]; + n_shock[j, t] = n_shock[j, t - 1] + y[j, t - 1]; + } + for (t in 1 : n_trials) { + p[j, t] = beta[1] + beta[2] * n_avoid[j, t] + beta[3] * n_shock[j, t]; } - for (t in 1:n_trials) - p[j,t] = beta[1] + beta[2] * n_avoid[j,t] + beta[3] * n_shock[j,t]; } } model { beta ~ normal(0, 100); - for (i in 1:n_dogs) { - for (j in 1:n_trials) - y[i,j] ~ bernoulli_logit(p[i,j]); + for (i in 1 : n_dogs) { + for (j in 1 : n_trials) { + y[i, j] ~ bernoulli_logit(p[i, j]); + } } } + + diff --git a/posterior_database/models/stan/dogs_hierarchical.stan b/posterior_database/models/stan/dogs_hierarchical.stan index aaaff4a7..149e6829 100644 --- a/posterior_database/models/stan/dogs_hierarchical.stan +++ b/posterior_database/models/stan/dogs_hierarchical.stan @@ -1,21 +1,20 @@ - data { int n_dogs; int n_trials; - int y[n_dogs,n_trials]; + array[n_dogs, n_trials] int y; } transformed data { int J = n_dogs; int T = n_trials; matrix[J, T] prev_shock; matrix[J, T] prev_avoid; - - for (j in 1:J){ - prev_shock[j,1] = 0; - prev_avoid[j,1] = 0; - for (t in 2:T){ - prev_shock[j,t] = prev_shock[j,t-1] + y[j,t-1]; - prev_avoid[j,t] = prev_avoid[j,t-1] + 1 - y[j,t-1]; + + for (j in 1 : J) { + prev_shock[j, 1] = 0; + prev_avoid[j, 1] = 0; + for (t in 2 : T) { + prev_shock[j, t] = prev_shock[j, t - 1] + y[j, t - 1]; + prev_avoid[j, t] = prev_avoid[j, t - 1] + 1 - y[j, t - 1]; } } } @@ -24,30 +23,31 @@ parameters { real b; } model { - for (j in 1:J){ - for (t in 1:T){ - real p = a^prev_shock[j,t] * b^prev_avoid[j,t]; - y[j,t] ~ bernoulli(p); + for (j in 1 : J) { + for (t in 1 : T) { + real p = a ^ prev_shock[j, t] * b ^ prev_avoid[j, t]; + y[j, t] ~ bernoulli(p); } } } generated quantities { - int y_rep[n_dogs,n_trials]; + array[n_dogs, n_trials] int y_rep; { real prev_shock_rep; real prev_avoid_rep; real p_rep; - for (j in 1:J){ + for (j in 1 : J) { prev_shock_rep = 0; prev_avoid_rep = 0; - y_rep[j,1] = 1; - for (t in 2:T){ - prev_shock_rep = prev_shock_rep + y_rep[j,t-1]; - prev_avoid_rep = prev_avoid_rep + 1 - y_rep[j,t-1]; - p_rep = a^prev_shock_rep * b^prev_avoid_rep; - y_rep[j,t] = bernoulli_rng(p_rep); + y_rep[j, 1] = 1; + for (t in 2 : T) { + prev_shock_rep = prev_shock_rep + y_rep[j, t - 1]; + prev_avoid_rep = prev_avoid_rep + 1 - y_rep[j, t - 1]; + p_rep = a ^ prev_shock_rep * b ^ prev_avoid_rep; + y_rep[j, t] = bernoulli_rng(p_rep); } } } } + diff --git a/posterior_database/models/stan/dogs_log.stan b/posterior_database/models/stan/dogs_log.stan index 06b42632..d77bf7fd 100644 --- a/posterior_database/models/stan/dogs_log.stan +++ b/posterior_database/models/stan/dogs_log.stan @@ -1,32 +1,36 @@ data { int n_trials; int n_dogs; - int y[n_dogs,n_trials]; + array[n_dogs, n_trials] int y; } parameters { vector[2] beta; } transformed parameters { - matrix[n_dogs,n_trials] n_avoid; - matrix[n_dogs,n_trials] n_shock; - matrix[n_dogs,n_trials] p; - - for (j in 1:n_dogs) { - n_avoid[j,1] = 0; - n_shock[j,1] = 0; - for (t in 2:n_trials) { - n_avoid[j,t] = n_avoid[j,t-1] + 1 - y[j,t-1]; - n_shock[j,t] = n_shock[j,t-1] + y[j,t-1]; + matrix[n_dogs, n_trials] n_avoid; + matrix[n_dogs, n_trials] n_shock; + matrix[n_dogs, n_trials] p; + + for (j in 1 : n_dogs) { + n_avoid[j, 1] = 0; + n_shock[j, 1] = 0; + for (t in 2 : n_trials) { + n_avoid[j, t] = n_avoid[j, t - 1] + 1 - y[j, t - 1]; + n_shock[j, t] = n_shock[j, t - 1] + y[j, t - 1]; + } + for (t in 1 : n_trials) { + p[j, t] = inv_logit(beta[1] * n_avoid[j, t] + beta[2] * n_shock[j, t]); } - for (t in 1:n_trials) - p[j,t] = inv_logit(beta[1] * n_avoid[j,t] + beta[2] * n_shock[j,t]); } } model { beta[1] ~ uniform(-100, 0); beta[2] ~ uniform(0, 100); - for (i in 1:n_dogs) { - for (j in 1:n_trials) - y[i,j] ~ bernoulli(p[i,j]); + for (i in 1 : n_dogs) { + for (j in 1 : n_trials) { + y[i, j] ~ bernoulli(p[i, j]); + } } } + + diff --git a/posterior_database/models/stan/dogs_nonhierarchical.stan b/posterior_database/models/stan/dogs_nonhierarchical.stan index d88dcba2..1841b2ae 100644 --- a/posterior_database/models/stan/dogs_nonhierarchical.stan +++ b/posterior_database/models/stan/dogs_nonhierarchical.stan @@ -1,20 +1,19 @@ - data { int n_dogs; int n_trials; - int y[n_dogs,n_trials]; + array[n_dogs, n_trials] int y; } transformed data { int J = n_dogs; int T = n_trials; matrix[J, T] prev_shock; matrix[J, T] prev_avoid; - for (j in 1:J){ - prev_shock[j,1] = 0; - prev_avoid[j,1] = 0; - for (t in 2:T){ - prev_shock[j,t] = prev_shock[j,t-1] + y[j,t-1]; - prev_avoid[j,t] = prev_avoid[j,t-1] + 1 - y[j,t-1]; + for (j in 1 : J) { + prev_shock[j, 1] = 0; + prev_avoid[j, 1] = 0; + for (t in 2 : T) { + prev_shock[j, t] = prev_shock[j, t - 1] + y[j, t - 1]; + prev_avoid[j, t] = prev_avoid[j, t - 1] + 1 - y[j, t - 1]; } } } @@ -22,21 +21,22 @@ parameters { vector[2] mu_logit_ab; vector[2] sigma_logit_ab; cholesky_factor_corr[2] L_logit_ab; - matrix[J,2] z; + matrix[J, 2] z; } transformed parameters { - matrix[J,2] logit_ab = rep_vector(1, J) * mu_logit_ab' + - z * diag_pre_multiply(sigma_logit_ab, L_logit_ab); + matrix[J, 2] logit_ab = rep_vector(1, J) * mu_logit_ab' + + z * diag_pre_multiply(sigma_logit_ab, L_logit_ab); corr_matrix[2] Omega_logit_ab = L_logit_ab * L_logit_ab'; - cov_matrix[2] Sigma_logit_ab = quad_form_diag(Omega_logit_ab, sigma_logit_ab); - vector[J] a = inv_logit(logit_ab[,1]); - vector[J] b = inv_logit(logit_ab[,2]); + cov_matrix[2] Sigma_logit_ab = quad_form_diag(Omega_logit_ab, + sigma_logit_ab); + vector[J] a = inv_logit(logit_ab[ : , 1]); + vector[J] b = inv_logit(logit_ab[ : , 2]); } model { - for (j in 1:J){ - for (t in 1:T){ - real p = a[j]^prev_shock[j,t] * b[j]^prev_avoid[j,t]; - y[j,t] ~ bernoulli(p); + for (j in 1 : J) { + for (t in 1 : T) { + real p = a[j] ^ prev_shock[j, t] * b[j] ^ prev_avoid[j, t]; + y[j, t] ~ bernoulli(p); } } mu_logit_ab ~ logistic(0, 1); @@ -45,22 +45,23 @@ model { to_vector(z) ~ normal(0, 1); } generated quantities { - int y_rep[J,T]; + array[J, T] int y_rep; { real prev_shock_rep; real prev_avoid_rep; real p_rep; - for (j in 1:J){ + for (j in 1 : J) { prev_shock_rep = 0; prev_avoid_rep = 0; - y_rep[j,1] = 1; - for (t in 2:T){ - prev_shock_rep = prev_shock_rep + y_rep[j,t-1]; - prev_avoid_rep = prev_avoid_rep + 1 - y_rep[j,t-1]; - p_rep = a[j]^prev_shock_rep * b[j]^prev_avoid_rep; - y_rep[j,t] = bernoulli_rng(p_rep); + y_rep[j, 1] = 1; + for (t in 2 : T) { + prev_shock_rep = prev_shock_rep + y_rep[j, t - 1]; + prev_avoid_rep = prev_avoid_rep + 1 - y_rep[j, t - 1]; + p_rep = a[j] ^ prev_shock_rep * b[j] ^ prev_avoid_rep; + y_rep[j, t] = bernoulli_rng(p_rep); } } } } + diff --git a/posterior_database/models/stan/dugongs_model.stan b/posterior_database/models/stan/dugongs_model.stan index 361b1141..bf7f1257 100644 --- a/posterior_database/models/stan/dugongs_model.stan +++ b/posterior_database/models/stan/dugongs_model.stan @@ -1,30 +1,31 @@ data { - int N; - real x[N]; - real Y[N]; -} + int N; + array[N] real x; + array[N] real Y; +} parameters { - real alpha; - real beta; - real lambda; // orginal gamma in the JAGS example - real tau; - -} + real alpha; + real beta; + real lambda; // orginal gamma in the JAGS example + real tau; +} transformed parameters { - real sigma; - real U3; - sigma = 1 / sqrt(tau); + real sigma; + real U3; + sigma = 1 / sqrt(tau); U3 = logit(lambda); -} +} model { - real m[N]; - for (i in 1:N) + array[N] real m; + for (i in 1 : N) { m[i] = alpha - beta * pow(lambda, x[i]); - Y ~ normal(m, sigma); - - alpha ~ normal(0.0, 1000); - beta ~ normal(0.0, 1000); - lambda ~ uniform(.5, 1); - tau ~ gamma(.0001, .0001); + } + Y ~ normal(m, sigma); + + alpha ~ normal(0.0, 1000); + beta ~ normal(0.0, 1000); + lambda ~ uniform(.5, 1); + tau ~ gamma(.0001, .0001); } + diff --git a/posterior_database/models/stan/earn_height.stan b/posterior_database/models/stan/earn_height.stan index 8bc96191..c3a172ab 100644 --- a/posterior_database/models/stan/earn_height.stan +++ b/posterior_database/models/stan/earn_height.stan @@ -10,3 +10,5 @@ parameters { model { earn ~ normal(beta[1] + beta[2] * height, sigma); } + + diff --git a/posterior_database/models/stan/eight_schools_centered.stan b/posterior_database/models/stan/eight_schools_centered.stan index 26d5f7d2..9a2d0236 100644 --- a/posterior_database/models/stan/eight_schools_centered.stan +++ b/posterior_database/models/stan/eight_schools_centered.stan @@ -1,10 +1,10 @@ data { - int J; // number of schools - real y[J]; // estimated treatment - real sigma[J]; // std of estimated effect + int J; // number of schools + array[J] real y; // estimated treatment + array[J] real sigma; // std of estimated effect } parameters { - real theta[J]; // treatment effect in school j + array[J] real theta; // treatment effect in school j real mu; // hyper-parameter of mean real tau; // hyper-parameter of sdv } @@ -14,3 +14,5 @@ model { y ~ normal(theta, sigma); mu ~ normal(0, 5); } + + diff --git a/posterior_database/models/stan/eight_schools_noncentered.stan b/posterior_database/models/stan/eight_schools_noncentered.stan index 574aaf54..9e2e4bec 100644 --- a/posterior_database/models/stan/eight_schools_noncentered.stan +++ b/posterior_database/models/stan/eight_schools_noncentered.stan @@ -1,21 +1,23 @@ data { - int J; // number of schools - real y[J]; // estimated treatment - real sigma[J]; // std of estimated effect + int J; // number of schools + array[J] real y; // estimated treatment + array[J] real sigma; // std of estimated effect } parameters { vector[J] theta_trans; // transformation of theta real mu; // hyper-parameter of mean real tau; // hyper-parameter of sd } -transformed parameters{ +transformed parameters { vector[J] theta; // original theta - theta=theta_trans*tau+mu; + theta = theta_trans * tau + mu; } model { - theta_trans ~ normal (0,1); - y ~ normal(theta , sigma); + theta_trans ~ normal(0, 1); + y ~ normal(theta, sigma); mu ~ normal(0, 5); // a non-informative prior tau ~ cauchy(0, 5); } + + diff --git a/posterior_database/models/stan/election88_full.stan b/posterior_database/models/stan/election88_full.stan index 8d3dfc03..7a055ce6 100644 --- a/posterior_database/models/stan/election88_full.stan +++ b/posterior_database/models/stan/election88_full.stan @@ -5,15 +5,15 @@ data { int n_edu; int n_region_full; int n_state; - int age[N]; - int age_edu[N]; - vector[N] black; - int edu[N]; - vector[N] female; - int region_full[N]; - int state[N]; + array[N] int age; + array[N] int age_edu; + vector[N] black; + array[N] int edu; + vector[N] female; + array[N] int region_full; + array[N] int state; vector[N] v_prev_full; - int y[N]; + array[N] int y; } parameters { vector[n_age] a; @@ -22,27 +22,30 @@ parameters { vector[n_state] d; vector[n_region_full] e; vector[5] beta; - real sigma_a; - real sigma_b; - real sigma_c; - real sigma_d; - real sigma_e; + real sigma_a; + real sigma_b; + real sigma_c; + real sigma_d; + real sigma_e; } transformed parameters { vector[N] y_hat; - - for (i in 1:N) + + for (i in 1 : N) { y_hat[i] = beta[1] + beta[2] * black[i] + beta[3] * female[i] - + beta[5] * female[i] * black[i] - + beta[4] * v_prev_full[i] + a[age[i]] + b[edu[i]] - + c[age_edu[i]] + d[state[i]] + e[region_full[i]]; + + beta[5] * female[i] * black[i] + beta[4] * v_prev_full[i] + + a[age[i]] + b[edu[i]] + c[age_edu[i]] + d[state[i]] + + e[region_full[i]]; + } } model { - a ~ normal (0, sigma_a); - b ~ normal (0, sigma_b); - c ~ normal (0, sigma_c); - d ~ normal (0, sigma_d); - e ~ normal (0, sigma_e); + a ~ normal(0, sigma_a); + b ~ normal(0, sigma_b); + c ~ normal(0, sigma_c); + d ~ normal(0, sigma_d); + e ~ normal(0, sigma_e); beta ~ normal(0, 100); y ~ bernoulli_logit(y_hat); } + + diff --git a/posterior_database/models/stan/garch11.stan b/posterior_database/models/stan/garch11.stan index 5824b391..98a10c12 100644 --- a/posterior_database/models/stan/garch11.stan +++ b/posterior_database/models/stan/garch11.stan @@ -1,23 +1,23 @@ data { int T; - real y[T]; + array[T] real y; real sigma1; } - parameters { real mu; real alpha0; real alpha1; - real beta1; + real beta1; } - model { - real sigma[T]; + array[T] real sigma; sigma[1] = sigma1; - for (t in 2:T) - sigma[t] = sqrt( alpha0 - + alpha1 * square(y[t - 1] - mu) + for (t in 2 : T) { + sigma[t] = sqrt(alpha0 + alpha1 * square(y[t - 1] - mu) + beta1 * square(sigma[t - 1])); - + } + y ~ normal(mu, sigma); } + + diff --git a/posterior_database/models/stan/gp_pois_regr.stan b/posterior_database/models/stan/gp_pois_regr.stan index 0f39291b..8379c290 100644 --- a/posterior_database/models/stan/gp_pois_regr.stan +++ b/posterior_database/models/stan/gp_pois_regr.stan @@ -1,29 +1,28 @@ data { int N; - real x[N]; - int k[N]; + array[N] real x; + array[N] int k; } - parameters { real rho; real alpha; vector[N] f_tilde; } - transformed parameters { vector[N] f; { - matrix[N, N] cov = cov_exp_quad(x, alpha, rho) + matrix[N, N] cov = gp_exp_quad_cov(x, alpha, rho) + diag_matrix(rep_vector(1e-10, N)); matrix[N, N] L_cov = cholesky_decompose(cov); f = L_cov * f_tilde; } } - model { rho ~ gamma(25, 4); alpha ~ normal(0, 2); f_tilde ~ normal(0, 1); - + k ~ poisson_log(f); } + + diff --git a/posterior_database/models/stan/gp_regr.stan b/posterior_database/models/stan/gp_regr.stan index 167b924f..a6c317fe 100644 --- a/posterior_database/models/stan/gp_regr.stan +++ b/posterior_database/models/stan/gp_regr.stan @@ -1,23 +1,23 @@ data { int N; - real x[N]; + array[N] real x; vector[N] y; } - parameters { real rho; real alpha; real sigma; } - model { - matrix[N, N] cov = cov_exp_quad(x, alpha, rho) + matrix[N, N] cov = gp_exp_quad_cov(x, alpha, rho) + diag_matrix(rep_vector(sigma, N)); matrix[N, N] L_cov = cholesky_decompose(cov); - + rho ~ gamma(25, 4); alpha ~ normal(0, 2); sigma ~ normal(0, 1); - + y ~ multi_normal_cholesky(rep_vector(0, N), L_cov); } + + diff --git a/posterior_database/models/stan/gpcm_latent_reg_irt.stan b/posterior_database/models/stan/gpcm_latent_reg_irt.stan index 4f8a32e7..16df5c2a 100644 --- a/posterior_database/models/stan/gpcm_latent_reg_irt.stan +++ b/posterior_database/models/stan/gpcm_latent_reg_irt.stan @@ -13,19 +13,23 @@ functions { matrix[2, cols(W)] adj; adj[1, 1] = 0; adj[2, 1] = 1; - if(cols(W) > 1) { - for(k in 2:cols(W)) { // remaining columns - min_w = min(W[1:rows(W), k]); - max_w = max(W[1:rows(W), k]); + if (cols(W) > 1) { + for (k in 2 : cols(W)) { + // remaining columns + min_w = min(W[1 : rows(W), k]); + max_w = max(W[1 : rows(W), k]); minmax_count = 0; - for(j in 1:rows(W)) - minmax_count = minmax_count + W[j,k] == min_w || W[j,k] == max_w; - if(minmax_count == rows(W)) { // if column takes only 2 values - adj[1, k] = mean(W[1:rows(W), k]); - adj[2, k] = (max_w - min_w); - } else { // if column takes > 2 values - adj[1, k] = mean(W[1:rows(W), k]); - adj[2, k] = sd(W[1:rows(W), k]) * 2; + for (j in 1 : rows(W)) { + minmax_count = minmax_count + W[j, k] == min_w || W[j, k] == max_w; + } + if (minmax_count == rows(W)) { + // if column takes only 2 values + adj[1, k] = mean(W[1 : rows(W), k]); + adj[2, k] = max_w - min_w; + } else { + // if column takes > 2 values + adj[1, k] = mean(W[1 : rows(W), k]); + adj[2, k] = sd(W[1 : rows(W), k]) * 2; } } } @@ -33,52 +37,63 @@ functions { } } data { - int I; // # items - int J; // # persons - int N; // # responses - int ii[N]; // i for n - int jj[N]; // j for n - int y[N]; // response for n; y = 0, 1 ... m_i - int K; // # person covariates - matrix[J,K] W; // person covariate matrix + int I; // # items + int J; // # persons + int N; // # responses + array[N] int ii; // i for n + array[N] int jj; // j for n + array[N] int y; // response for n; y = 0, 1 ... m_i + int K; // # person covariates + matrix[J, K] W; // person covariate matrix } transformed data { - int m[I]; // # parameters per item - int pos[I]; // first position in beta vector for item - matrix[2,K] adj; // values for centering and scaling covariates - matrix[J,K] W_adj; // centered and scaled covariates + array[I] int m; // # parameters per item + array[I] int pos; // first position in beta vector for item + matrix[2, K] adj; // values for centering and scaling covariates + matrix[J, K] W_adj; // centered and scaled covariates m = rep_array(0, I); - for(n in 1:N) - if(y[n] > m[ii[n]]) m[ii[n]] = y[n]; + for (n in 1 : N) { + if (y[n] > m[ii[n]]) { + m[ii[n]] = y[n]; + } + } pos[1] = 1; - for(i in 2:(I)) - pos[i] = m[i-1] + pos[i-1]; + for (i in 2 : I) { + pos[i] = m[i - 1] + pos[i - 1]; + } adj = obtain_adjustments(W); - for(k in 1:K) for(j in 1:J) - W_adj[j,k] = (W[j,k] - adj[1,k]) / adj[2,k]; + for (k in 1 : K) { + for (j in 1 : J) { + W_adj[j, k] = (W[j, k] - adj[1, k]) / adj[2, k]; + } + } } parameters { vector[I] alpha; - vector[sum(m)-1] beta_free; + vector[sum(m) - 1] beta_free; vector[J] theta; vector[K] lambda_adj; } transformed parameters { vector[sum(m)] beta; - beta[1:(sum(m)-1)] = beta_free; - beta[sum(m)] = -1*sum(beta_free); + beta[1 : sum(m) - 1] = beta_free; + beta[sum(m)] = -1 * sum(beta_free); } model { alpha ~ lognormal(1, 1); target += normal_lpdf(beta | 0, 3); - theta ~ normal(W_adj*lambda_adj, 1); + theta ~ normal(W_adj * lambda_adj, 1); lambda_adj ~ student_t(3, 0, 1); - for (n in 1:N) - target += pcm(y[n], theta[jj[n]].*alpha[ii[n]], + for (n in 1 : N) { + target += pcm(y[n], theta[jj[n]] .* alpha[ii[n]], segment(beta, pos[ii[n]], m[ii[n]])); + } } generated quantities { vector[K] lambda; - lambda[2:K] = lambda_adj[2:K] ./ to_vector(adj[2,2:K]); - lambda[1] = W_adj[1, 1:K]*lambda_adj[1:K] - W[1, 2:K]*lambda[2:K]; + lambda[2 : K] = lambda_adj[2 : K] ./ to_vector(adj[2, 2 : K]); + lambda[1] = W_adj[1, 1 : K] * lambda_adj[1 : K] + - W[1, 2 : K] * lambda[2 : K]; } + + diff --git a/posterior_database/models/stan/grsm_latent_reg_irt.stan b/posterior_database/models/stan/grsm_latent_reg_irt.stan index 405175cc..e8d8f00e 100644 --- a/posterior_database/models/stan/grsm_latent_reg_irt.stan +++ b/posterior_database/models/stan/grsm_latent_reg_irt.stan @@ -13,19 +13,23 @@ functions { matrix[2, cols(W)] adj; adj[1, 1] = 0; adj[2, 1] = 1; - if(cols(W) > 1) { - for(k in 2:cols(W)) { // remaining columns - min_w = min(W[1:rows(W), k]); - max_w = max(W[1:rows(W), k]); + if (cols(W) > 1) { + for (k in 2 : cols(W)) { + // remaining columns + min_w = min(W[1 : rows(W), k]); + max_w = max(W[1 : rows(W), k]); minmax_count = 0; - for(j in 1:rows(W)) - minmax_count = minmax_count + W[j,k] == min_w || W[j,k] == max_w; - if(minmax_count == rows(W)) { // if column takes only 2 values - adj[1, k] = mean(W[1:rows(W), k]); - adj[2, k] = (max_w - min_w); - } else { // if column takes > 2 values - adj[1, k] = mean(W[1:rows(W), k]); - adj[2, k] = sd(W[1:rows(W), k]) * 2; + for (j in 1 : rows(W)) { + minmax_count = minmax_count + W[j, k] == min_w || W[j, k] == max_w; + } + if (minmax_count == rows(W)) { + // if column takes only 2 values + adj[1, k] = mean(W[1 : rows(W), k]); + adj[2, k] = max_w - min_w; + } else { + // if column takes > 2 values + adj[1, k] = mean(W[1 : rows(W), k]); + adj[2, k] = sd(W[1 : rows(W), k]) * 2; } } } @@ -33,48 +37,55 @@ functions { } } data { - int I; // # items - int J; // # persons - int N; // # responses - int ii[N]; // i for n - int jj[N]; // j for n - int y[N]; // response for n; y in {0 ... m_i} - int K; // # person covariates - matrix[J,K] W; // person covariate matrix + int I; // # items + int J; // # persons + int N; // # responses + array[N] int ii; // i for n + array[N] int jj; // j for n + array[N] int y; // response for n; y in {0 ... m_i} + int K; // # person covariates + matrix[J, K] W; // person covariate matrix } transformed data { - int m; // # steps - matrix[2,K] adj; // values for centering and scaling covariates - matrix[J,K] W_adj; // centered and scaled covariates + int m; // # steps + matrix[2, K] adj; // values for centering and scaling covariates + matrix[J, K] W_adj; // centered and scaled covariates m = max(y); adj = obtain_adjustments(W); - for(k in 1:K) for(j in 1:J) - W_adj[j,k] = (W[j,k] - adj[1,k]) / adj[2,k]; + for (k in 1 : K) { + for (j in 1 : J) { + W_adj[j, k] = (W[j, k] - adj[1, k]) / adj[2, k]; + } + } } parameters { vector[I] alpha; - vector[I-1] beta_free; - vector[m-1] kappa_free; + vector[I - 1] beta_free; + vector[m - 1] kappa_free; vector[J] theta; vector[K] lambda_adj; } transformed parameters { vector[I] beta; vector[m] kappa; - beta = append_row(beta_free, rep_vector(-1*sum(beta_free), 1)); - kappa = append_row(kappa_free, rep_vector(-1*sum(kappa_free), 1)); + beta = append_row(beta_free, rep_vector(-1 * sum(beta_free), 1)); + kappa = append_row(kappa_free, rep_vector(-1 * sum(kappa_free), 1)); } model { alpha ~ lognormal(1, 1); target += normal_lpdf(beta | 0, 3); target += normal_lpdf(kappa | 0, 3); - theta ~ normal(W_adj*lambda_adj, 1); + theta ~ normal(W_adj * lambda_adj, 1); lambda_adj ~ student_t(3, 0, 1); - for (n in 1:N) + for (n in 1 : N) { target += rsm(y[n], theta[jj[n]] .* alpha[ii[n]], beta[ii[n]], kappa); + } } generated quantities { vector[K] lambda; - lambda[2:K] = lambda_adj[2:K] ./ to_vector(adj[2,2:K]); - lambda[1] = W_adj[1, 1:K]*lambda_adj[1:K] - W[1, 2:K]*lambda[2:K]; + lambda[2 : K] = lambda_adj[2 : K] ./ to_vector(adj[2, 2 : K]); + lambda[1] = W_adj[1, 1 : K] * lambda_adj[1 : K] + - W[1, 2 : K] * lambda[2 : K]; } + + diff --git a/posterior_database/models/stan/hier_2pl.stan b/posterior_database/models/stan/hier_2pl.stan index fafb0780..81d3ca16 100644 --- a/posterior_database/models/stan/hier_2pl.stan +++ b/posterior_database/models/stan/hier_2pl.stan @@ -1,41 +1,41 @@ - data { - int I; // # items - int J; // # persons - int N; // # observations - int ii[N]; // item for n - int jj[N]; // person for n - int y[N]; // correctness for n + int I; // # items + int J; // # persons + int N; // # observations + array[N] int ii; // item for n + array[N] int jj; // person for n + array[N] int y; // correctness for n } parameters { - vector[J] theta; // abilities + vector[J] theta; // abilities vector[I] xi1; vector[I] xi2; - vector[2] mu; // vector for alpha/beta means - vector[2] tau; // vector for alpha/beta residual sds + vector[2] mu; // vector for alpha/beta means + vector[2] tau; // vector for alpha/beta residual sds cholesky_factor_corr[2] L_Omega; } transformed parameters { vector[I] alpha; vector[I] beta; - vector[2] xi[I]; // alpha/beta pair vectors - for (i in 1:I) { - xi[i,1] = xi1[i]; - xi[i,2] = xi2[i]; - alpha[i] = exp(xi[i,1]); - beta[i] = xi[i,2]; + array[I] vector[2] xi; // alpha/beta pair vectors + for (i in 1 : I) { + xi[i, 1] = xi1[i]; + xi[i, 2] = xi2[i]; + alpha[i] = exp(xi[i, 1]); + beta[i] = xi[i, 2]; } } model { - matrix[2,2] L_Sigma; + matrix[2, 2] L_Sigma; L_Sigma = diag_pre_multiply(tau, L_Omega); - for (i in 1:I) - target += multi_normal_cholesky_lpdf(xi[i] |mu, L_Sigma); + for (i in 1 : I) { + target += multi_normal_cholesky_lpdf(xi[i] | mu, L_Sigma); + } theta ~ normal(0, 1); L_Omega ~ lkj_corr_cholesky(4); - mu[1] ~ normal(0,1); + mu[1] ~ normal(0, 1); tau[1] ~ exponential(.1); - mu[2] ~ normal(0,5); + mu[2] ~ normal(0, 5); tau[2] ~ exponential(.1); y ~ bernoulli_logit(alpha[ii] .* (theta[jj] - beta[ii])); } @@ -43,3 +43,5 @@ generated quantities { corr_matrix[2] Omega; Omega = multiply_lower_tri_self_transpose(L_Omega); } + + diff --git a/posterior_database/models/stan/hierarchical_gp.stan b/posterior_database/models/stan/hierarchical_gp.stan index bfdb3e46..f546a1fa 100644 --- a/posterior_database/models/stan/hierarchical_gp.stan +++ b/posterior_database/models/stan/hierarchical_gp.stan @@ -4,93 +4,95 @@ data { int N_regions; int N_years_obs; int N_years; - int state_region_ind[N_states]; - int state_ind[N]; - int region_ind[N]; - int year_ind[N]; + array[N_states] int state_region_ind; + array[N] int state_ind; + array[N] int region_ind; + array[N] int year_ind; //vector[N] turnout_weight; - vector[N] y; + vector[N] y; } transformed data { - real years[N_years]; + array[N_years] real years; vector[17] counts; - - for (t in 1:N_years) + + for (t in 1 : N_years) { years[t] = t; - for (i in 1:17) + } + for (i in 1 : 17) { counts[i] = 2; + } } parameters { - matrix[N_years,N_regions] GP_region_std; - matrix[N_years,N_states] GP_state_std; + matrix[N_years, N_regions] GP_region_std; + matrix[N_years, N_states] GP_state_std; vector[N_years_obs] year_std; vector[N_states] state_std; vector[N_regions] region_std; real tot_var; simplex[17] prop_var; real mu; - - + real length_GP_region_long; real length_GP_state_long; real length_GP_region_short; real length_GP_state_short; } transformed parameters { - matrix[N_years,N_regions] GP_region; - matrix[N_years,N_states] GP_state; - + matrix[N_years, N_regions] GP_region; + matrix[N_years, N_states] GP_state; + vector[N_years_obs] year_re; vector[N_states] state_re; vector[N_regions] region_re; vector[17] vars; - + real sigma_year; real sigma_region; vector[10] sigma_state; - + real sigma_error_state_2; - + real sigma_GP_region_long; real sigma_GP_state_long; real sigma_GP_region_short; real sigma_GP_state_short; - + vars = 17 * prop_var * tot_var; sigma_year = sqrt(vars[1]); sigma_region = sqrt(vars[2]); - for (i in 1:10) + for (i in 1 : 10) { sigma_state[i] = sqrt(vars[i + 2]); - + } + sigma_GP_region_long = sqrt(vars[13]); sigma_GP_state_long = sqrt(vars[14]); sigma_GP_region_short = sqrt(vars[15]); sigma_GP_state_short = sqrt(vars[16]); sigma_error_state_2 = sqrt(vars[17]); - + region_re = sigma_region * region_std; year_re = sigma_year * year_std; state_re = sigma_state[state_region_ind] .* state_std; - + { matrix[N_years, N_years] cov_region; matrix[N_years, N_years] cov_state; matrix[N_years, N_years] L_cov_region; matrix[N_years, N_years] L_cov_state; // replace cov_exp_quad with gp_exp_quad_cov. What is the difference? - cov_region = cov_exp_quad(years, sigma_GP_region_long, - length_GP_region_long) - + cov_exp_quad(years, sigma_GP_region_short, - length_GP_region_short); - cov_state = cov_exp_quad(years, sigma_GP_state_long, - length_GP_state_long) - + cov_exp_quad(years, sigma_GP_state_short, + cov_region = gp_exp_quad_cov(years, sigma_GP_region_long, + length_GP_region_long) + + gp_exp_quad_cov(years, sigma_GP_region_short, + length_GP_region_short); + cov_state = gp_exp_quad_cov(years, sigma_GP_state_long, + length_GP_state_long) + + gp_exp_quad_cov(years, sigma_GP_state_short, length_GP_state_short); - for (year in 1:N_years) { + for (year in 1 : N_years) { cov_region[year, year] = cov_region[year, year] + 1e-6; cov_state[year, year] = cov_state[year, year] + 1e-6; } - + L_cov_region = cholesky_decompose(cov_region); L_cov_state = cholesky_decompose(cov_state); GP_region = L_cov_region * GP_region_std; @@ -99,16 +101,15 @@ transformed parameters { } model { vector[N] obs_mu; - - for (n in 1:N) { - obs_mu[n] = mu + year_re[year_ind[n]] - + state_re[state_ind[n]] - + region_re[region_ind[n]] - + GP_region[year_ind[n],region_ind[n]] - + GP_state[year_ind[n],state_ind[n]]; + + for (n in 1 : N) { + obs_mu[n] = mu + year_re[year_ind[n]] + state_re[state_ind[n]] + + region_re[region_ind[n]] + + GP_region[year_ind[n], region_ind[n]] + + GP_state[year_ind[n], state_ind[n]]; } y ~ normal(obs_mu, sigma_error_state_2); //* turnout_weight); - + to_vector(GP_region_std) ~ normal(0, 1); to_vector(GP_state_std) ~ normal(0, 1); year_std ~ normal(0, 1); @@ -117,36 +118,37 @@ model { mu ~ normal(.5, .5); tot_var ~ gamma(3, 3); prop_var ~ dirichlet(counts); - length_GP_region_long ~ weibull(30,8); - length_GP_state_long ~ weibull(30,8); - length_GP_region_short ~ weibull(30,3); - length_GP_state_short ~ weibull(30,3); + length_GP_region_long ~ weibull(30, 8); + length_GP_state_long ~ weibull(30, 8); + length_GP_region_short ~ weibull(30, 3); + length_GP_state_short ~ weibull(30, 3); } generated quantities { - matrix[N_years,N_states] y_new; - matrix[N_years,N_states] y_new_pred; - + matrix[N_years, N_states] y_new; + matrix[N_years, N_states] y_new_pred; + { real level; level = normal_rng(0.5, sigma_year); - for (state in 1:N_states) { - for (t in 1:N_years) { + for (state in 1 : N_states) { + for (t in 1 : N_years) { if (t < 12) { - y_new[t,state] = state_re[state] - + region_re[state_region_ind[state]] - + GP_state[t,state] - + GP_region[t,state_region_ind[state]] - + (mu + year_re[t]); + y_new[t, state] = state_re[state] + + region_re[state_region_ind[state]] + + GP_state[t, state] + + GP_region[t, state_region_ind[state]] + + (mu + year_re[t]); } else { - y_new[t,state] = state_re[state] - + region_re[state_region_ind[state]] - + GP_state[t,state] - + GP_region[t,state_region_ind[state]] - + level; + y_new[t, state] = state_re[state] + + region_re[state_region_ind[state]] + + GP_state[t, state] + + GP_region[t, state_region_ind[state]] + level; } - y_new_pred[t,state] = normal_rng(y_new[t,state], - sigma_error_state_2); + y_new_pred[t, state] = normal_rng(y_new[t, state], + sigma_error_state_2); } } } } + + diff --git a/posterior_database/models/stan/hmm_drive_0.stan b/posterior_database/models/stan/hmm_drive_0.stan index 05e11a50..7f2957eb 100644 --- a/posterior_database/models/stan/hmm_drive_0.stan +++ b/posterior_database/models/stan/hmm_drive_0.stan @@ -1,75 +1,89 @@ // drive model (exponential dist) data { - int K; // number of states (1 = none, 2 = drive) - int N; // length of process - real u[N]; // 1/speed - real v[N]; // hoop distance - matrix[K,K] alpha; // transit prior + int K; // number of states (1 = none, 2 = drive) + int N; // length of process + array[N] real u; // 1/speed + array[N] real v; // hoop distance + matrix[K, K] alpha; // transit prior } parameters { simplex[K] theta1; simplex[K] theta2; // enforce an ordering: phi[1] <= phi[2] - positive_ordered[K] phi; // emission parameter for 1/speed - positive_ordered[K] lambda; // emission parameter for hoop dist + positive_ordered[K] phi; // emission parameter for 1/speed + positive_ordered[K] lambda; // emission parameter for hoop dist } transformed parameters { - simplex[K] theta[K]; // transit probs - theta[1] = theta1; - theta[2] = theta2; + array[K] simplex[K] theta; // transit probs + theta[1] = theta1; + theta[2] = theta2; } model { // priors - for (k in 1:K) - target += dirichlet_lpdf(theta[k] | alpha[k,]'); - target+= normal_lpdf(phi[1] | 0, 1); - target+= normal_lpdf(phi[2] | 3, 1); - target+= normal_lpdf(lambda[1] | 0, 1); - target+= normal_lpdf(lambda[2] | 3, 1); + for (k in 1 : K) { + target += dirichlet_lpdf(theta[k] | alpha[k, : ]'); + } + target += normal_lpdf(phi[1] | 0, 1); + target += normal_lpdf(phi[2] | 3, 1); + target += normal_lpdf(lambda[1] | 0, 1); + target += normal_lpdf(lambda[2] | 3, 1); // forward algorithm { - real acc[K]; - real gamma[N,K]; - for (k in 1:K) - gamma[1,k] = exponential_lpdf(u[1] | phi[k]) + exponential_lpdf(v[1] | lambda[k]); - for (t in 2:N) { - for (k in 1:K) { - for (j in 1:K) - acc[j] = gamma[t-1,j] + log(theta[j,k]) + exponential_lpdf(u[t] | phi[k]) + exponential_lpdf(v[t] | lambda[k]); - gamma[t,k] = log_sum_exp(acc); + array[K] real acc; + array[N, K] real gamma; + for (k in 1 : K) { + gamma[1, k] = exponential_lpdf(u[1] | phi[k]) + + exponential_lpdf(v[1] | lambda[k]); + } + for (t in 2 : N) { + for (k in 1 : K) { + for (j in 1 : K) { + acc[j] = gamma[t - 1, j] + log(theta[j, k]) + + exponential_lpdf(u[t] | phi[k]) + + exponential_lpdf(v[t] | lambda[k]); + } + gamma[t, k] = log_sum_exp(acc); } } - target+= log_sum_exp(gamma[N]); + target += log_sum_exp(gamma[N]); } } - generated quantities { - int z_star[N]; + array[N] int z_star; real log_p_z_star; // Viterbi algorithm { - int back_ptr[N,K]; - real best_logp[N,K]; - for (k in 1:K) - best_logp[1,K] = exponential_lpdf(u[1] | phi[k]) + exponential_lpdf(v[1] | lambda[k]); - for (t in 2:N) { - for (k in 1:K) { - best_logp[t,k] = negative_infinity(); - for (j in 1:K) { + array[N, K] int back_ptr; + array[N, K] real best_logp; + for (k in 1 : K) { + best_logp[1, K] = exponential_lpdf(u[1] | phi[k]) + + exponential_lpdf(v[1] | lambda[k]); + } + for (t in 2 : N) { + for (k in 1 : K) { + best_logp[t, k] = negative_infinity(); + for (j in 1 : K) { real logp; - logp = best_logp[t-1,j] + log(theta[j,k]) + exponential_lpdf(u[t] | phi[k]) + exponential_lpdf(v[t] | lambda[k]); - if (logp > best_logp[t,k]) { - back_ptr[t,k] = j; - best_logp[t,k] = logp; + logp = best_logp[t - 1, j] + log(theta[j, k]) + + exponential_lpdf(u[t] | phi[k]) + + exponential_lpdf(v[t] | lambda[k]); + if (logp > best_logp[t, k]) { + back_ptr[t, k] = j; + best_logp[t, k] = logp; } } } } log_p_z_star = max(best_logp[N]); - for (k in 1:K) - if (best_logp[N,k] == log_p_z_star) + for (k in 1 : K) { + if (best_logp[N, k] == log_p_z_star) { z_star[N] = k; - for (t in 1:(N - 1)) + } + } + for (t in 1 : (N - 1)) { z_star[N - t] = back_ptr[N - t + 1, z_star[N - t + 1]]; + } } } + + diff --git a/posterior_database/models/stan/hmm_drive_1.stan b/posterior_database/models/stan/hmm_drive_1.stan index b1b124c0..fdbde357 100644 --- a/posterior_database/models/stan/hmm_drive_1.stan +++ b/posterior_database/models/stan/hmm_drive_1.stan @@ -1,77 +1,91 @@ // drive model (normal dist) data { - int K; // number of states (1 = none, 2 = drive) - int N; // length of process - real u[N]; // 1/speed - real v[N]; // hoop distance - matrix[K,K] alpha; // transit prior - real tau; // sd u - real rho; // sd v + int K; // number of states (1 = none, 2 = drive) + int N; // length of process + array[N] real u; // 1/speed + array[N] real v; // hoop distance + matrix[K, K] alpha; // transit prior + real tau; // sd u + real rho; // sd v } parameters { simplex[K] theta1; simplex[K] theta2; // enforce an ordering: phi[1] <= phi[2] - ordered[K] phi; // emission parameter for 1/speed - ordered[K] lambda; // emission parameter for hoop dist + ordered[K] phi; // emission parameter for 1/speed + ordered[K] lambda; // emission parameter for hoop dist } transformed parameters { - simplex[K] theta[K]; // transit probs - theta[1] = theta1; - theta[2] = theta2; + array[K] simplex[K] theta; // transit probs + theta[1] = theta1; + theta[2] = theta2; } model { // priors - for (k in 1:K) - target += dirichlet_lpdf(theta[k] | alpha[k,]'); - target+= normal_lpdf(phi[1] | 0, 1); - target+= normal_lpdf(phi[2] | 3, 1); - target+= normal_lpdf(lambda[1] | 0, 1); - target+= normal_lpdf(lambda[2] | 3, 1); + for (k in 1 : K) { + target += dirichlet_lpdf(theta[k] | alpha[k, : ]'); + } + target += normal_lpdf(phi[1] | 0, 1); + target += normal_lpdf(phi[2] | 3, 1); + target += normal_lpdf(lambda[1] | 0, 1); + target += normal_lpdf(lambda[2] | 3, 1); // forward algorithm { - real acc[K]; - real gamma[N,K]; - for (k in 1:K) - gamma[1,k] = normal_lpdf(u[1] | phi[k], tau) + normal_lpdf(v[1] | lambda[k], rho); - for (t in 2:N) { - for (k in 1:K) { - for (j in 1:K) - acc[j] = gamma[t-1,j] + log(theta[j,k]) + normal_lpdf(u[t] | phi[k], tau) + normal_lpdf(v[t] | lambda[k], rho); - gamma[t,k] = log_sum_exp(acc); + array[K] real acc; + array[N, K] real gamma; + for (k in 1 : K) { + gamma[1, k] = normal_lpdf(u[1] | phi[k], tau) + + normal_lpdf(v[1] | lambda[k], rho); + } + for (t in 2 : N) { + for (k in 1 : K) { + for (j in 1 : K) { + acc[j] = gamma[t - 1, j] + log(theta[j, k]) + + normal_lpdf(u[t] | phi[k], tau) + + normal_lpdf(v[t] | lambda[k], rho); + } + gamma[t, k] = log_sum_exp(acc); } } - target+= log_sum_exp(gamma[N]); + target += log_sum_exp(gamma[N]); } } - generated quantities { - int z_star[N]; + array[N] int z_star; real log_p_z_star; // Viterbi algorithm { - int back_ptr[N,K]; - real best_logp[N,K]; - for (k in 1:K) - best_logp[1,K] = normal_lpdf(u[1] | phi[k], tau) + normal_lpdf(v[1] | lambda[k], rho); - for (t in 2:N) { - for (k in 1:K) { - best_logp[t,k] = negative_infinity(); - for (j in 1:K) { + array[N, K] int back_ptr; + array[N, K] real best_logp; + for (k in 1 : K) { + best_logp[1, K] = normal_lpdf(u[1] | phi[k], tau) + + normal_lpdf(v[1] | lambda[k], rho); + } + for (t in 2 : N) { + for (k in 1 : K) { + best_logp[t, k] = negative_infinity(); + for (j in 1 : K) { real logp; - logp = best_logp[t-1,j] + log(theta[j,k]) + normal_lpdf(u[t] | phi[k], tau) + normal_lpdf(v[t] | lambda[k], rho); - if (logp > best_logp[t,k]) { - back_ptr[t,k] = j; - best_logp[t,k] = logp; + logp = best_logp[t - 1, j] + log(theta[j, k]) + + normal_lpdf(u[t] | phi[k], tau) + + normal_lpdf(v[t] | lambda[k], rho); + if (logp > best_logp[t, k]) { + back_ptr[t, k] = j; + best_logp[t, k] = logp; } } } } log_p_z_star = max(best_logp[N]); - for (k in 1:K) - if (best_logp[N,k] == log_p_z_star) + for (k in 1 : K) { + if (best_logp[N, k] == log_p_z_star) { z_star[N] = k; - for (t in 1:(N - 1)) + } + } + for (t in 1 : (N - 1)) { z_star[N - t] = back_ptr[N - t + 1, z_star[N - t + 1]]; + } } } + + diff --git a/posterior_database/models/stan/hmm_example.stan b/posterior_database/models/stan/hmm_example.stan index 7619a658..2f7f99e7 100644 --- a/posterior_database/models/stan/hmm_example.stan +++ b/posterior_database/models/stan/hmm_example.stan @@ -2,57 +2,58 @@ data { int N; int K; - real y[N]; + array[N] real y; } - parameters { simplex[K] theta1; simplex[K] theta2; // real mu[K]; positive_ordered[K] mu; } - transformed parameters { - simplex[K] theta[K]; - theta[1] = theta1; - theta[2] = theta2; + array[K] simplex[K] theta; + theta[1] = theta1; + theta[2] = theta2; } - model { // priors - target+= normal_lpdf(mu[1] | 3, 1); - target+= normal_lpdf(mu[2] | 10, 1); + target += normal_lpdf(mu[1] | 3, 1); + target += normal_lpdf(mu[2] | 10, 1); // forward algorithm { - real acc[K]; - real gamma[N, K]; - for (k in 1:K) - gamma[1, k] = normal_lpdf(y[1] | mu[k], 1); - for (t in 2:N) { - for (k in 1:K) { - for (j in 1:K) - acc[j] = gamma[t-1, j] + log(theta[j, k]) + normal_lpdf(y[t] | mu[k], 1); - gamma[t, k] = log_sum_exp(acc); + array[K] real acc; + array[N, K] real gamma; + for (k in 1 : K) { + gamma[1, k] = normal_lpdf(y[1] | mu[k], 1); } - } - target += log_sum_exp(gamma[N]); + for (t in 2 : N) { + for (k in 1 : K) { + for (j in 1 : K) { + acc[j] = gamma[t - 1, j] + log(theta[j, k]) + + normal_lpdf(y[t] | mu[k], 1); + } + gamma[t, k] = log_sum_exp(acc); + } + } + target += log_sum_exp(gamma[N]); } } - generated quantities { - int z_star[N]; + array[N] int z_star; real log_p_z_star; { - int back_ptr[N, K]; - real best_logp[N, K]; - for (k in 1:K) + array[N, K] int back_ptr; + array[N, K] real best_logp; + for (k in 1 : K) { best_logp[1, k] = normal_lpdf(y[1] | mu[k], 1); - for (t in 2:N) { - for (k in 1:K) { + } + for (t in 2 : N) { + for (k in 1 : K) { best_logp[t, k] = negative_infinity(); - for (j in 1:K) { + for (j in 1 : K) { real logp; - logp = best_logp[t-1, j] + log(theta[j, k]) + normal_lpdf(y[t] | mu[k], 1); + logp = best_logp[t - 1, j] + log(theta[j, k]) + + normal_lpdf(y[t] | mu[k], 1); if (logp > best_logp[t, k]) { back_ptr[t, k] = j; best_logp[t, k] = logp; @@ -61,10 +62,15 @@ generated quantities { } } log_p_z_star = max(best_logp[N]); - for (k in 1:K) - if (best_logp[N, k] == log_p_z_star) + for (k in 1 : K) { + if (best_logp[N, k] == log_p_z_star) { z_star[N] = k; - for (t in 1:(N - 1)) + } + } + for (t in 1 : (N - 1)) { z_star[N - t] = back_ptr[N - t + 1, z_star[N - t + 1]]; + } } } + + diff --git a/posterior_database/models/stan/hmm_gaussian.stan b/posterior_database/models/stan/hmm_gaussian.stan index ff883478..ae2af30b 100644 --- a/posterior_database/models/stan/hmm_gaussian.stan +++ b/posterior_database/models/stan/hmm_gaussian.stan @@ -5,112 +5,126 @@ functions { return x / sum(x); } } - data { - int T; // number of observations (length) - int K; // number of hidden states - real y[T]; // observations + int T; // number of observations (length) + int K; // number of hidden states + array[T] real y; // observations } - parameters { // Discrete state model - simplex[K] pi1; // initial state probabilities - simplex[K] A[K]; // transition probabilities - // A[i][j] = p(z_t = j | z_{t-1} = i) - + simplex[K] pi1; // initial state probabilities + array[K] simplex[K] A; // transition probabilities + // A[i][j] = p(z_t = j | z_{t-1} = i) + // Continuous observation model - ordered[K] mu; // observation means - real sigma[K]; // observation standard deviations + ordered[K] mu; // observation means + array[K] real sigma; // observation standard deviations } - transformed parameters { - vector[K] logalpha[T]; - - { // Forward algorithm log p(z_t = j | x_{1:t}) - real accumulator[K]; - + array[T] vector[K] logalpha; + + { + // Forward algorithm log p(z_t = j | x_{1:t}) + array[K] real accumulator; + logalpha[1] = log(pi1) + normal_lpdf(y[1] | mu, sigma); - - for (t in 2:T) { - for (j in 1:K) { // j = current (t) - for (i in 1:K) { // i = previous (t-1) - // Murphy (2012) Eq. 17.48 - // belief state + transition prob + local evidence at t - accumulator[i] = logalpha[t-1, i] + log(A[i, j]) + normal_lpdf(y[t] | mu[j], sigma[j]); + + for (t in 2 : T) { + for (j in 1 : K) { + // j = current (t) + for (i in 1 : K) { + // i = previous (t-1) + // Murphy (2012) Eq. 17.48 + // belief state + transition prob + local evidence at t + accumulator[i] = logalpha[t - 1, i] + log(A[i, j]) + + normal_lpdf(y[t] | mu[j], sigma[j]); } logalpha[t, j] = log_sum_exp(accumulator); } } } // Forward } - model { target += log_sum_exp(logalpha[T]); // Note: update based only on last logalpha } - generated quantities { - vector[K] logbeta[T]; - vector[K] loggamma[T]; - - vector[K] alpha[T]; - vector[K] beta[T]; - vector[K] gamma[T]; - - int zstar[T]; + array[T] vector[K] logbeta; + array[T] vector[K] loggamma; + + array[T] vector[K] alpha; + array[T] vector[K] beta; + array[T] vector[K] gamma; + + array[T] int zstar; real logp_zstar; - - { // Forward algortihm - for (t in 1:T) + + { + // Forward algortihm + for (t in 1 : T) { alpha[t] = softmax(logalpha[t]); + } } // Forward - - { // Backward algorithm log p(x_{t+1:T} | z_t = j) - real accumulator[K]; - - for (j in 1:K) + + { + // Backward algorithm log p(x_{t+1:T} | z_t = j) + array[K] real accumulator; + + for (j in 1 : K) { logbeta[T, j] = 1; - - for (tforward in 0:(T-2)) { + } + + for (tforward in 0 : (T - 2)) { int t; t = T - tforward; - - for (j in 1:K) { // j = previous (t-1) - for (i in 1:K) { // i = next (t) - // Murphy (2012) Eq. 17.58 - // backwards t + transition prob + local evidence at t - accumulator[i] = logbeta[t, i] + log(A[j, i]) + normal_lpdf(y[t] | mu[i], sigma[i]); - } - logbeta[t-1, j] = log_sum_exp(accumulator); + + for (j in 1 : K) { + // j = previous (t-1) + for (i in 1 : K) { + // i = next (t) + // Murphy (2012) Eq. 17.58 + // backwards t + transition prob + local evidence at t + accumulator[i] = logbeta[t, i] + log(A[j, i]) + + normal_lpdf(y[t] | mu[i], sigma[i]); + } + logbeta[t - 1, j] = log_sum_exp(accumulator); } } - - for (t in 1:T) + + for (t in 1 : T) { beta[t] = softmax(logbeta[t]); + } } // Backward - - { // Forwards-backwards algorithm log p(z_t = j | x_{1:T}) - for(t in 1:T) { - loggamma[t] = alpha[t] .* beta[t]; + + { + // Forwards-backwards algorithm log p(z_t = j | x_{1:T}) + for (t in 1 : T) { + loggamma[t] = alpha[t] .* beta[t]; } - - for(t in 1:T) + + for (t in 1 : T) { gamma[t] = normalize(loggamma[t]); + } } // Forwards-backwards - - { // Viterbi algorithm - int bpointer[T, K]; // backpointer to the most likely previous state on the most probable path - real delta[T, K]; // max prob for the seq up to t - // with final output from state k for time t - - for (j in 1:K) + + { + // Viterbi algorithm + array[T, K] int bpointer; // backpointer to the most likely previous state on the most probable path + array[T, K] real delta; // max prob for the seq up to t + // with final output from state k for time t + + for (j in 1 : K) { delta[1, K] = normal_lpdf(y[1] | mu[j], sigma[j]); - - for (t in 2:T) { - for (j in 1:K) { // j = current (t) + } + + for (t in 2 : T) { + for (j in 1 : K) { + // j = current (t) delta[t, j] = negative_infinity(); - for (i in 1:K) { // i = previous (t-1) + for (i in 1 : K) { + // i = previous (t-1) real logp; - logp = delta[t-1, i] + log(A[i, j]) + normal_lpdf(y[t] | mu[j], sigma[j]); + logp = delta[t - 1, i] + log(A[i, j]) + + normal_lpdf(y[t] | mu[j], sigma[j]); if (logp > delta[t, j]) { bpointer[t, j] = i; delta[t, j] = logp; @@ -118,15 +132,19 @@ generated quantities { } } } - + logp_zstar = max(delta[T]); - - for (j in 1:K) - if (delta[T, j] == logp_zstar) + + for (j in 1 : K) { + if (delta[T, j] == logp_zstar) { zstar[T] = j; - - for (t in 1:(T - 1)) { + } + } + + for (t in 1 : (T - 1)) { zstar[T - t] = bpointer[T - t + 1, zstar[T - t + 1]]; } } } + + diff --git a/posterior_database/models/stan/iohmm_reg.stan b/posterior_database/models/stan/iohmm_reg.stan index 2613ebbb..57bbb760 100644 --- a/posterior_database/models/stan/iohmm_reg.stan +++ b/posterior_database/models/stan/iohmm_reg.stan @@ -5,171 +5,188 @@ functions { return x / sum(x); } } - data { - int T; // number of observations (length) - int K; // number of hidden states - - int M; // size of the input vector - real y[T]; // output (scalar) - vector[M] u[T]; // input (vector) + int T; // number of observations (length) + int K; // number of hidden states + + int M; // size of the input vector + array[T] real y; // output (scalar) + array[T] vector[M] u; // input (vector) } - parameters { // Discrete state model - simplex[K] pi1; // initial state probabilities - vector[M] w[K]; // state regressors - + simplex[K] pi1; // initial state probabilities + array[K] vector[M] w; // state regressors + // Continuous observation model - vector[M] b[K]; // mean regressors - real sigma[K]; // residual standard deviations + array[K] vector[M] b; // mean regressors + array[K] real sigma; // residual standard deviations } - transformed parameters { - vector[K] logalpha[T]; - - vector[K] unA[T]; - vector[K] A[T]; - vector[K] logA[T]; - - vector[K] logoblik[T]; - - { // Transition probability matrix p(z_t = j | z_{t-1} = i, u) - unA[1] = pi1; // Filler - A[1] = pi1; // Filler x2 - logA[1] = log(A[1]); // Filler x3 - - for (t in 2:T) { - for (j in 1:K) { // j = current (t) + array[T] vector[K] logalpha; + + array[T] vector[K] unA; + array[T] vector[K] A; + array[T] vector[K] logA; + + array[T] vector[K] logoblik; + + { + // Transition probability matrix p(z_t = j | z_{t-1} = i, u) + unA[1] = pi1; // Filler + A[1] = pi1; // Filler x2 + logA[1] = log(A[1]); // Filler x3 + + for (t in 2 : T) { + for (j in 1 : K) { + // j = current (t) unA[t][j] = u[t]' * w[j]; } A[t] = softmax(unA[t]); logA[t] = log(A[t]); } } - - { // Observation likelihood - for(t in 1:T) { - for(j in 1:K) { - logoblik[t][j] = normal_lpdf(y[t] | u[t]'* b[j], sigma[j]); + + { + // Observation likelihood + for (t in 1 : T) { + for (j in 1 : K) { + logoblik[t][j] = normal_lpdf(y[t] | u[t]' * b[j], sigma[j]); } } } - - { // Forward algorithm log p(z_t = j | x_{1:t}) - real accumulator[K]; - - for(j in 1:K) + + { + // Forward algorithm log p(z_t = j | x_{1:t}) + array[K] real accumulator; + + for (j in 1 : K) { logalpha[1][j] = log(pi1[j]) + logoblik[1][j]; - - for (t in 2:T) { - for (j in 1:K) { // j = current (t) - for (i in 1:K) { // i = previous (t-1) - // Murphy (2012) Eq. 17.48 - // belief state + transition prob + local evidence at t - accumulator[i] = logalpha[t-1, i] + logA[t][i] + logoblik[t][j]; + } + + for (t in 2 : T) { + for (j in 1 : K) { + // j = current (t) + for (i in 1 : K) { + // i = previous (t-1) + // Murphy (2012) Eq. 17.48 + // belief state + transition prob + local evidence at t + accumulator[i] = logalpha[t - 1, i] + logA[t][i] + logoblik[t][j]; } logalpha[t, j] = log_sum_exp(accumulator); } } } // Forward } - model { - for(j in 1:K) { + for (j in 1 : K) { w[j] ~ normal(0, 5); b[j] ~ normal(0, 5); sigma[j] ~ normal(0, 3); } - + target += log_sum_exp(logalpha[T]); // Note: update based only on last logalpha } - generated quantities { - vector[K] logbeta[T]; - vector[K] loggamma[T]; - - vector[K] alpha[T]; - vector[K] beta[T]; - vector[K] gamma[T]; - - vector[K] hatpi[T]; - int hatz[T]; - real haty[T]; - - int zstar[T]; + array[T] vector[K] logbeta; + array[T] vector[K] loggamma; + + array[T] vector[K] alpha; + array[T] vector[K] beta; + array[T] vector[K] gamma; + + array[T] vector[K] hatpi; + array[T] int hatz; + array[T] real haty; + + array[T] int zstar; real logp_zstar; - - { // Forward algorithm log p(z_t = j | x_{1:t}) - for (t in 1:T) + + { + // Forward algorithm log p(z_t = j | x_{1:t}) + for (t in 1 : T) { alpha[t] = softmax(logalpha[t]); + } } // Forward - - { // Backward algorithm log p(x_{t+1:T} | z_t = j) - real accumulator[K]; + + { + // Backward algorithm log p(x_{t+1:T} | z_t = j) + array[K] real accumulator; int tbackwards; - - for (j in 1:K) + + for (j in 1 : K) { logbeta[T, j] = 1; - - for (tforwards in 0:(T-2)) { + } + + for (tforwards in 0 : (T - 2)) { tbackwards = T - tforwards; - - for (j in 1:K) { // j = previous (t-1) - for (i in 1:K) { // i = next (t) - // Murphy (2012) Eq. 17.58 - // backwards t + transition prob + local evidence at t - accumulator[i] = logbeta[tbackwards, i] + logA[tbackwards][i] + logoblik[tbackwards][i]; - } - logbeta[tbackwards-1, j] = log_sum_exp(accumulator); + + for (j in 1 : K) { + // j = previous (t-1) + for (i in 1 : K) { + // i = next (t) + // Murphy (2012) Eq. 17.58 + // backwards t + transition prob + local evidence at t + accumulator[i] = logbeta[tbackwards, i] + logA[tbackwards][i] + + logoblik[tbackwards][i]; + } + logbeta[tbackwards - 1, j] = log_sum_exp(accumulator); } } - - for (t in 1:T) + + for (t in 1 : T) { beta[t] = softmax(logbeta[t]); + } } // Backward - - { // Forwards-backwards algorithm log p(z_t = j | x_{1:T}) - for(t in 1:T) + + { + // Forwards-backwards algorithm log p(z_t = j | x_{1:T}) + for (t in 1 : T) { loggamma[t] = alpha[t] .* beta[t]; - - for(t in 1:T) + } + + for (t in 1 : T) { gamma[t] = normalize(loggamma[t]); + } } // Forwards-backwards - - { // Fitted state - vector[K] reg[T]; - for(t in 1:T) { - for(j in 1:K) { + + { + // Fitted state + array[T] vector[K] reg; + for (t in 1 : T) { + for (j in 1 : K) { reg[t, j] = u[t]' * to_vector(w[j]); } hatpi[t] = softmax(reg[t]); hatz[t] = categorical_rng(hatpi[t]); } } - - { // Fitted output - real reg[T]; - for(t in 1:T) { + + { + // Fitted output + array[T] real reg; + for (t in 1 : T) { reg[t] = u[t]' * b[hatz[t]]; haty[t] = normal_rng(reg[t], sigma[hatz[t]]); } } - - { // Viterbi decoding - int bpointer[T, K]; // backpointer to the source of the link - real delta[T, K]; // max prob for the seq up to t - // with final output from state k for time t - - for (j in 1:K) + + { + // Viterbi decoding + array[T, K] int bpointer; // backpointer to the source of the link + array[T, K] real delta; // max prob for the seq up to t + // with final output from state k for time t + + for (j in 1 : K) { delta[1, K] = logoblik[1][j]; - - for (t in 2:T) { - for (j in 1:K) { + } + + for (t in 2 : T) { + for (j in 1 : K) { delta[t, j] = negative_infinity(); - for (i in 1:K) { + for (i in 1 : K) { real logp; - logp = delta[t-1, i] + logA[t][i] + logoblik[t][j]; + logp = delta[t - 1, i] + logA[t][i] + logoblik[t][j]; if (logp > delta[t, j]) { bpointer[t, j] = i; delta[t, j] = logp; @@ -177,15 +194,19 @@ generated quantities { } } } - + logp_zstar = max(delta[T]); - - for (j in 1:K) - if (delta[T, j] == logp_zstar) + + for (j in 1 : K) { + if (delta[T, j] == logp_zstar) { zstar[T] = j; - - for (t in 1:(T - 1)) { + } + } + + for (t in 1 : (T - 1)) { zstar[T - t] = bpointer[T - t + 1, zstar[T - t + 1]]; } } } + + diff --git a/posterior_database/models/stan/irt_2pl.stan b/posterior_database/models/stan/irt_2pl.stan index 5586c63a..fff344ac 100644 --- a/posterior_database/models/stan/irt_2pl.stan +++ b/posterior_database/models/stan/irt_2pl.stan @@ -1,32 +1,33 @@ data { int I; int J; - int y[I, J]; + array[I, J] int y; } - parameters { real sigma_theta; vector[J] theta; - + real sigma_a; vector[I] a; - + real mu_b; real sigma_b; vector[I] b; } - model { sigma_theta ~ cauchy(0, 2); theta ~ normal(0, sigma_theta); - + sigma_a ~ cauchy(0, 2); a ~ lognormal(0, sigma_a); - + mu_b ~ normal(0, 5); sigma_b ~ cauchy(0, 2); b ~ normal(mu_b, sigma_b); - - for (i in 1:I) + + for (i in 1 : I) { y[i] ~ bernoulli_logit(a[i] * (theta - b[i])); + } } + + diff --git a/posterior_database/models/stan/kidscore_interaction.stan b/posterior_database/models/stan/kidscore_interaction.stan index 9e41bea4..aa0d9def 100644 --- a/posterior_database/models/stan/kidscore_interaction.stan +++ b/posterior_database/models/stan/kidscore_interaction.stan @@ -2,8 +2,10 @@ data { int N; vector[N] kid_score; vector[N] mom_iq; - vector[N] mom_hs;} -transformed data { // interaction + vector[N] mom_hs; +} +transformed data { + // interaction vector[N] inter; inter = mom_hs .* mom_iq; } @@ -16,3 +18,5 @@ model { kid_score ~ normal(beta[1] + beta[2] * mom_hs + beta[3] * mom_iq + beta[4] * inter, sigma); } + + diff --git a/posterior_database/models/stan/kidscore_interaction_c.stan b/posterior_database/models/stan/kidscore_interaction_c.stan index 07706fd9..f262b3dc 100644 --- a/posterior_database/models/stan/kidscore_interaction_c.stan +++ b/posterior_database/models/stan/kidscore_interaction_c.stan @@ -4,13 +4,14 @@ data { vector[N] mom_hs; vector[N] mom_iq; } -transformed data { // centered predictors +transformed data { + // centered predictors vector[N] c_mom_hs; vector[N] c_mom_iq; vector[N] inter; c_mom_hs = mom_hs - mean(mom_hs); c_mom_iq = mom_iq - mean(mom_iq); - inter = c_mom_hs .* c_mom_iq; + inter = c_mom_hs .* c_mom_iq; } parameters { vector[4] beta; @@ -20,3 +21,5 @@ model { kid_score ~ normal(beta[1] + beta[2] * c_mom_hs + beta[3] * c_mom_iq + beta[4] * inter, sigma); } + + diff --git a/posterior_database/models/stan/kidscore_interaction_c2.stan b/posterior_database/models/stan/kidscore_interaction_c2.stan index 56d42ecb..efb35d11 100644 --- a/posterior_database/models/stan/kidscore_interaction_c2.stan +++ b/posterior_database/models/stan/kidscore_interaction_c2.stan @@ -4,13 +4,14 @@ data { vector[N] mom_hs; vector[N] mom_iq; } -transformed data { // centering on reference points +transformed data { + // centering on reference points vector[N] c2_mom_hs; vector[N] c2_mom_iq; vector[N] inter; c2_mom_hs = mom_hs - 0.5; c2_mom_iq = mom_iq - 100; - inter = c2_mom_hs .* c2_mom_iq; + inter = c2_mom_hs .* c2_mom_iq; } parameters { vector[4] beta; @@ -20,3 +21,5 @@ model { kid_score ~ normal(beta[1] + beta[2] * c2_mom_hs + beta[3] * c2_mom_iq + beta[4] * inter, sigma); } + + diff --git a/posterior_database/models/stan/kidscore_interaction_z.stan b/posterior_database/models/stan/kidscore_interaction_z.stan index 24dbc085..eb9e2e5b 100644 --- a/posterior_database/models/stan/kidscore_interaction_z.stan +++ b/posterior_database/models/stan/kidscore_interaction_z.stan @@ -4,13 +4,14 @@ data { vector[N] mom_hs; vector[N] mom_iq; } -transformed data { // standardizing +transformed data { + // standardizing vector[N] z_mom_hs; vector[N] z_mom_iq; vector[N] inter; z_mom_hs = (mom_hs - mean(mom_hs)) / (2 * sd(mom_hs)); z_mom_iq = (mom_iq - mean(mom_iq)) / (2 * sd(mom_iq)); - inter = z_mom_hs .* z_mom_iq; + inter = z_mom_hs .* z_mom_iq; } parameters { vector[4] beta; @@ -20,3 +21,5 @@ model { kid_score ~ normal(beta[1] + beta[2] * z_mom_hs + beta[3] * z_mom_iq + beta[4] * inter, sigma); } + + diff --git a/posterior_database/models/stan/kidscore_mom_work.stan b/posterior_database/models/stan/kidscore_mom_work.stan index 658ed467..40e209b6 100644 --- a/posterior_database/models/stan/kidscore_mom_work.stan +++ b/posterior_database/models/stan/kidscore_mom_work.stan @@ -1,13 +1,13 @@ data { int N; vector[N] kid_score; - int mom_work[N]; + array[N] int mom_work; } transformed data { vector[N] work2; vector[N] work3; vector[N] work4; - for (i in 1:N) { + for (i in 1 : N) { work2[i] = mom_work[i] == 2; work3[i] = mom_work[i] == 3; work4[i] = mom_work[i] == 4; @@ -21,3 +21,5 @@ model { kid_score ~ normal(beta[1] + beta[2] * work2 + beta[3] * work3 + beta[4] * work4, sigma); } + + diff --git a/posterior_database/models/stan/kidscore_momhs.stan b/posterior_database/models/stan/kidscore_momhs.stan index 6b7ae863..5987d7af 100644 --- a/posterior_database/models/stan/kidscore_momhs.stan +++ b/posterior_database/models/stan/kidscore_momhs.stan @@ -11,3 +11,5 @@ model { sigma ~ cauchy(0, 2.5); kid_score ~ normal(beta[1] + beta[2] * mom_hs, sigma); } + + diff --git a/posterior_database/models/stan/kidscore_momhsiq.stan b/posterior_database/models/stan/kidscore_momhsiq.stan index 0b780977..c35d2329 100644 --- a/posterior_database/models/stan/kidscore_momhsiq.stan +++ b/posterior_database/models/stan/kidscore_momhsiq.stan @@ -12,3 +12,5 @@ model { sigma ~ cauchy(0, 2.5); kid_score ~ normal(beta[1] + beta[2] * mom_hs + beta[3] * mom_iq, sigma); } + + diff --git a/posterior_database/models/stan/kidscore_momiq.stan b/posterior_database/models/stan/kidscore_momiq.stan index 726350e8..f6cedd20 100644 --- a/posterior_database/models/stan/kidscore_momiq.stan +++ b/posterior_database/models/stan/kidscore_momiq.stan @@ -11,3 +11,5 @@ model { sigma ~ cauchy(0, 2.5); kid_score ~ normal(beta[1] + beta[2] * mom_iq, sigma); } + + diff --git a/posterior_database/models/stan/kilpisjarvi.stan b/posterior_database/models/stan/kilpisjarvi.stan index 0d264bc2..dca7dea9 100644 --- a/posterior_database/models/stan/kilpisjarvi.stan +++ b/posterior_database/models/stan/kilpisjarvi.stan @@ -5,19 +5,19 @@ data { vector[N] y; // real xpred; // input location for prediction real pmualpha; // prior mean for alpha - real psalpha; // prior std for alpha - real pmubeta; // prior mean for beta - real psbeta; // prior std for beta + real psalpha; // prior std for alpha + real pmubeta; // prior mean for beta + real psbeta; // prior std for beta } - parameters { real alpha; real beta; real sigma; } - model { alpha ~ normal(pmualpha, psalpha); beta ~ normal(pmubeta, psbeta); y ~ normal(alpha + beta * x, sigma); } + + diff --git a/posterior_database/models/stan/kronecker_gp.stan b/posterior_database/models/stan/kronecker_gp.stan index d5bacad3..ec7dc549 100644 --- a/posterior_database/models/stan/kronecker_gp.stan +++ b/posterior_database/models/stan/kronecker_gp.stan @@ -1,86 +1,89 @@ functions { - // return (A \otimes B) v where: - // A is n1 x n1, B = n2 x n2, V = n2 x n1 = reshape(v,n2,n1) - matrix kron_mvprod(matrix A, matrix B, matrix V) { - return transpose(A * transpose(B * V)); - } - // A is a length n1 vector, B is a length n2 vector. - // Treating them as diagonal matrices, this calculates: - // v = (A \otimes B + sigma2)ˆ{-1} - // and returns the n1 x n2 matrix V = reshape(v,n1,n2) - matrix calculate_eigenvalues(vector A, vector B, int n1, int n2, real sigma2) { - matrix[n1,n2] e; - for(i in 1:n1) { - for(j in 1:n2) { - e[i,j] = (A[i] * B[j] + sigma2); - } } - return(e); - } + // return (A \otimes B) v where: + // A is n1 x n1, B = n2 x n2, V = n2 x n1 = reshape(v,n2,n1) + matrix kron_mvprod(matrix A, matrix B, matrix V) { + return transpose(A * transpose(B * V)); + } + // A is a length n1 vector, B is a length n2 vector. + // Treating them as diagonal matrices, this calculates: + // v = (A \otimes B + sigma2)ˆ{-1} + // and returns the n1 x n2 matrix V = reshape(v,n1,n2) + matrix calculate_eigenvalues(vector A, vector B, int n1, int n2, + real sigma2) { + matrix[n1, n2] e; + for (i in 1 : n1) { + for (j in 1 : n2) { + e[i, j] = A[i] * B[j] + sigma2; + } + } + return e; + } } data { - int n1; - int n2; // categories for learning cross-type correlations - vector[n2] x1; // observation locations (e.g. timestamps) - matrix[n2,n1] y; // NB: this should be reshape(y, n2, n1), + int n1; + int n2; // categories for learning cross-type correlations + vector[n2] x1; // observation locations (e.g. timestamps) + matrix[n2, n1] y; // NB: this should be reshape(y, n2, n1), } transformed data { - matrix[n1, n1] xd; - -// where y corresponds to expand.grid(x2,x1). // To double-check, make sure that y[i,j] is // the observation from category x2[i] -// at location x1[j] - for (i in 1:n1) { - xd[i, i] = 0; - for (j in (i+1):n1) { - xd[i, j] = -((x1[i]-x1[j]) ^ 2); - xd[j, i] = xd[i, j]; - } + matrix[n1, n1] xd; + + // where y corresponds to expand.grid(x2,x1). // To double-check, make sure that y[i,j] is // the observation from category x2[i] + // at location x1[j] + for (i in 1 : n1) { + xd[i, i] = 0; + for (j in (i + 1) : n1) { + xd[i, j] = -((x1[i] - x1[j]) ^ 2); + xd[j, i] = xd[i, j]; + } } } parameters { - real var1; // signal variance - real bw1; // this is equivalent to 1/sqrt(length-scale) - - cholesky_factor_corr[n2] L; - real sigma1; + real var1; // signal variance + real bw1; // this is equivalent to 1/sqrt(length-scale) + + cholesky_factor_corr[n2] L; + real sigma1; } - transformed parameters { - matrix[n1, n1] Sigma1; - matrix[n1, n1] Q1; - vector[n1] R1; - matrix[n2, n2] Q2; - vector[n2] R2; - matrix[n2,n1] eigenvalues; - matrix[n2, n2] Lambda = multiply_lower_tri_self_transpose(L); - - Sigma1 = var1 * exp(xd * bw1); - - for(i in 1:n1) - Sigma1[i,i] = Sigma1[i,i] + .00001; - - Q1 = eigenvectors_sym(Sigma1); - R1 = eigenvalues_sym(Sigma1); - Q2 = eigenvectors_sym(Lambda); - R2 = eigenvalues_sym(Lambda); - eigenvalues = calculate_eigenvalues(R2,R1,n2,n1,sigma1); + matrix[n1, n1] Sigma1; + matrix[n1, n1] Q1; + vector[n1] R1; + matrix[n2, n2] Q2; + vector[n2] R2; + matrix[n2, n1] eigenvalues; + matrix[n2, n2] Lambda = multiply_lower_tri_self_transpose(L); + + Sigma1 = var1 * exp(xd * bw1); + + for (i in 1 : n1) { + Sigma1[i, i] = Sigma1[i, i] + .00001; + } + + Q1 = eigenvectors_sym(Sigma1); + R1 = eigenvalues_sym(Sigma1); + Q2 = eigenvectors_sym(Lambda); + R2 = eigenvalues_sym(Lambda); + eigenvalues = calculate_eigenvalues(R2, R1, n2, n1, sigma1); } - model { - var1 ~ lognormal(0,1); - bw1 ~ cauchy(0,2.5); - sigma1 ~ lognormal(0,1); - L ~ lkj_corr_cholesky(2); - - target += - -0.5 * sum(y .* kron_mvprod(Q1,Q2, // calculates -0.5 * y’ (K1 \otimes K2) y - kron_mvprod(transpose(Q1),transpose(Q2),y) ./ eigenvalues)) - -0.5 * sum(log(eigenvalues)); // calculates logdet(K1 \otimes K2) + var1 ~ lognormal(0, 1); + bw1 ~ cauchy(0, 2.5); + sigma1 ~ lognormal(0, 1); + L ~ lkj_corr_cholesky(2); + + target += -0.5 + * sum(y + .* kron_mvprod(Q1, Q2, + // calculates -0.5 * y’ (K1 \otimes K2) y + kron_mvprod(transpose(Q1), transpose(Q2), y) + ./ eigenvalues)) + - 0.5 * sum(log(eigenvalues)); // calculates logdet(K1 \otimes K2) } -generated quantities{ +generated quantities { //real test = -0.5 * sum(y .* kron_mvprod(Q1,Q2, // calculates -0.5 * y’ (K1 \otimes K2) y // kron_mvprod(transpose(Q1),transpose(Q2),y) ./ eigenvalues)) // -0.5 * sum(log(eigenvalues)); } - - // how do you sample cmdstanr? generate quantities + diff --git a/posterior_database/models/stan/ldaK2.stan b/posterior_database/models/stan/ldaK2.stan index 97a2e73f..23de5fae 100644 --- a/posterior_database/models/stan/ldaK2.stan +++ b/posterior_database/models/stan/ldaK2.stan @@ -1,32 +1,39 @@ data { - int V; // num words - int M; // num docs - int N; // total word instances - int w[N]; // word n - int doc[N]; // doc ID for word n + int V; // num words + int M; // num docs + int N; // total word instances + array[N] int w; // word n + array[N] int doc; // doc ID for word n } transformed data { int K = 2; vector[K] alpha; // topic prior vector[V] beta; // word prior - for (k in 1:K) + for (k in 1 : K) { alpha[k] = 1; - for (v in 1:V) + } + for (v in 1 : V) { beta[v] = 1; + } } parameters { - simplex[K] theta[M]; // topic dist for doc m - simplex[V] phi[K]; // word dist for topic k + array[M] simplex[K] theta; // topic dist for doc m + array[K] simplex[V] phi; // word dist for topic k } model { - for (m in 1:M) - theta[m] ~ dirichlet(alpha); // prior - for (k in 1:K) - phi[k] ~ dirichlet(beta); // prior - for (n in 1:N) { - real gamma[K]; - for (k in 1:K) + for (m in 1 : M) { + theta[m] ~ dirichlet(alpha); + } // prior + for (k in 1 : K) { + phi[k] ~ dirichlet(beta); + } // prior + for (n in 1 : N) { + array[K] real gamma; + for (k in 1 : K) { gamma[k] = log(theta[doc[n], k]) + log(phi[k, w[n]]); - target += log_sum_exp(gamma); // likelihood; + } + target += log_sum_exp(gamma); // likelihood; } } + + diff --git a/posterior_database/models/stan/ldaK5.stan b/posterior_database/models/stan/ldaK5.stan index f9a740f5..fc1c8b00 100644 --- a/posterior_database/models/stan/ldaK5.stan +++ b/posterior_database/models/stan/ldaK5.stan @@ -1,25 +1,30 @@ data { - int V; // num words - int M; // num docs - int N; // total word instances - int w[N]; // word n - int doc[N]; // doc ID for word n - vector[5] alpha; // topic prior - vector[V] beta; // word prior + int V; // num words + int M; // num docs + int N; // total word instances + array[N] int w; // word n + array[N] int doc; // doc ID for word n + vector[5] alpha; // topic prior + vector[V] beta; // word prior } parameters { - simplex[5] theta[M]; // topic dist for doc m - simplex[V] phi[5]; // word dist for topic k + array[M] simplex[5] theta; // topic dist for doc m + array[5] simplex[V] phi; // word dist for topic k } model { - for (m in 1:M) - theta[m] ~ dirichlet(alpha); // prior - for (k in 1:5) - phi[k] ~ dirichlet(beta); // prior - for (n in 1:N) { - real gamma[5]; - for (k in 1:5) + for (m in 1 : M) { + theta[m] ~ dirichlet(alpha); + } // prior + for (k in 1 : 5) { + phi[k] ~ dirichlet(beta); + } // prior + for (n in 1 : N) { + array[5] real gamma; + for (k in 1 : 5) { gamma[k] = log(theta[doc[n], k]) + log(phi[k, w[n]]); - target += log_sum_exp(gamma); // likelihood; + } + target += log_sum_exp(gamma); // likelihood; } } + + diff --git a/posterior_database/models/stan/log10earn_height.stan b/posterior_database/models/stan/log10earn_height.stan index 9bf6ba79..94cc1a4e 100644 --- a/posterior_database/models/stan/log10earn_height.stan +++ b/posterior_database/models/stan/log10earn_height.stan @@ -3,9 +3,10 @@ data { vector[N] earn; vector[N] height; } -transformed data { // log 10 transformation +transformed data { + // log 10 transformation vector[N] log10_earn; - for (i in 1:N) { + for (i in 1 : N) { log10_earn[i] = log10(earn[i]); } } @@ -16,3 +17,5 @@ parameters { model { log10_earn ~ normal(beta[1] + beta[2] * height, sigma); } + + diff --git a/posterior_database/models/stan/logearn_height.stan b/posterior_database/models/stan/logearn_height.stan index 7f8832fa..bd9760cb 100644 --- a/posterior_database/models/stan/logearn_height.stan +++ b/posterior_database/models/stan/logearn_height.stan @@ -3,7 +3,8 @@ data { vector[N] earn; vector[N] height; } -transformed data { // log transformation +transformed data { + // log transformation vector[N] log_earn; log_earn = log(earn); } @@ -14,3 +15,5 @@ parameters { model { log_earn ~ normal(beta[1] + beta[2] * height, sigma); } + + diff --git a/posterior_database/models/stan/logearn_height_male.stan b/posterior_database/models/stan/logearn_height_male.stan index fc66737f..75fb5985 100644 --- a/posterior_database/models/stan/logearn_height_male.stan +++ b/posterior_database/models/stan/logearn_height_male.stan @@ -4,7 +4,8 @@ data { vector[N] height; vector[N] male; } -transformed data { // log transformation +transformed data { + // log transformation vector[N] log_earn; log_earn = log(earn); } @@ -15,3 +16,5 @@ parameters { model { log_earn ~ normal(beta[1] + beta[2] * height + beta[3] * male, sigma); } + + diff --git a/posterior_database/models/stan/logearn_interaction.stan b/posterior_database/models/stan/logearn_interaction.stan index a52560db..5a6a6cfa 100644 --- a/posterior_database/models/stan/logearn_interaction.stan +++ b/posterior_database/models/stan/logearn_interaction.stan @@ -5,10 +5,10 @@ data { vector[N] male; } transformed data { - vector[N] log_earn; // log transformation - vector[N] inter; // interaction + vector[N] log_earn; // log transformation + vector[N] inter; // interaction log_earn = log(earn); - inter = height .* male; + inter = height .* male; } parameters { vector[4] beta; @@ -18,3 +18,5 @@ model { log_earn ~ normal(beta[1] + beta[2] * height + beta[3] * male + beta[4] * inter, sigma); } + + diff --git a/posterior_database/models/stan/logearn_interaction_z.stan b/posterior_database/models/stan/logearn_interaction_z.stan index 3354cdd2..853288c4 100644 --- a/posterior_database/models/stan/logearn_interaction_z.stan +++ b/posterior_database/models/stan/logearn_interaction_z.stan @@ -5,12 +5,12 @@ data { vector[N] male; } transformed data { - vector[N] log_earn; // log transformation - vector[N] z_height; // standardization - vector[N] inter; // interaction + vector[N] log_earn; // log transformation + vector[N] z_height; // standardization + vector[N] inter; // interaction log_earn = log(earn); z_height = (height - mean(height)) / sd(height); - inter = z_height .* male; + inter = z_height .* male; } parameters { vector[4] beta; @@ -18,5 +18,7 @@ parameters { } model { log_earn ~ normal(beta[1] + beta[2] * z_height + beta[3] * male - + beta[4] * inter, sigma); + + beta[4] * inter, sigma); } + + diff --git a/posterior_database/models/stan/logearn_logheight_male.stan b/posterior_database/models/stan/logearn_logheight_male.stan index 2f916174..dacfb1f9 100644 --- a/posterior_database/models/stan/logearn_logheight_male.stan +++ b/posterior_database/models/stan/logearn_logheight_male.stan @@ -5,15 +5,18 @@ data { vector[N] male; } transformed data { - vector[N] log_earn; // log transformations + vector[N] log_earn; // log transformations vector[N] log_height; - log_earn = log(earn); + log_earn = log(earn); log_height = log(height); } parameters { vector[3] beta; real sigma; } -model { // vectorization +model { + // vectorization log_earn ~ normal(beta[1] + beta[2] * log_height + beta[3] * male, sigma); } + + diff --git a/posterior_database/models/stan/logistic_regression_rhs.stan b/posterior_database/models/stan/logistic_regression_rhs.stan index 1c215601..f3c83dac 100644 --- a/posterior_database/models/stan/logistic_regression_rhs.stan +++ b/posterior_database/models/stan/logistic_regression_rhs.stan @@ -1,48 +1,49 @@ data { - int n; // number of observations - int d; // number of predictors - int y[n]; // outputs - matrix[n,d] x; // inputs - real scale_icept; // prior std for the intercept - real scale_global; // scale for the half-t prior for tau - real nu_global; // degrees of freedom for the half-t priors for tau - real nu_local; // degrees of freedom for the half-t priors for lambdas - // (nu_local = 1 corresponds to the horseshoe) - real slab_scale; // for the regularized horseshoe + int n; // number of observations + int d; // number of predictors + array[n] int y; // outputs + matrix[n, d] x; // inputs + real scale_icept; // prior std for the intercept + real scale_global; // scale for the half-t prior for tau + real nu_global; // degrees of freedom for the half-t priors for tau + real nu_local; // degrees of freedom for the half-t priors for lambdas + // (nu_local = 1 corresponds to the horseshoe) + real slab_scale; // for the regularized horseshoe real slab_df; } - parameters { real beta0; - vector[d] z; // for non-centered parameterization - real tau; // global shrinkage parameter - vector [d] lambda; // local shrinkage parameter + vector[d] z; // for non-centered parameterization + real tau; // global shrinkage parameter + vector[d] lambda; // local shrinkage parameter real caux; } - transformed parameters { - vector[d] beta; // regression coefficients + vector[d] beta; // regression coefficients { - vector[d] lambda_tilde; // 'truncated' local shrinkage parameter + vector[d] lambda_tilde; // 'truncated' local shrinkage parameter real c = slab_scale * sqrt(caux); // slab scale - lambda_tilde = sqrt( c^2 * square(lambda) ./ (c^2 + tau^2*square(lambda))); - beta = z .* lambda_tilde*tau; + lambda_tilde = sqrt(c ^ 2 * square(lambda) + ./ (c ^ 2 + tau ^ 2 * square(lambda))); + beta = z .* lambda_tilde * tau; } } - model { // half-t priors for lambdas and tau, and inverse-gamma for c^2 z ~ std_normal(); lambda ~ student_t(nu_local, 0, 1); - tau ~ student_t(nu_global, 0, scale_global*2); - caux ~ inv_gamma(0.5*slab_df, 0.5*slab_df); + tau ~ student_t(nu_global, 0, scale_global * 2); + caux ~ inv_gamma(0.5 * slab_df, 0.5 * slab_df); beta0 ~ normal(0, scale_icept); - + y ~ bernoulli_logit_glm(x, beta0, beta); } generated quantities { - vector[n] f = beta0 + x*beta; + vector[n] f = beta0 + x * beta; vector[n] log_lik; - for (i in 1:n) + for (i in 1 : n) { log_lik[i] = bernoulli_logit_glm_lpmf({y[i]} | [x[i]], beta0, beta); + } } + + diff --git a/posterior_database/models/stan/logmesquite.stan b/posterior_database/models/stan/logmesquite.stan index 7adec596..d1980a8a 100644 --- a/posterior_database/models/stan/logmesquite.stan +++ b/posterior_database/models/stan/logmesquite.stan @@ -8,19 +8,20 @@ data { vector[N] density; vector[N] group; } -transformed data { // log transformations +transformed data { + // log transformations vector[N] log_weight; vector[N] log_diam1; vector[N] log_diam2; vector[N] log_canopy_height; vector[N] log_total_height; vector[N] log_density; - log_weight = log(weight); - log_diam1 = log(diam1); - log_diam2 = log(diam2); + log_weight = log(weight); + log_diam1 = log(diam1); + log_diam2 = log(diam2); log_canopy_height = log(canopy_height); - log_total_height = log(total_height); - log_density = log(density); + log_total_height = log(total_height); + log_density = log(density); } parameters { vector[7] beta; @@ -28,7 +29,9 @@ parameters { } model { log_weight ~ normal(beta[1] + beta[2] * log_diam1 + beta[3] * log_diam2 - + beta[4] * log_canopy_height + beta[5] * log_total_height - + beta[6] * log_density + beta[7] * group, - sigma); + + beta[4] * log_canopy_height + + beta[5] * log_total_height + beta[6] * log_density + + beta[7] * group, sigma); } + + diff --git a/posterior_database/models/stan/logmesquite_logva.stan b/posterior_database/models/stan/logmesquite_logva.stan index 74f113a9..ea10bc30 100644 --- a/posterior_database/models/stan/logmesquite_logva.stan +++ b/posterior_database/models/stan/logmesquite_logva.stan @@ -10,9 +10,9 @@ transformed data { vector[N] log_weight; vector[N] log_canopy_volume; vector[N] log_canopy_area; - log_weight = log(weight); + log_weight = log(weight); log_canopy_volume = log(diam1 .* diam2 .* canopy_height); - log_canopy_area = log(diam1 .* diam2); + log_canopy_area = log(diam1 .* diam2); } parameters { vector[4] beta; @@ -20,6 +20,7 @@ parameters { } model { log_weight ~ normal(beta[1] + beta[2] * log_canopy_volume - + beta[3] * log_canopy_area + beta[4] * group, - sigma); + + beta[3] * log_canopy_area + beta[4] * group, sigma); } + + diff --git a/posterior_database/models/stan/logmesquite_logvas.stan b/posterior_database/models/stan/logmesquite_logvas.stan index ae1b2e4e..908eab9e 100644 --- a/posterior_database/models/stan/logmesquite_logvas.stan +++ b/posterior_database/models/stan/logmesquite_logvas.stan @@ -15,12 +15,12 @@ transformed data { vector[N] log_canopy_shape; vector[N] log_total_height; vector[N] log_density; - log_weight = log(weight); + log_weight = log(weight); log_canopy_volume = log(diam1 .* diam2 .* canopy_height); - log_canopy_area = log(diam1 .* diam2); - log_canopy_shape = log(diam1 ./ diam2); - log_total_height = log(total_height); - log_density = log(density); + log_canopy_area = log(diam1 .* diam2); + log_canopy_shape = log(diam1 ./ diam2); + log_total_height = log(total_height); + log_density = log(density); } parameters { vector[7] beta; @@ -28,8 +28,10 @@ parameters { } model { log_weight ~ normal(beta[1] + beta[2] * log_canopy_volume - + beta[3] * log_canopy_area + beta[4] * log_canopy_shape + + beta[3] * log_canopy_area + + beta[4] * log_canopy_shape + beta[5] * log_total_height + beta[6] * log_density - + beta[7] * group, - sigma); + + beta[7] * group, sigma); } + + diff --git a/posterior_database/models/stan/logmesquite_logvash.stan b/posterior_database/models/stan/logmesquite_logvash.stan index 7fe62cdc..49772a9e 100644 --- a/posterior_database/models/stan/logmesquite_logvash.stan +++ b/posterior_database/models/stan/logmesquite_logvash.stan @@ -13,11 +13,11 @@ transformed data { vector[N] log_canopy_area; vector[N] log_canopy_shape; vector[N] log_total_height; - log_weight = log(weight); + log_weight = log(weight); log_canopy_volume = log(diam1 .* diam2 .* canopy_height); - log_canopy_area = log(diam1 .* diam2); - log_canopy_shape = log(diam1 ./ diam2); - log_total_height = log(total_height); + log_canopy_area = log(diam1 .* diam2); + log_canopy_shape = log(diam1 ./ diam2); + log_total_height = log(total_height); } parameters { vector[6] beta; @@ -25,7 +25,9 @@ parameters { } model { log_weight ~ normal(beta[1] + beta[2] * log_canopy_volume - + beta[3] * log_canopy_area + beta[4] * log_canopy_shape - + beta[5] * log_total_height + beta[6] * group, - sigma); + + beta[3] * log_canopy_area + + beta[4] * log_canopy_shape + + beta[5] * log_total_height + beta[6] * group, sigma); } + + diff --git a/posterior_database/models/stan/logmesquite_logvolume.stan b/posterior_database/models/stan/logmesquite_logvolume.stan index 25a529e2..7b20d113 100644 --- a/posterior_database/models/stan/logmesquite_logvolume.stan +++ b/posterior_database/models/stan/logmesquite_logvolume.stan @@ -8,7 +8,7 @@ data { transformed data { vector[N] log_weight; vector[N] log_canopy_volume; - log_weight = log(weight); + log_weight = log(weight); log_canopy_volume = log(diam1 .* diam2 .* canopy_height); } parameters { @@ -18,3 +18,5 @@ parameters { model { log_weight ~ normal(beta[1] + beta[2] * log_canopy_volume, sigma); } + + diff --git a/posterior_database/models/stan/losscurve_sislob.stan b/posterior_database/models/stan/losscurve_sislob.stan index acb1db31..bf1d4ff3 100644 --- a/posterior_database/models/stan/losscurve_sislob.stan +++ b/posterior_database/models/stan/losscurve_sislob.stan @@ -1,120 +1,113 @@ functions { - real growth_factor_weibull(real t, real omega, real theta) { - return 1 - exp(-(t/theta)^omega); - } - - real growth_factor_loglogistic(real t, real omega, real theta) { - real pow_t_omega = t^omega; - return pow_t_omega / (pow_t_omega + theta^omega); - } + real growth_factor_weibull(real t, real omega, real theta) { + return 1 - exp(-(t / theta) ^ omega); + } + + real growth_factor_loglogistic(real t, real omega, real theta) { + real pow_t_omega = t ^ omega; + return pow_t_omega / (pow_t_omega + theta ^ omega); + } } - data { - int growthmodel_id; - - int n_data; - int n_time; - int n_cohort; - - int cohort_id[n_data]; - int t_idx[n_data]; - - int cohort_maxtime[n_cohort]; - - vector[n_time] t_value; - - vector[n_cohort] premium; - vector[n_data] loss; + int growthmodel_id; + + int n_data; + int n_time; + int n_cohort; + + array[n_data] int cohort_id; + array[n_data] int t_idx; + + array[n_cohort] int cohort_maxtime; + + vector[n_time] t_value; + + vector[n_cohort] premium; + vector[n_data] loss; } - parameters { - real omega; - real theta; - - vector[n_cohort] LR; - - real mu_LR; - real sd_LR; - - real loss_sd; + real omega; + real theta; + + vector[n_cohort] LR; + + real mu_LR; + real sd_LR; + + real loss_sd; } - transformed parameters { - vector[n_time] gf; - vector[n_data] lm; - - for(i in 1:n_time) { - gf[i] = growthmodel_id == 1 ? - growth_factor_weibull (t_value[i], omega, theta) : - growth_factor_loglogistic(t_value[i], omega, theta); - } - - for (i in 1:n_data) { - lm[i] = LR[cohort_id[i]] * premium[cohort_id[i]] * gf[t_idx[i]]; - } + vector[n_time] gf; + vector[n_data] lm; + + for (i in 1 : n_time) { + gf[i] = growthmodel_id == 1 + ? growth_factor_weibull(t_value[i], omega, theta) + : growth_factor_loglogistic(t_value[i], omega, theta); + } + + for (i in 1 : n_data) { + lm[i] = LR[cohort_id[i]] * premium[cohort_id[i]] * gf[t_idx[i]]; + } } - model { - mu_LR ~ normal(0, 0.5); - sd_LR ~ lognormal(0, 0.5); - - LR ~ lognormal(mu_LR, sd_LR); - - loss_sd ~ lognormal(0, 0.7); - - omega ~ lognormal(0, 0.5); - theta ~ lognormal(0, 0.5); - - loss ~ normal(lm, (loss_sd * premium)[cohort_id]); + mu_LR ~ normal(0, 0.5); + sd_LR ~ lognormal(0, 0.5); + + LR ~ lognormal(mu_LR, sd_LR); + + loss_sd ~ lognormal(0, 0.7); + + omega ~ lognormal(0, 0.5); + theta ~ lognormal(0, 0.5); + + loss ~ normal(lm, (loss_sd * premium)[cohort_id]); } - - generated quantities { - vector[n_time] loss_sample[n_cohort]; - vector[n_time] loss_prediction[n_cohort]; - vector[n_time] step_ratio[n_cohort]; - - real mu_LR_exp; - - real ppc_minLR; - real ppc_maxLR; - real ppc_EFC; - - for(i in 1:n_cohort) { - step_ratio[i] = rep_vector(1, n_time); - loss_sample[i] = LR[i] * premium[i] * gf; + array[n_cohort] vector[n_time] loss_sample; + array[n_cohort] vector[n_time] loss_prediction; + array[n_cohort] vector[n_time] step_ratio; + + real mu_LR_exp; + + real ppc_minLR; + real ppc_maxLR; + real ppc_EFC; + + for (i in 1 : n_cohort) { + step_ratio[i] = rep_vector(1, n_time); + loss_sample[i] = LR[i] * premium[i] * gf; + } + + mu_LR_exp = exp(mu_LR); + + for (i in 1 : n_data) { + loss_prediction[cohort_id[i], t_idx[i]] = loss[i]; + } + + for (i in 1 : n_cohort) { + for (j in 2 : n_time) { + step_ratio[i, j] = gf[t_idx[j]] / gf[t_idx[j - 1]]; } - - - - mu_LR_exp = exp(mu_LR); - - for(i in 1:n_data) { - loss_prediction[cohort_id[i], t_idx[i]] = loss[i]; + } + + for (i in 1 : n_cohort) { + for (j in (cohort_maxtime[i] + 1) : n_time) { + loss_prediction[i, j] = loss_prediction[i, j - 1] * step_ratio[i, j]; } + } + + // Create PPC distributions for the max/min of LR + ppc_minLR = min(LR); + ppc_maxLR = max(LR); + + // Create total reserve PPC + ppc_EFC = 0; + + for (i in 1 : n_cohort) { + ppc_EFC = ppc_EFC + loss_prediction[i, n_time] + - loss_prediction[i, cohort_maxtime[i]]; + } +} - for(i in 1:n_cohort) { - for(j in 2:n_time) { - step_ratio[i, j] = gf[t_idx[j]] / gf[t_idx[j-1]]; - } - } - - for(i in 1:n_cohort) { - for(j in (cohort_maxtime[i]+1):n_time) { - loss_prediction[i,j] = loss_prediction[i,j-1] * step_ratio[i,j]; - } - } - - - // Create PPC distributions for the max/min of LR - ppc_minLR = min(LR); - ppc_maxLR = max(LR); - - - // Create total reserve PPC - ppc_EFC = 0; - for(i in 1:n_cohort) { - ppc_EFC = ppc_EFC + loss_prediction[i, n_time] - loss_prediction[i, cohort_maxtime[i]]; - } -} diff --git a/posterior_database/models/stan/lotka_volterra.stan b/posterior_database/models/stan/lotka_volterra.stan index e93914a6..651dfc3f 100644 --- a/posterior_database/models/stan/lotka_volterra.stan +++ b/posterior_database/models/stan/lotka_volterra.stan @@ -1,55 +1,58 @@ functions { - real[] dz_dt(real t, // time - real[] z, // system state {prey, predator} - real[] theta, // parameters - real[] x_r, // unused data - int[] x_i) { + array[] real dz_dt(real t, // time + array[] real z, + // system state {prey, predator} + array[] real theta, // parameters + array[] real x_r, // unused data + array[] int x_i) { real u = z[1]; real v = z[2]; - + real alpha = theta[1]; real beta = theta[2]; real gamma = theta[3]; real delta = theta[4]; - + real du_dt = (alpha - beta * v) * u; real dv_dt = (-gamma + delta * u) * v; - return { du_dt, dv_dt }; + return {du_dt, dv_dt}; } } data { - int N; // number of measurement times - real ts[N]; // measurement times > 0 - real y_init[2]; // initial measured populations - real y[N, 2]; // measured populations + int N; // number of measurement times + array[N] real ts; // measurement times > 0 + array[2] real y_init; // initial measured populations + array[N, 2] real y; // measured populations } parameters { - real theta[4]; // { alpha, beta, gamma, delta } - real z_init[2]; // initial population - real sigma[2]; // measurement errors + array[4] real theta; // { alpha, beta, gamma, delta } + array[2] real z_init; // initial population + array[2] real sigma; // measurement errors } transformed parameters { - real z[N, 2] - = integrate_ode_rk45(dz_dt, z_init, 0, ts, theta, - rep_array(0.0, 0), rep_array(0, 0), - 1e-5, 1e-3, 5e2); + array[N, 2] real z = integrate_ode_rk45(dz_dt, z_init, 0, ts, theta, + rep_array(0.0, 0), rep_array( + 0, 0), 1e-5, 1e-3, 5e2); } model { theta[{1, 3}] ~ normal(1, 0.5); theta[{2, 4}] ~ normal(0.05, 0.05); sigma ~ lognormal(-1, 1); z_init ~ lognormal(log(10), 1); - for (k in 1:2) { + for (k in 1 : 2) { y_init[k] ~ lognormal(log(z_init[k]), sigma[k]); - y[ , k] ~ lognormal(log(z[, k]), sigma[k]); + y[ : , k] ~ lognormal(log(z[ : , k]), sigma[k]); } } generated quantities { - real y_init_rep[2]; - real y_rep[N, 2]; - for (k in 1:2) { + array[2] real y_init_rep; + array[N, 2] real y_rep; + for (k in 1 : 2) { y_init_rep[k] = lognormal_rng(log(z_init[k]), sigma[k]); - for (n in 1:N) + for (n in 1 : N) { y_rep[n, k] = lognormal_rng(log(z[n, k]), sigma[k]); + } } } + + diff --git a/posterior_database/models/stan/low_dim_gauss_mix.stan b/posterior_database/models/stan/low_dim_gauss_mix.stan index 02e45fc3..65e5a63f 100644 --- a/posterior_database/models/stan/low_dim_gauss_mix.stan +++ b/posterior_database/models/stan/low_dim_gauss_mix.stan @@ -1,20 +1,20 @@ data { - int N; - vector[N] y; + int N; + vector[N] y; } - parameters { ordered[2] mu; - real sigma[2]; + array[2] real sigma; real theta; } - model { - sigma ~ normal(0, 2); - mu ~ normal(0, 2); - theta ~ beta(5, 5); - for (n in 1:N) - target += log_mix(theta, - normal_lpdf(y[n] | mu[1], sigma[1]), - normal_lpdf(y[n] | mu[2], sigma[2])); + sigma ~ normal(0, 2); + mu ~ normal(0, 2); + theta ~ beta(5, 5); + for (n in 1 : N) { + target += log_mix(theta, normal_lpdf(y[n] | mu[1], sigma[1]), + normal_lpdf(y[n] | mu[2], sigma[2])); + } } + + diff --git a/posterior_database/models/stan/low_dim_gauss_mix_collapse.stan b/posterior_database/models/stan/low_dim_gauss_mix_collapse.stan index df7e4606..13201390 100644 --- a/posterior_database/models/stan/low_dim_gauss_mix_collapse.stan +++ b/posterior_database/models/stan/low_dim_gauss_mix_collapse.stan @@ -1,20 +1,20 @@ data { - int N; - vector[N] y; + int N; + vector[N] y; } - parameters { vector[2] mu; - real sigma[2]; + array[2] real sigma; real theta; } - model { - sigma ~ normal(0, 2); - mu ~ normal(0, 2); - theta ~ beta(5, 5); - for (n in 1:N) - target += log_mix(theta, - normal_lpdf(y[n] | mu[1], sigma[1]), - normal_lpdf(y[n] | mu[2], sigma[2])); + sigma ~ normal(0, 2); + mu ~ normal(0, 2); + theta ~ beta(5, 5); + for (n in 1 : N) { + target += log_mix(theta, normal_lpdf(y[n] | mu[1], sigma[1]), + normal_lpdf(y[n] | mu[2], sigma[2])); + } } + + diff --git a/posterior_database/models/stan/lsat_model.stan b/posterior_database/models/stan/lsat_model.stan index 4ea155fb..aa3b94f4 100644 --- a/posterior_database/models/stan/lsat_model.stan +++ b/posterior_database/models/stan/lsat_model.stan @@ -1,48 +1,50 @@ - data { int N; // 1000, number of students int R; // 32, number of patterns of results: 2^T int T; // 5, number of questions - int culm[R]; - int response[R,T]; + array[R] int culm; + array[R, T] int response; } - transformed data { - int r[T,N]; + array[T, N] int r; vector[N] ones; - for (j in 1:culm[1]) { - for (k in 1:T) { - r[k,j] = response[1,k]; - } + for (j in 1 : culm[1]) { + for (k in 1 : T) { + r[k, j] = response[1, k]; + } } - for (i in 2:R) { - for (j in (culm[i-1] + 1):culm[i]) { - for (k in 1:T) { - r[k,j] = response[i,k]; + for (i in 2 : R) { + for (j in (culm[i - 1] + 1) : culm[i]) { + for (k in 1 : T) { + r[k, j] = response[i, k]; } } } - for (i in 1:N) - ones[i] = 1.0; + for (i in 1 : N) { + ones[i] = 1.0; + } } parameters { - real alpha[T]; + array[T] real alpha; vector[N] theta; real beta; } model { - alpha ~ normal(0, 100.); - theta ~ normal(0, 1); - beta ~ normal(0.0, 100.); - for(k in 1:T) + alpha ~ normal(0, 100.); + theta ~ normal(0, 1); + beta ~ normal(0.0, 100.); + for (k in 1 : T) { r[k] ~ bernoulli_logit(beta * theta - alpha[k] * ones); + } } - generated quantities { - real mean_alpha; - real a[T]; + real mean_alpha; + array[T] real a; mean_alpha = mean(alpha); - for(t in 1:T) a[t] = alpha[t] - mean_alpha; -} + for (t in 1 : T) { + a[t] = alpha[t] - mean_alpha; + } +} + diff --git a/posterior_database/models/stan/mesquite.stan b/posterior_database/models/stan/mesquite.stan index a68d8a97..0da2adc5 100644 --- a/posterior_database/models/stan/mesquite.stan +++ b/posterior_database/models/stan/mesquite.stan @@ -15,6 +15,7 @@ parameters { model { weight ~ normal(beta[1] + beta[2] * diam1 + beta[3] * diam2 + beta[4] * canopy_height + beta[5] * total_height - + beta[6] * density + beta[7] * group, - sigma); + + beta[6] * density + beta[7] * group, sigma); } + + diff --git a/posterior_database/models/stan/multi_occupancy.stan b/posterior_database/models/stan/multi_occupancy.stan index 17454aac..55f92e10 100644 --- a/posterior_database/models/stan/multi_occupancy.stan +++ b/posterior_database/models/stan/multi_occupancy.stan @@ -1,59 +1,59 @@ functions { matrix cov_matrix_2d(vector sigma, real rho) { - matrix[2,2] Sigma; - Sigma[1,1] = square(sigma[1]); - Sigma[2,2] = square(sigma[2]); - Sigma[1,2] = sigma[1] * sigma[2] * rho; - Sigma[2,1] = Sigma[1,2]; + matrix[2, 2] Sigma; + Sigma[1, 1] = square(sigma[1]); + Sigma[2, 2] = square(sigma[2]); + Sigma[1, 2] = sigma[1] * sigma[2] * rho; + Sigma[2, 1] = Sigma[1, 2]; return Sigma; } - + real lp_observed(int X, int K, real logit_psi, real logit_theta) { - return log_inv_logit(logit_psi) - + binomial_logit_lpmf(X | K, logit_theta); + return log_inv_logit(logit_psi) + binomial_logit_lpmf(X | K, logit_theta); } - + real lp_unobserved(int K, real logit_psi, real logit_theta) { return log_sum_exp(lp_observed(0, K, logit_psi, logit_theta), log1m_inv_logit(logit_psi)); } - + real lp_never_observed(int J, int K, real logit_psi, real logit_theta, real Omega) { - real lp_unavailable = bernoulli_lpmf(0 | Omega); - real lp_available = bernoulli_lpmf(1 | Omega) - + J * lp_unobserved(K, logit_psi, logit_theta); - return log_sum_exp(lp_unavailable, lp_available); - } + real lp_unavailable = bernoulli_lpmf(0 | Omega); + real lp_available = bernoulli_lpmf(1 | Omega) + + J * lp_unobserved(K, logit_psi, logit_theta); + return log_sum_exp(lp_unavailable, lp_available); + } } data { - int J; // sites within region - int K; // visits to sites - int n; // observed species - int X[n,J]; // visits when species i was detected at site j - int S; // superpopulation size + int J; // sites within region + int K; // visits to sites + int n; // observed species + array[n, J] int X; // visits when species i was detected at site j + int S; // superpopulation size } parameters { - real alpha; // site-level occupancy - real beta; // site-level detection - real Omega; // availability of species - - real rho_uv; // correlation of (occupancy, detection) - vector[2] sigma_uv; // sd of (occupancy, detection) + real alpha; // site-level occupancy + real beta; // site-level detection + real Omega; // availability of species + + real rho_uv; // correlation of (occupancy, detection) + vector[2] sigma_uv; // sd of (occupancy, detection) vector[S] uv1; vector[S] uv2; } transformed parameters { - vector[2] uv[S]; // species-level (occupancy, detection) - vector[S] logit_psi; // log odds of occurrence - vector[S] logit_theta; // log odds of detection - for (i in 1:S) { - uv[i,1] = uv1[i]; - uv[i,2] = uv2[i]; - logit_psi[i] = uv[i,1] + alpha; + array[S] vector[2] uv; // species-level (occupancy, detection) + vector[S] logit_psi; // log odds of occurrence + vector[S] logit_theta; // log odds of detection + for (i in 1 : S) { + uv[i, 1] = uv1[i]; + uv[i, 2] = uv2[i]; + logit_psi[i] = uv[i, 1] + alpha; + } + for (i in 1 : S) { + logit_theta[i] = uv[i, 2] + beta; } - for (i in 1:S) - logit_theta[i] = uv[i,2] + beta; } model { // priors @@ -62,41 +62,46 @@ model { sigma_uv ~ cauchy(0, 2.5); (rho_uv + 1) / 2 ~ beta(2, 2); // Parse warnings: uv ~ multi_normal(rep_vector(0, 2), cov_matrix_2d(sigma_uv, rho_uv)); - target += multi_normal_lpdf(uv | rep_vector(0, 2), cov_matrix_2d(sigma_uv, rho_uv)); - Omega ~ beta(2,2); - + target += multi_normal_lpdf(uv | rep_vector(0, 2), cov_matrix_2d(sigma_uv, + rho_uv)); + Omega ~ beta(2, 2); + // likelihood - for (i in 1:n) { + for (i in 1 : n) { 1 ~ bernoulli(Omega); // observed, so available - for (j in 1:J) { - if (X[i,j] > 0) - target += lp_observed(X[i,j], K, logit_psi[i], logit_theta[i]); - else + for (j in 1 : J) { + if (X[i, j] > 0) { + target += lp_observed(X[i, j], K, logit_psi[i], logit_theta[i]); + } else { target += lp_unobserved(K, logit_psi[i], logit_theta[i]); + } } } - for (i in (n + 1):S) + for (i in (n + 1) : S) { target += lp_never_observed(J, K, logit_psi[i], logit_theta[i], Omega); + } } generated quantities { - real E_N = S * Omega; // model-based expectation species - int E_N_2; // posterior simulated species + real E_N = S * Omega; // model-based expectation species + int E_N_2; // posterior simulated species vector[2] sim_uv; real logit_psi_sim; real logit_theta_sim; - + E_N_2 = n; - for (i in (n+1):S) { + for (i in (n + 1) : S) { real lp_unavailable = bernoulli_lpmf(0 | Omega); real lp_available = bernoulli_lpmf(1 | Omega) - + J * lp_unobserved(K, logit_psi[i], logit_theta[i]); + + J * lp_unobserved(K, logit_psi[i], logit_theta[i]); real Pr_available = exp(lp_available - log_sum_exp(lp_unavailable, lp_available)); E_N_2 = E_N_2 + bernoulli_rng(Pr_available); } - - sim_uv = multi_normal_rng(rep_vector(0,2), - cov_matrix_2d(sigma_uv, rho_uv)); + + sim_uv = multi_normal_rng(rep_vector(0, 2), + cov_matrix_2d(sigma_uv, rho_uv)); logit_psi_sim = alpha + sim_uv[1]; logit_theta_sim = beta + sim_uv[2]; } + + diff --git a/posterior_database/models/stan/nes.stan b/posterior_database/models/stan/nes.stan index ff43b308..30dd619e 100644 --- a/posterior_database/models/stan/nes.stan +++ b/posterior_database/models/stan/nes.stan @@ -6,27 +6,29 @@ data { vector[N] educ1; vector[N] gender; vector[N] income; - int age_discrete[N]; + array[N] int age_discrete; } transformed data { - vector[N] age30_44; // age as factor + vector[N] age30_44; // age as factor vector[N] age45_64; vector[N] age65up; - - for (n in 1:N) { + + for (n in 1 : N) { age30_44[n] = age_discrete[n] == 2; age45_64[n] = age_discrete[n] == 3; - age65up[n] = age_discrete[n] == 4; + age65up[n] = age_discrete[n] == 4; } } parameters { vector[9] beta; real sigma; } -model { // vectorization +model { + // vectorization partyid7 ~ normal(beta[1] + beta[2] * real_ideo + beta[3] * race_adj + beta[4] * age30_44 + beta[5] * age45_64 - + beta[6] * age65up + beta[7] * educ1 - + beta[8] * gender + beta[9] * income, - sigma); + + beta[6] * age65up + beta[7] * educ1 + beta[8] * gender + + beta[9] * income, sigma); } + + diff --git a/posterior_database/models/stan/nes_logit_model.stan b/posterior_database/models/stan/nes_logit_model.stan index ca9bf2de..825af814 100644 --- a/posterior_database/models/stan/nes_logit_model.stan +++ b/posterior_database/models/stan/nes_logit_model.stan @@ -1,10 +1,10 @@ data { int N; vector[N] income; - int vote[N]; + array[N] int vote; } transformed data { - matrix[N,1] x = [income']'; + matrix[N, 1] x = [income']'; } parameters { real alpha; @@ -14,3 +14,4 @@ model { vote ~ bernoulli_logit_glm(x, alpha, beta); } + diff --git a/posterior_database/models/stan/nn_rbm1bJ10.stan b/posterior_database/models/stan/nn_rbm1bJ10.stan index 89900d66..57f0dd98 100644 --- a/posterior_database/models/stan/nn_rbm1bJ10.stan +++ b/posterior_database/models/stan/nn_rbm1bJ10.stan @@ -1,24 +1,22 @@ data { - int N; // observations (Full MNIST: 60K) - int M; // predictors (MNIST: 784) - matrix[N, M] x; // data matrix (Full MNIST: 60K x 784 = 47M) - int K; // number of categories (MNIST: 10) - int y[N]; // categories + int N; // observations (Full MNIST: 60K) + int M; // predictors (MNIST: 784) + matrix[N, M] x; // data matrix (Full MNIST: 60K x 784 = 47M) + int K; // number of categories (MNIST: 10) + array[N] int y; // categories } - -transformed data{ +transformed data { int J = 10; // number of hidden units (e.g. 100) - + // prior parametrization in Lampinen and Vehtari (2001) real nu_alpha = 0.5; - real s2_0_alpha = (0.05 / M^(1/nu_alpha))^2; + real s2_0_alpha = (0.05 / M ^ (1 / nu_alpha)) ^ 2; real nu_beta = 0.5; - real s2_0_beta = (0.05 / J^(1/nu_beta))^2; - + real s2_0_beta = (0.05 / J ^ (1 / nu_beta)) ^ 2; + vector[N] ones = rep_vector(1, N); matrix[N, M + 1] x1 = append_col(ones, x); } - parameters { real sigma2_alpha; real sigma2_beta; @@ -27,18 +25,23 @@ parameters { row_vector[J] alpha1; row_vector[K - 1] beta1; } - model { - matrix[N, K] v = append_col(ones, (append_col(ones, tanh(x1 * append_row(alpha1, alpha))) * append_row(beta1, beta))); - + matrix[N, K] v = append_col(ones, + append_col(ones, + tanh(x1 * append_row(alpha1, alpha))) + * append_row(beta1, beta)); + // Priors alpha1 ~ normal(0, 1); beta1 ~ normal(0, 1); sigma2_alpha ~ inv_gamma(nu_alpha / 2, nu_alpha * s2_0_alpha / 2); sigma2_beta ~ inv_gamma(nu_beta / 2, nu_beta * s2_0_beta / 2); - + to_vector(alpha) ~ normal(0, sqrt(sigma2_alpha)); to_vector(beta) ~ normal(0, sqrt(sigma2_beta)); - for (n in 1:N) + for (n in 1 : N) { y[n] ~ categorical_logit(v[n]'); + } } + + diff --git a/posterior_database/models/stan/nn_rbm1bJ100.stan b/posterior_database/models/stan/nn_rbm1bJ100.stan index 117b879e..5e7b1c75 100644 --- a/posterior_database/models/stan/nn_rbm1bJ100.stan +++ b/posterior_database/models/stan/nn_rbm1bJ100.stan @@ -1,24 +1,22 @@ data { - int N; // observations (Full MNIST: 60K) - int M; // predictors (MNIST: 784) - matrix[N, M] x; // data matrix (Full MNIST: 60K x 784 = 47M) - int K; // number of categories (MNIST: 10) - int y[N]; // categories + int N; // observations (Full MNIST: 60K) + int M; // predictors (MNIST: 784) + matrix[N, M] x; // data matrix (Full MNIST: 60K x 784 = 47M) + int K; // number of categories (MNIST: 10) + array[N] int y; // categories } - -transformed data{ +transformed data { int J = 100; // number of hidden units (e.g. 100) - + // prior parametrization in Lampinen and Vehtari (2001) real nu_alpha = 0.5; - real s2_0_alpha = (0.05 / M^(1/nu_alpha))^2; + real s2_0_alpha = (0.05 / M ^ (1 / nu_alpha)) ^ 2; real nu_beta = 0.5; - real s2_0_beta = (0.05 / J^(1/nu_beta))^2; - + real s2_0_beta = (0.05 / J ^ (1 / nu_beta)) ^ 2; + vector[N] ones = rep_vector(1, N); matrix[N, M + 1] x1 = append_col(ones, x); } - parameters { real sigma2_alpha; real sigma2_beta; @@ -27,18 +25,23 @@ parameters { row_vector[J] alpha1; row_vector[K - 1] beta1; } - model { - matrix[N, K] v = append_col(ones, (append_col(ones, tanh(x1 * append_row(alpha1, alpha))) * append_row(beta1, beta))); - + matrix[N, K] v = append_col(ones, + append_col(ones, + tanh(x1 * append_row(alpha1, alpha))) + * append_row(beta1, beta)); + // Priors alpha1 ~ normal(0, 1); beta1 ~ normal(0, 1); sigma2_alpha ~ inv_gamma(nu_alpha / 2, nu_alpha * s2_0_alpha / 2); sigma2_beta ~ inv_gamma(nu_beta / 2, nu_beta * s2_0_beta / 2); - + to_vector(alpha) ~ normal(0, sqrt(sigma2_alpha)); to_vector(beta) ~ normal(0, sqrt(sigma2_beta)); - for (n in 1:N) + for (n in 1 : N) { y[n] ~ categorical_logit(v[n]'); + } } + + diff --git a/posterior_database/models/stan/normal_mixture.stan b/posterior_database/models/stan/normal_mixture.stan index 62b34052..41f2da56 100644 --- a/posterior_database/models/stan/normal_mixture.stan +++ b/posterior_database/models/stan/normal_mixture.stan @@ -2,17 +2,22 @@ // p(y|mu,theta) = theta * Normal(y|mu[1],1) + (1-theta) * Normal(y|mu[2],1); data { - int N; - real y[N]; + int N; + array[N] real y; } parameters { - real theta; - real mu[2]; + real theta; + array[2] real mu; } model { - theta ~ uniform(0,1); // equivalently, ~ beta(1,1); - for (k in 1:2) - mu[k] ~ normal(0,10); - for (n in 1:N) - target += log_mix(theta, normal_lpdf(y[n]|mu[1],1.0), normal_lpdf(y[n]|mu[2],1.0)); + theta ~ uniform(0, 1); // equivalently, ~ beta(1,1); + for (k in 1 : 2) { + mu[k] ~ normal(0, 10); + } + for (n in 1 : N) { + target += log_mix(theta, normal_lpdf(y[n] | mu[1], 1.0), + normal_lpdf(y[n] | mu[2], 1.0)); + } } + + diff --git a/posterior_database/models/stan/normal_mixture_k.stan b/posterior_database/models/stan/normal_mixture_k.stan index db95eb22..3ffab041 100644 --- a/posterior_database/models/stan/normal_mixture_k.stan +++ b/posterior_database/models/stan/normal_mixture_k.stan @@ -1,19 +1,22 @@ data { int K; int N; - real y[N]; + array[N] real y; } parameters { simplex[K] theta; - real mu[K]; - real sigma[K]; + array[K] real mu; + array[K] real sigma; } model { - real ps[K]; - mu ~ normal(0,10); - for (n in 1:N) { - for (k in 1:K) - ps[k] = log(theta[k]) + normal_lpdf(y[n]|mu[k],sigma[k]); - target += log_sum_exp(ps); + array[K] real ps; + mu ~ normal(0, 10); + for (n in 1 : N) { + for (k in 1 : K) { + ps[k] = log(theta[k]) + normal_lpdf(y[n] | mu[k], sigma[k]); + } + target += log_sum_exp(ps); } } + + diff --git a/posterior_database/models/stan/one_comp_mm_elim_abs.stan b/posterior_database/models/stan/one_comp_mm_elim_abs.stan index e9b036f9..0993843e 100644 --- a/posterior_database/models/stan/one_comp_mm_elim_abs.stan +++ b/posterior_database/models/stan/one_comp_mm_elim_abs.stan @@ -1,10 +1,8 @@ functions { - real[] one_comp_mm_elim_abs(real t, - real[] y, - real[] theta, - real[] x_r, - int[] x_i) { - real dydt[1]; + array[] real one_comp_mm_elim_abs(real t, array[] real y, + array[] real theta, array[] real x_r, + array[] int x_i) { + array[1] real dydt; real k_a = theta[1]; // Dosing rate in 1/day real K_m = theta[2]; // Michaelis-Menten constant in mg/L real V_m = theta[3]; // Maximum elimination rate in 1/day @@ -12,68 +10,68 @@ functions { real V = x_r[2]; real dose = 0; real elim = (V_m / V) * y[1] / (K_m + y[1]); - - if (t > 0) - dose = exp(- k_a * t) * D * k_a / V; - + + if (t > 0) { + dose = exp(-k_a * t) * D * k_a / V; + } + dydt[1] = dose - elim; - + return dydt; } } - data { - real t0; // Initial time in days; + real t0; // Initial time in days; // This is currently hardcoded in data transformations // Uncomment this line to get original model // real C0[1]; // Initial concentration at t0 in mg/L - - real D; // Total dosage in mg - real V; // Compartment volume in L - + + real D; // Total dosage in mg + real V; // Compartment volume in L + int N_t; - real times[N_t]; // Measurement times in days - + array[N_t] real times; // Measurement times in days + // Measured concentrations in effect compartment in mg/L - real C_hat[N_t]; + array[N_t] real C_hat; } - transformed data { // Comment out the next line to get the original model - real C0[1] = {0.0}; - real x_r[2] = {D, V}; - int x_i[0]; + array[1] real C0 = {0.0}; + array[2] real x_r = {D, V}; + array[0] int x_i; } - parameters { real k_a; // Dosing rate in 1/day real K_m; // Michaelis-Menten constant in mg/L real V_m; // Maximum elimination rate in 1/day real sigma; } - transformed parameters { - real C[N_t, 1]; + array[N_t, 1] real C; { - real theta[3] = {k_a, K_m, V_m}; - C = integrate_ode_bdf(one_comp_mm_elim_abs, C0, t0, times, theta, x_r, x_i); + array[3] real theta = {k_a, K_m, V_m}; + C = integrate_ode_bdf(one_comp_mm_elim_abs, C0, t0, times, theta, x_r, + x_i); } } - model { // Priors k_a ~ cauchy(0, 1); K_m ~ cauchy(0, 1); V_m ~ cauchy(0, 1); sigma ~ cauchy(0, 1); - + // Likelihood - for (n in 1:N_t) + for (n in 1 : N_t) { C_hat[n] ~ lognormal(log(C[n, 1]), sigma); + } } - generated quantities { - real C_ppc[N_t]; - for (n in 1:N_t) + array[N_t] real C_ppc; + for (n in 1 : N_t) { C_ppc[n] = lognormal_rng(log(C[n, 1]), sigma); + } } + + diff --git a/posterior_database/models/stan/pilots.stan b/posterior_database/models/stan/pilots.stan index 6d455c66..f4df28c2 100644 --- a/posterior_database/models/stan/pilots.stan +++ b/posterior_database/models/stan/pilots.stan @@ -2,8 +2,8 @@ data { int N; int n_groups; int n_scenarios; - int group_id[N]; - int scenario_id[N]; + array[N] int group_id; + array[N] int scenario_id; vector[N] y; } parameters { @@ -11,22 +11,25 @@ parameters { vector[n_scenarios] b; real mu_a; real mu_b; - real sigma_a; - real sigma_b; - real sigma_y; + real sigma_a; + real sigma_b; + real sigma_y; } transformed parameters { vector[N] y_hat; - - for (i in 1:N) + + for (i in 1 : N) { y_hat[i] = a[group_id[i]] + b[scenario_id[i]]; + } } model { mu_a ~ normal(0, 1); - a ~ normal (10 * mu_a, sigma_a); - + a ~ normal(10 * mu_a, sigma_a); + mu_b ~ normal(0, 1); - b ~ normal (10 * mu_b, sigma_b); - + b ~ normal(10 * mu_b, sigma_b); + y ~ normal(y_hat, sigma_y); } + + diff --git a/posterior_database/models/stan/prophet.stan b/posterior_database/models/stan/prophet.stan index 79db33c7..4ea35546 100644 --- a/posterior_database/models/stan/prophet.stan +++ b/posterior_database/models/stan/prophet.stan @@ -9,14 +9,14 @@ functions { matrix[T, S] A; row_vector[S] a_row; int cp_idx; - + // Start with an empty matrix. A = rep_matrix(0, T, S); a_row = rep_row_vector(0, S); cp_idx = 1; - + // Fill in each row of A. - for (i in 1:T) { + for (i in 1 : T) { while ((cp_idx <= S) && (t[i] >= t_change[cp_idx])) { a_row[cp_idx] = 1; cp_idx = cp_idx + 1; @@ -25,85 +25,67 @@ functions { } return A; } - + // Logistic trend functions - + vector logistic_gamma(real k, real m, vector delta, vector t_change, int S) { - vector[S] gamma; // adjusted offsets, for piecewise continuity - vector[S + 1] k_s; // actual rate in each segment + vector[S] gamma; // adjusted offsets, for piecewise continuity + vector[S + 1] k_s; // actual rate in each segment real m_pr; - + // Compute the rate in each segment k_s = append_row(k, k + cumulative_sum(delta)); - + // Piecewise offsets m_pr = m; // The offset in the previous segment - for (i in 1:S) { + for (i in 1 : S) { gamma[i] = (t_change[i] - m_pr) * (1 - k_s[i] / k_s[i + 1]); - m_pr = m_pr + gamma[i]; // update for the next segment + m_pr = m_pr + gamma[i]; // update for the next segment } return gamma; } - - vector logistic_trend( - real k, - real m, - vector delta, - vector t, - vector cap, - matrix A, - vector t_change, - int S - ) { + + vector logistic_trend(real k, real m, vector delta, vector t, vector cap, + matrix A, vector t_change, int S) { vector[S] gamma; - + gamma = logistic_gamma(k, m, delta, t_change, S); return cap .* inv_logit((k + A * delta) .* (t - (m + A * gamma))); } - + // Linear trend function - - vector linear_trend( - real k, - real m, - vector delta, - vector t, - matrix A, - vector t_change - ) { + + vector linear_trend(real k, real m, vector delta, vector t, matrix A, + vector t_change) { return (k + A * delta) .* t + (m + A * (-t_change .* delta)); } } - data { - int T; // Number of time periods - int K; // Number of regressors - vector[T] t; // Time - vector[T] cap; // Capacities for logistic trend - vector[T] y; // Time series - int S; // Number of changepoints - vector[S] t_change; // Times of trend changepoints - matrix[T,K] X; // Regressors - vector[K] sigmas; // Scale on seasonality prior - real tau; // Scale on changepoints prior - int trend_indicator; // 0 for linear, 1 for logistic - vector[K] s_a; // Indicator of additive features - vector[K] s_m; // Indicator of multiplicative features + int T; // Number of time periods + int K; // Number of regressors + vector[T] t; // Time + vector[T] cap; // Capacities for logistic trend + vector[T] y; // Time series + int S; // Number of changepoints + vector[S] t_change; // Times of trend changepoints + matrix[T, K] X; // Regressors + vector[K] sigmas; // Scale on seasonality prior + real tau; // Scale on changepoints prior + int trend_indicator; // 0 for linear, 1 for logistic + vector[K] s_a; // Indicator of additive features + vector[K] s_m; // Indicator of multiplicative features } - transformed data { matrix[T, S] A; A = get_changepoint_matrix(t, t_change, T, S); } - parameters { - real k; // Base trend growth rate - real m; // Trend offset - vector[S] delta; // Trend rate adjustments - real sigma_obs; // Observation noise - vector[K] beta; // Regressor coefficients + real k; // Base trend growth rate + real m; // Trend offset + vector[S] delta; // Trend rate adjustments + real sigma_obs; // Observation noise + vector[K] beta; // Regressor coefficients } - model { //priors k ~ normal(0, 5); @@ -111,21 +93,15 @@ model { delta ~ double_exponential(0, tau); sigma_obs ~ normal(0, 0.5); beta ~ normal(0, sigmas); - + // Likelihood if (trend_indicator == 0) { - y ~ normal( - linear_trend(k, m, delta, t, A, t_change) - .* (1 + X * (beta .* s_m)) - + X * (beta .* s_a), - sigma_obs - ); + y ~ normal(linear_trend(k, m, delta, t, A, t_change) + .* (1 + X * (beta .* s_m)) + X * (beta .* s_a), sigma_obs); } else if (trend_indicator == 1) { - y ~ normal( - logistic_trend(k, m, delta, t, cap, A, t_change, S) - .* (1 + X * (beta .* s_m)) - + X * (beta .* s_a), - sigma_obs - ); + y ~ normal(logistic_trend(k, m, delta, t, cap, A, t_change, S) + .* (1 + X * (beta .* s_m)) + X * (beta .* s_a), sigma_obs); } } + + diff --git a/posterior_database/models/stan/radon_county.stan b/posterior_database/models/stan/radon_county.stan index b8a8018f..c4371309 100644 --- a/posterior_database/models/stan/radon_county.stan +++ b/posterior_database/models/stan/radon_county.stan @@ -1,23 +1,24 @@ data { int N; int J; - int county[N]; + array[N] int county; vector[N] y; } - parameters { vector[J] a; real mu_a; - real sigma_a; - real sigma_y; + real sigma_a; + real sigma_y; } - model { vector[N] y_hat; - for (i in 1:N) + for (i in 1 : N) { y_hat[i] = a[county[i]]; - + } + mu_a ~ normal(0, 1); - a ~ normal (mu_a, sigma_a); + a ~ normal(mu_a, sigma_a); y ~ normal(y_hat, sigma_y); } + + diff --git a/posterior_database/models/stan/radon_county_intercept.stan b/posterior_database/models/stan/radon_county_intercept.stan index 59cacd47..02f2a71f 100644 --- a/posterior_database/models/stan/radon_county_intercept.stan +++ b/posterior_database/models/stan/radon_county_intercept.stan @@ -1,27 +1,27 @@ data { int N; int J; - int county_idx[N]; + array[N] int county_idx; vector[N] floor_measure; vector[N] log_radon; } - parameters { vector[J] alpha; real beta; real sigma_y; } - model { vector[N] mu; // Prior sigma_y ~ normal(0, 1); alpha ~ normal(0, 10); beta ~ normal(0, 10); - + // Likelihood - for(n in 1:N){ + for (n in 1 : N) { mu[n] = alpha[county_idx[n]] + beta * floor_measure[n]; target += normal_lpdf(log_radon[n] | mu[n], sigma_y); } } + + diff --git a/posterior_database/models/stan/radon_hierarchical_intercept_centered.stan b/posterior_database/models/stan/radon_hierarchical_intercept_centered.stan index b4b3e10e..1817e9af 100644 --- a/posterior_database/models/stan/radon_hierarchical_intercept_centered.stan +++ b/posterior_database/models/stan/radon_hierarchical_intercept_centered.stan @@ -1,7 +1,7 @@ data { int J; int N; - int county_idx[N]; + array[N] int county_idx; vector[N] log_uppm; vector[N] floor_measure; vector[N] log_radon; @@ -16,16 +16,18 @@ parameters { model { vector[N] mu; vector[N] muj; - + sigma_alpha ~ normal(0, 1); sigma_y ~ normal(0, 1); mu_alpha ~ normal(0, 10); beta ~ normal(0, 10); - + alpha ~ normal(mu_alpha, sigma_alpha); - for(n in 1:N){ + for (n in 1 : N) { muj[n] = alpha[county_idx[n]] + log_uppm[n] * beta[1]; mu[n] = muj[n] + floor_measure[n] * beta[2]; target += normal_lpdf(log_radon[n] | mu[n], sigma_y); } } + + diff --git a/posterior_database/models/stan/radon_hierarchical_intercept_noncentered.stan b/posterior_database/models/stan/radon_hierarchical_intercept_noncentered.stan index 9e358c45..fd144635 100644 --- a/posterior_database/models/stan/radon_hierarchical_intercept_noncentered.stan +++ b/posterior_database/models/stan/radon_hierarchical_intercept_noncentered.stan @@ -1,7 +1,7 @@ data { int J; int N; - int county_idx[N]; + array[N] int county_idx; vector[N] log_uppm; vector[N] floor_measure; vector[N] log_radon; @@ -13,26 +13,26 @@ parameters { real sigma_alpha; real sigma_y; } - transformed parameters { vector[J] alpha; // implies: alpha ~ normal(mu_alpha, sigma_alpha); alpha = mu_alpha + sigma_alpha * alpha_raw; } - model { vector[N] mu; vector[N] muj; - + sigma_alpha ~ normal(0, 1); sigma_y ~ normal(0, 1); mu_alpha ~ normal(0, 10); beta ~ normal(0, 10); alpha_raw ~ normal(0, 1); - - for(n in 1:N){ + + for (n in 1 : N) { muj[n] = alpha[county_idx[n]] + log_uppm[n] * beta[1]; mu[n] = muj[n] + floor_measure[n] * beta[2]; target += normal_lpdf(log_radon[n] | mu[n], sigma_y); } } + + diff --git a/posterior_database/models/stan/radon_partially_pooled_centered.stan b/posterior_database/models/stan/radon_partially_pooled_centered.stan index 2639f28c..9d9ba86f 100644 --- a/posterior_database/models/stan/radon_partially_pooled_centered.stan +++ b/posterior_database/models/stan/radon_partially_pooled_centered.stan @@ -1,7 +1,7 @@ data { int N; int J; - int county_idx[N]; + array[N] int county_idx; vector[N] log_radon; } parameters { @@ -10,19 +10,20 @@ parameters { real sigma_alpha; real sigma_y; } - model { vector[N] mu; - + // priors - sigma_y ~ normal(0,1); - sigma_alpha ~ normal(0,1); - mu_alpha ~ normal(0,10); - + sigma_y ~ normal(0, 1); + sigma_alpha ~ normal(0, 1); + mu_alpha ~ normal(0, 10); + // likelihood alpha ~ normal(mu_alpha, sigma_alpha); - for(n in 1:N){ + for (n in 1 : N) { mu[n] = alpha[county_idx[n]]; target += normal_lpdf(log_radon[n] | mu[n], sigma_y); } } + + diff --git a/posterior_database/models/stan/radon_partially_pooled_noncentered.stan b/posterior_database/models/stan/radon_partially_pooled_noncentered.stan index db5db0e8..b07b8e7e 100644 --- a/posterior_database/models/stan/radon_partially_pooled_noncentered.stan +++ b/posterior_database/models/stan/radon_partially_pooled_noncentered.stan @@ -1,7 +1,7 @@ data { int N; int J; - int county_idx[N]; + array[N] int county_idx; vector[N] log_radon; } parameters { @@ -10,25 +10,25 @@ parameters { real sigma_alpha; real sigma_y; } - transformed parameters { vector[J] alpha; // implies: alpha ~ normal(mu_alpha, sigma_alpha); alpha = mu_alpha + sigma_alpha * alpha_raw; } - model { vector[N] mu; - + // priors - sigma_y ~ normal(0,1); - sigma_alpha ~ normal(0,1); - mu_alpha ~ normal(0,10); + sigma_y ~ normal(0, 1); + sigma_alpha ~ normal(0, 1); + mu_alpha ~ normal(0, 10); alpha_raw ~ normal(0, 1); - + // likelihood - for(n in 1:N){ + for (n in 1 : N) { mu[n] = alpha[county_idx[n]]; target += normal_lpdf(log_radon[n] | mu[n], sigma_y); } } + + diff --git a/posterior_database/models/stan/radon_pooled.stan b/posterior_database/models/stan/radon_pooled.stan index 375f0b25..04a09c7a 100644 --- a/posterior_database/models/stan/radon_pooled.stan +++ b/posterior_database/models/stan/radon_pooled.stan @@ -3,24 +3,24 @@ data { vector[N] floor_measure; vector[N] log_radon; } - parameters { real alpha; real beta; real sigma_y; } - model { vector[N] mu; - + // priors sigma_y ~ normal(0, 1); alpha ~ normal(0, 10); beta ~ normal(0, 10); - + // likelihood mu = alpha + beta * floor_measure; - for(n in 1:N){ - target += normal_lpdf(log_radon[n]| mu[n], sigma_y); + for (n in 1 : N) { + target += normal_lpdf(log_radon[n] | mu[n], sigma_y); } } + + diff --git a/posterior_database/models/stan/radon_variable_intercept_centered.stan b/posterior_database/models/stan/radon_variable_intercept_centered.stan index dc2f6369..0d8c5c32 100644 --- a/posterior_database/models/stan/radon_variable_intercept_centered.stan +++ b/posterior_database/models/stan/radon_variable_intercept_centered.stan @@ -1,7 +1,7 @@ data { int J; int N; - int county_idx[N]; + array[N] int county_idx; vector[N] floor_measure; vector[N] log_radon; } @@ -12,19 +12,20 @@ parameters { real sigma_alpha; real sigma_y; } - model { vector[N] mu; - + // Prior - sigma_y ~ normal(0,1); - sigma_alpha ~ normal(0,1); - mu_alpha ~ normal(0,10); - beta ~ normal(0,10); - - alpha ~ normal (mu_alpha, sigma_alpha); - for(n in 1:N){ - mu[n] = alpha[county_idx[n]] + floor_measure[n]*beta; - target += normal_lpdf(log_radon[n]|mu[n],sigma_y); + sigma_y ~ normal(0, 1); + sigma_alpha ~ normal(0, 1); + mu_alpha ~ normal(0, 10); + beta ~ normal(0, 10); + + alpha ~ normal(mu_alpha, sigma_alpha); + for (n in 1 : N) { + mu[n] = alpha[county_idx[n]] + floor_measure[n] * beta; + target += normal_lpdf(log_radon[n] | mu[n], sigma_y); } } + + diff --git a/posterior_database/models/stan/radon_variable_intercept_noncentered.stan b/posterior_database/models/stan/radon_variable_intercept_noncentered.stan index ed4494b2..87319208 100644 --- a/posterior_database/models/stan/radon_variable_intercept_noncentered.stan +++ b/posterior_database/models/stan/radon_variable_intercept_noncentered.stan @@ -1,7 +1,7 @@ data { int J; int N; - int county_idx[N]; + array[N] int county_idx; vector[N] floor_measure; vector[N] log_radon; } @@ -12,25 +12,25 @@ parameters { real sigma_alpha; real sigma_y; } - transformed parameters { vector[J] alpha; // implies: alpha ~ normal(mu_alpha, sigma_alpha); alpha = mu_alpha + sigma_alpha * alpha_raw; } - model { vector[N] mu; - + // Prior - sigma_y ~ normal(0,1); - sigma_alpha ~ normal(0,1); - mu_alpha ~ normal(0,10); - beta ~ normal(0,10); + sigma_y ~ normal(0, 1); + sigma_alpha ~ normal(0, 1); + mu_alpha ~ normal(0, 10); + beta ~ normal(0, 10); alpha_raw ~ normal(0, 1); - - for(n in 1:N){ - mu[n] = alpha[county_idx[n]] + floor_measure[n]*beta; - target += normal_lpdf(log_radon[n]|mu[n],sigma_y); + + for (n in 1 : N) { + mu[n] = alpha[county_idx[n]] + floor_measure[n] * beta; + target += normal_lpdf(log_radon[n] | mu[n], sigma_y); } } + + diff --git a/posterior_database/models/stan/radon_variable_intercept_slope_centered.stan b/posterior_database/models/stan/radon_variable_intercept_slope_centered.stan index 6b247fb1..53ef7fbe 100644 --- a/posterior_database/models/stan/radon_variable_intercept_slope_centered.stan +++ b/posterior_database/models/stan/radon_variable_intercept_slope_centered.stan @@ -1,11 +1,10 @@ data { int N; int J; - int county_idx[N]; + array[N] int county_idx; vector[N] floor_measure; vector[N] log_radon; } - parameters { real sigma_y; real sigma_alpha; @@ -15,20 +14,21 @@ parameters { real mu_alpha; real mu_beta; } - model { vector[N] mu; // Prior - sigma_y ~ normal(0,1); - sigma_beta ~ normal(0,1); - sigma_alpha ~ normal(0,1); - mu_alpha ~ normal(0,10); - mu_beta ~ normal(0,10); - + sigma_y ~ normal(0, 1); + sigma_beta ~ normal(0, 1); + sigma_alpha ~ normal(0, 1); + mu_alpha ~ normal(0, 10); + mu_beta ~ normal(0, 10); + alpha ~ normal(mu_alpha, sigma_alpha); beta ~ normal(mu_beta, sigma_beta); - for(n in 1:N){ + for (n in 1 : N) { mu[n] = alpha[county_idx[n]] + floor_measure[n] * beta[county_idx[n]]; target += normal_lpdf(log_radon[n] | mu[n], sigma_y); } } + + diff --git a/posterior_database/models/stan/radon_variable_intercept_slope_noncentered.stan b/posterior_database/models/stan/radon_variable_intercept_slope_noncentered.stan index 54528e13..d02cef6b 100644 --- a/posterior_database/models/stan/radon_variable_intercept_slope_noncentered.stan +++ b/posterior_database/models/stan/radon_variable_intercept_slope_noncentered.stan @@ -1,11 +1,10 @@ data { int N; int J; - int county_idx[N]; + array[N] int county_idx; vector[N] floor_measure; vector[N] log_radon; } - parameters { real sigma_y; real sigma_alpha; @@ -23,21 +22,22 @@ transformed parameters { // implies: beta ~ normal(mu_beta, sigma_beta); beta = mu_beta + sigma_beta * beta_raw; } - model { vector[N] mu; // Prior - sigma_y ~ normal(0,1); - sigma_beta ~ normal(0,1); - sigma_alpha ~ normal(0,1); - mu_alpha ~ normal(0,10); - mu_beta ~ normal(0,10); + sigma_y ~ normal(0, 1); + sigma_beta ~ normal(0, 1); + sigma_alpha ~ normal(0, 1); + mu_alpha ~ normal(0, 10); + mu_beta ~ normal(0, 10); alpha_raw ~ normal(0, 1); beta_raw ~ normal(0, 1); - + // Likelihood - for(n in 1:N){ + for (n in 1 : N) { mu[n] = alpha[county_idx[n]] + floor_measure[n] * beta[county_idx[n]]; target += normal_lpdf(log_radon[n] | mu[n], sigma_y); } } + + diff --git a/posterior_database/models/stan/radon_variable_slope_centered.stan b/posterior_database/models/stan/radon_variable_slope_centered.stan index d2a746de..cfbd7897 100644 --- a/posterior_database/models/stan/radon_variable_slope_centered.stan +++ b/posterior_database/models/stan/radon_variable_slope_centered.stan @@ -1,11 +1,10 @@ data { int J; int N; - int county_idx[N]; + array[N] int county_idx; vector[N] floor_measure; vector[N] log_radon; } - parameters { real alpha; vector[J] beta; @@ -13,18 +12,19 @@ parameters { real sigma_beta; real sigma_y; } - model { vector[N] mu; // Prior - alpha ~ normal(0,10); - sigma_y ~ normal(0,1); - sigma_beta ~ normal(0,1); - mu_beta ~ normal(0,10); - + alpha ~ normal(0, 10); + sigma_y ~ normal(0, 1); + sigma_beta ~ normal(0, 1); + mu_beta ~ normal(0, 10); + beta ~ normal(mu_beta, sigma_beta); - for(n in 1:N){ + for (n in 1 : N) { mu[n] = alpha + floor_measure[n] * beta[county_idx[n]]; - target += normal_lpdf(log_radon[n]|mu[n],sigma_y); + target += normal_lpdf(log_radon[n] | mu[n], sigma_y); } } + + diff --git a/posterior_database/models/stan/radon_variable_slope_noncentered.stan b/posterior_database/models/stan/radon_variable_slope_noncentered.stan index 7f2102dd..c7890d87 100644 --- a/posterior_database/models/stan/radon_variable_slope_noncentered.stan +++ b/posterior_database/models/stan/radon_variable_slope_noncentered.stan @@ -1,11 +1,10 @@ data { int J; int N; - int county_idx[N]; + array[N] int county_idx; vector[N] floor_measure; vector[N] log_radon; } - parameters { real alpha; vector[J] beta_raw; @@ -13,24 +12,24 @@ parameters { real sigma_beta; real sigma_y; } - transformed parameters { vector[J] beta; // implies: beta ~ normal(mu_beta, sigma_beta); beta = mu_beta + sigma_beta * beta_raw; } - model { vector[N] mu; // Prior - alpha ~ normal(0,10); - sigma_y ~ normal(0,1); - sigma_beta ~ normal(0,1); - mu_beta ~ normal(0,10); + alpha ~ normal(0, 10); + sigma_y ~ normal(0, 1); + sigma_beta ~ normal(0, 1); + mu_beta ~ normal(0, 10); beta_raw ~ normal(0, 1); - - for(n in 1:N){ + + for (n in 1 : N) { mu[n] = alpha + floor_measure[n] * beta[county_idx[n]]; - target += normal_lpdf(log_radon[n]|mu[n],sigma_y); + target += normal_lpdf(log_radon[n] | mu[n], sigma_y); } } + + diff --git a/posterior_database/models/stan/rats_model.stan b/posterior_database/models/stan/rats_model.stan index 1bcc2d90..5acf93dc 100644 --- a/posterior_database/models/stan/rats_model.stan +++ b/posterior_database/models/stan/rats_model.stan @@ -2,31 +2,28 @@ data { int N; // Number of rats int Npts; // Number of data points - int rat[Npts]; // Lookup index -> rat - real x[Npts]; - real y[Npts]; + array[Npts] int rat; // Lookup index -> rat + array[Npts] real x; + array[Npts] real y; real xbar; } - parameters { - real alpha[N]; - real beta[N]; - + array[N] real alpha; + array[N] real beta; + real mu_alpha; - real mu_beta; // beta.c in original bugs model - real sigma_y; // sigma in original bugs model + real mu_beta; // beta.c in original bugs model + real sigma_y; // sigma in original bugs model real sigma_alpha; real sigma_beta; } - - model { mu_alpha ~ normal(0, 100); mu_beta ~ normal(0, 100); // sigma_y, sigma_alpha, sigma_beta : flat alpha ~ normal(mu_alpha, sigma_alpha); // vectorized - beta ~ normal(mu_beta, sigma_beta); // vectorized - for (n in 1:Npts){ + beta ~ normal(mu_beta, sigma_beta); // vectorized + for (n in 1 : Npts) { int irat; irat = rat[n]; y[n] ~ normal(alpha[irat] + beta[irat] * (x[n] - xbar), sigma_y); @@ -37,3 +34,4 @@ generated quantities { alpha0 = mu_alpha - xbar * mu_beta; } + diff --git a/posterior_database/models/stan/seeds_centered_model.stan b/posterior_database/models/stan/seeds_centered_model.stan index f8a43990..ffd1241c 100644 --- a/posterior_database/models/stan/seeds_centered_model.stan +++ b/posterior_database/models/stan/seeds_centered_model.stan @@ -1,38 +1,36 @@ - data { - int I; - int n[I]; - int N[I]; - vector[I] x1; // seed type - vector[I] x2; // root extract + int I; + array[I] int n; + array[I] int N; + vector[I] x1; // seed type + vector[I] x2; // root extract } - transformed data { - vector[I] x1x2; - x1x2 = x1 .* x2; + vector[I] x1x2; + x1x2 = x1 .* x2; } parameters { - real alpha0; - real alpha1; - real alpha12; - real alpha2; - vector[I] c; - real sigma; + real alpha0; + real alpha1; + real alpha12; + real alpha2; + vector[I] c; + real sigma; } - -transformed parameters{ +transformed parameters { vector[I] b; b = c - mean(c); } - model { - alpha0 ~ normal(0.0, 1.0); // Narrower priors - alpha1 ~ normal(0.0, 1.0); - alpha2 ~ normal(0.0, 1.0); - alpha12 ~ normal(0.0, 1.0); - sigma ~ cauchy(0,1); - - c ~ normal(0.0, sigma); - n ~ binomial_logit(N, alpha0 + alpha1 * x1 + alpha2 * x2 + alpha12 * x1x2 + b); + alpha0 ~ normal(0.0, 1.0); // Narrower priors + alpha1 ~ normal(0.0, 1.0); + alpha2 ~ normal(0.0, 1.0); + alpha12 ~ normal(0.0, 1.0); + sigma ~ cauchy(0, 1); + + c ~ normal(0.0, sigma); + n ~ binomial_logit(N, + alpha0 + alpha1 * x1 + alpha2 * x2 + alpha12 * x1x2 + b); } + diff --git a/posterior_database/models/stan/seeds_model.stan b/posterior_database/models/stan/seeds_model.stan index 04075929..ac93ca7a 100644 --- a/posterior_database/models/stan/seeds_model.stan +++ b/posterior_database/models/stan/seeds_model.stan @@ -1,35 +1,36 @@ data { - int I; - int n[I]; - int N[I]; - vector[I] x1; - vector[I] x2; + int I; + array[I] int n; + array[I] int N; + vector[I] x1; + vector[I] x2; } - transformed data { - vector[I] x1x2; - x1x2 = x1 .* x2; -} + vector[I] x1x2; + x1x2 = x1 .* x2; +} parameters { - real alpha0; - real alpha1; - real alpha12; - real alpha2; - real tau; - vector[I] b; + real alpha0; + real alpha1; + real alpha12; + real alpha2; + real tau; + vector[I] b; } transformed parameters { - real sigma; - sigma = 1.0 / sqrt(tau); + real sigma; + sigma = 1.0 / sqrt(tau); } model { - alpha0 ~ normal(0.0,1.0E3); - alpha1 ~ normal(0.0,1.0E3); - alpha2 ~ normal(0.0,1.0E3); - alpha12 ~ normal(0.0,1.0E3); - tau ~ gamma(1.0E-3,1.0E-3); - - b ~ normal(0.0, sigma); - n ~ binomial_logit(N, alpha0 + alpha1 * x1 + alpha2 * x2 + alpha12 * x1x2 + b); + alpha0 ~ normal(0.0, 1.0E3); + alpha1 ~ normal(0.0, 1.0E3); + alpha2 ~ normal(0.0, 1.0E3); + alpha12 ~ normal(0.0, 1.0E3); + tau ~ gamma(1.0E-3, 1.0E-3); + + b ~ normal(0.0, sigma); + n ~ binomial_logit(N, + alpha0 + alpha1 * x1 + alpha2 * x2 + alpha12 * x1x2 + b); } + diff --git a/posterior_database/models/stan/seeds_stanified_model.stan b/posterior_database/models/stan/seeds_stanified_model.stan index 84410244..7329e3fa 100644 --- a/posterior_database/models/stan/seeds_stanified_model.stan +++ b/posterior_database/models/stan/seeds_stanified_model.stan @@ -1,33 +1,32 @@ - data { - int I; - int n[I]; - int N[I]; - vector[I] x1; // seed type - vector[I] x2; // root extract + int I; + array[I] int n; + array[I] int N; + vector[I] x1; // seed type + vector[I] x2; // root extract } - transformed data { - vector[I] x1x2; - x1x2 = x1 .* x2; + vector[I] x1x2; + x1x2 = x1 .* x2; } parameters { - real alpha0; - real alpha1; - real alpha12; - real alpha2; - vector[I] b; - real sigma; + real alpha0; + real alpha1; + real alpha12; + real alpha2; + vector[I] b; + real sigma; } - model { - alpha0 ~ normal(0.0, 1.0); // Narrower priors - alpha1 ~ normal(0.0, 1.0); - alpha2 ~ normal(0.0, 1.0); - alpha12 ~ normal(0.0, 1.0); - sigma ~ cauchy(0,1); - - b ~ normal(0.0, sigma); - n ~ binomial_logit(N, alpha0 + alpha1 * x1 + alpha2 * x2 + alpha12 * x1x2 + b); + alpha0 ~ normal(0.0, 1.0); // Narrower priors + alpha1 ~ normal(0.0, 1.0); + alpha2 ~ normal(0.0, 1.0); + alpha12 ~ normal(0.0, 1.0); + sigma ~ cauchy(0, 1); + + b ~ normal(0.0, sigma); + n ~ binomial_logit(N, + alpha0 + alpha1 * x1 + alpha2 * x2 + alpha12 * x1x2 + b); } + diff --git a/posterior_database/models/stan/sesame_one_pred_a.stan b/posterior_database/models/stan/sesame_one_pred_a.stan index 13cd8298..4637a6df 100644 --- a/posterior_database/models/stan/sesame_one_pred_a.stan +++ b/posterior_database/models/stan/sesame_one_pred_a.stan @@ -3,12 +3,12 @@ data { vector[N] encouraged; vector[N] watched; } - parameters { vector[2] beta; real sigma; } - model { - watched ~ normal(beta[1] + beta[2] * encouraged,sigma); + watched ~ normal(beta[1] + beta[2] * encouraged, sigma); } + + diff --git a/posterior_database/models/stan/sir.stan b/posterior_database/models/stan/sir.stan index 3c7d1840..9c667705 100644 --- a/posterior_database/models/stan/sir.stan +++ b/posterior_database/models/stan/sir.stan @@ -2,70 +2,62 @@ // http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3380087/pdf/nihms372789.pdf functions { - // theta[1] = beta, water contact rate // theta[2] = kappa, C_{50} // theta[3] = gamma, recovery rate // theta[4] = xi, bacteria production rate // theta[5] = delta, bacteria removal rate - real[] simple_SIR(real t, - real[] y, - real[] theta, - real[] x_r, - int[] x_i) { - - real dydt[4]; - - dydt[1] = - theta[1] * y[4] / (y[4] + theta[2]) * y[1]; + array[] real simple_SIR(real t, array[] real y, array[] real theta, + array[] real x_r, array[] int x_i) { + array[4] real dydt; + + dydt[1] = -theta[1] * y[4] / (y[4] + theta[2]) * y[1]; dydt[2] = theta[1] * y[4] / (y[4] + theta[2]) * y[1] - theta[3] * y[2]; dydt[3] = theta[3] * y[2]; dydt[4] = theta[4] * y[2] - theta[5] * y[4]; - + return dydt; } } - data { int N_t; - real t[N_t]; - real y0[4]; - int stoi_hat[N_t]; - real B_hat[N_t]; + array[N_t] real t; + array[4] real y0; + array[N_t] int stoi_hat; + array[N_t] real B_hat; } - transformed data { real t0 = 0; real kappa = 1000000; - - real x_r[0]; - int x_i[0]; + + array[0] real x_r; + array[0] int x_i; } - parameters { real beta; real gamma; real xi; real delta; } - transformed parameters { - real y[N_t, 4]; + array[N_t, 4] real y; { - real theta[5] = {beta, kappa, gamma, xi, delta}; + array[5] real theta = {beta, kappa, gamma, xi, delta}; y = integrate_ode_rk45(simple_SIR, y0, t0, t, theta, x_r, x_i); } } - model { beta ~ cauchy(0, 2.5); gamma ~ cauchy(0, 1); xi ~ cauchy(0, 25); delta ~ cauchy(0, 1); - + stoi_hat[1] ~ poisson(y0[1] - y[1, 1]); - for (n in 2:N_t) + for (n in 2 : N_t) { stoi_hat[n] ~ poisson(y[n - 1, 1] - y[n, 1]); - + } + B_hat ~ lognormal(log(col(to_matrix(y), 4)), 0.15); - } + + diff --git a/posterior_database/models/stan/soil_incubation.stan b/posterior_database/models/stan/soil_incubation.stan index 54695769..62158ea8 100644 --- a/posterior_database/models/stan/soil_incubation.stan +++ b/posterior_database/models/stan/soil_incubation.stan @@ -1,5 +1,4 @@ functions { - /** * ODE system for two pool model with feedback and no inputs. * @@ -31,26 +30,26 @@ functions { * @param x_r real constants for system (empty). * @param x_i integer constants for system (empty). */ - real[] two_pool_feedback(real t, real[] C, real[] theta, - real[] x_r, int[] x_i) { + array[] real two_pool_feedback(real t, array[] real C, array[] real theta, + array[] real x_r, array[] int x_i) { real k1; real k2; real alpha21; real alpha12; - - real dC_dt[2]; - + + array[2] real dC_dt; + k1 = theta[1]; k2 = theta[2]; alpha21 = theta[3]; alpha12 = theta[4]; - + dC_dt[1] = -k1 * C[1] + alpha12 * k2 * C[2]; - dC_dt[2] = - k2 * C[2] + alpha21 * k1 * C[1] ; - + dC_dt[2] = -k2 * C[2] + alpha21 * k1 * C[1]; + return dC_dt; } - + /** * Compute total evolved CO2 from the system given the specified * parameters and times. This is done by simulating the system @@ -70,79 +69,75 @@ functions { * @param x_i integer data (empty) * @return evolved CO2 for times ts */ - real[] evolved_CO2(int N_t, real t0, real[] ts, - real gamma, real totalC_t0, - real k1, real k2, - real alpha21, real alpha12, - data real[] x_r, data int[] x_i) { - - real C_t0[2]; // initial state - real theta[4]; // ODE parameters - real C_hat[N_t,2]; // predicted pool content - - real eCO2_hat[N_t]; - + array[] real evolved_CO2(int N_t, real t0, array[] real ts, real gamma, + real totalC_t0, real k1, real k2, real alpha21, + real alpha12, data array[] real x_r, + data array[] int x_i) { + array[2] real C_t0; // initial state + array[4] real theta; // ODE parameters + array[N_t, 2] real C_hat; // predicted pool content + + array[N_t] real eCO2_hat; + C_t0[1] = gamma * totalC_t0; C_t0[2] = (1 - gamma) * totalC_t0; - + theta[1] = k1; theta[2] = k2; theta[3] = alpha21; theta[4] = alpha12; - - C_hat = integrate_ode_rk45(two_pool_feedback, - C_t0, t0, ts, theta, x_r, x_i); - - for (t in 1:N_t) + + C_hat = integrate_ode_rk45(two_pool_feedback, C_t0, t0, ts, theta, x_r, + x_i); + + for (t in 1 : N_t) { eCO2_hat[t] = totalC_t0 - sum(C_hat[t]); + } return eCO2_hat; } - } data { - real totalC_t0; // initial total carbon - - real t0; // initial time - int N_t; // number of measurement times - real ts[N_t]; // measurement times - - - real eCO2mean[N_t]; // measured cumulative evolved carbon + real totalC_t0; // initial total carbon + + real t0; // initial time + int N_t; // number of measurement times + array[N_t] real ts; // measurement times + + array[N_t] real eCO2mean; // measured cumulative evolved carbon } - transformed data { - real x_r[0]; // no real data for ODE system - int x_i[0]; // no integer data for ODE system + array[0] real x_r; // no real data for ODE system + array[0] int x_i; // no integer data for ODE system } - parameters { - real k1; // pool 1 decomposition rate - real k2; // pool 2 decomposition rate - - real alpha21; // transfer coeff from pool 2 to 1 - real alpha12; // transfer coeff from pool 1 to 2 - - real gamma; // partitioning coefficient - - real sigma; // observation std dev + real k1; // pool 1 decomposition rate + real k2; // pool 2 decomposition rate + + real alpha21; // transfer coeff from pool 2 to 1 + real alpha12; // transfer coeff from pool 1 to 2 + + real gamma; // partitioning coefficient + + real sigma; // observation std dev } - transformed parameters { - real eCO2_hat[N_t]; - eCO2_hat = evolved_CO2(N_t, t0, ts, gamma, totalC_t0, - k1, k2, alpha21, alpha12, x_r, x_i); + array[N_t] real eCO2_hat; + eCO2_hat = evolved_CO2(N_t, t0, ts, gamma, totalC_t0, k1, k2, alpha21, + alpha12, x_r, x_i); } - model { // priors - gamma ~ beta(10,1); // identifies pools - k1 ~ normal(0,1); // weakly informative - k2 ~ normal(0,1); - alpha21 ~ normal(0,1); - alpha12 ~ normal(0,1); - sigma ~ cauchy(0,1); - + gamma ~ beta(10, 1); // identifies pools + k1 ~ normal(0, 1); // weakly informative + k2 ~ normal(0, 1); + alpha21 ~ normal(0, 1); + alpha12 ~ normal(0, 1); + sigma ~ cauchy(0, 1); + // likelihood - for (t in 1:N_t) - eCO2mean[t] ~ normal(eCO2_hat[t], sigma); // normal error + for (t in 1 : N_t) { + eCO2mean[t] ~ normal(eCO2_hat[t], sigma); + } // normal error } + + diff --git a/posterior_database/models/stan/state_space_stochastic_level_stochastic_seasonal.stan b/posterior_database/models/stan/state_space_stochastic_level_stochastic_seasonal.stan index fee26b70..c3653ecb 100644 --- a/posterior_database/models/stan/state_space_stochastic_level_stochastic_seasonal.stan +++ b/posterior_database/models/stan/state_space_stochastic_level_stochastic_seasonal.stan @@ -6,11 +6,11 @@ data { vector[n] w; } parameters { - vector[n] mu; + vector[n] mu; vector[n] seasonal; real beta; real lambda; - + positive_ordered[3] sigma; } transformed parameters { @@ -18,13 +18,17 @@ transformed parameters { yhat = mu + beta * x + lambda * w; } model { - for(t in 12:n) - seasonal[t] ~ normal(- sum(seasonal[t-11:t-1]), sigma[1]); - - for(t in 2:n) - mu[t] ~ normal(mu[t-1], sigma[2]); - + for (t in 12 : n) { + seasonal[t] ~ normal(-sum(seasonal[t - 11 : t - 1]), sigma[1]); + } + + for (t in 2 : n) { + mu[t] ~ normal(mu[t - 1], sigma[2]); + } + y ~ normal(yhat + seasonal, sigma[3]); sigma ~ student_t(4, 0, 1); } + + diff --git a/posterior_database/models/stan/surgical_model.stan b/posterior_database/models/stan/surgical_model.stan index 165d8e00..62f74146 100644 --- a/posterior_database/models/stan/surgical_model.stan +++ b/posterior_database/models/stan/surgical_model.stan @@ -1,28 +1,30 @@ data { int N; - int r[N]; - int n[N]; + array[N] int r; + array[N] int n; } parameters { - real mu; - real sigmasq; - real b[N]; + real mu; + real sigmasq; + array[N] real b; } transformed parameters { real sigma; - real p[N]; - sigma = sqrt(sigmasq); - for (i in 1:N) + array[N] real p; + sigma = sqrt(sigmasq); + for (i in 1 : N) { p[i] = inv_logit(b[i]); + } } model { - mu ~ normal(0.0, 1000.0); + mu ~ normal(0.0, 1000.0); sigmasq ~ inv_gamma(0.001, 0.001); b ~ normal(mu, sigma); r ~ binomial_logit(n, b); } generated quantities { real pop_mean; - pop_mean = inv_logit(mu); -} + pop_mean = inv_logit(mu); +} + diff --git a/posterior_database/models/stan/wells_daae_c_model.stan b/posterior_database/models/stan/wells_daae_c_model.stan index 3c7fcc54..427f2467 100644 --- a/posterior_database/models/stan/wells_daae_c_model.stan +++ b/posterior_database/models/stan/wells_daae_c_model.stan @@ -1,6 +1,6 @@ data { int N; - int switched[N]; + array[N] int switched; vector[N] dist; vector[N] arsenic; vector[N] assoc; @@ -11,8 +11,7 @@ transformed data { vector[N] c_arsenic = arsenic - mean(arsenic); vector[N] da_inter = c_dist100 .* c_arsenic; vector[N] educ4 = educ / 4.0; - matrix[N,5] x = [c_dist100', c_arsenic', da_inter', - assoc', educ4']'; + matrix[N, 5] x = [c_dist100', c_arsenic', da_inter', assoc', educ4']'; } parameters { real alpha; @@ -22,3 +21,4 @@ model { switched ~ bernoulli_logit_glm(x, alpha, beta); } + diff --git a/posterior_database/models/stan/wells_dae_c_model.stan b/posterior_database/models/stan/wells_dae_c_model.stan index ea0265e7..2d1a98e3 100644 --- a/posterior_database/models/stan/wells_dae_c_model.stan +++ b/posterior_database/models/stan/wells_dae_c_model.stan @@ -1,6 +1,6 @@ data { int N; - int switched[N]; + array[N] int switched; vector[N] dist; vector[N] arsenic; vector[N] educ; @@ -10,7 +10,7 @@ transformed data { vector[N] c_arsenic = arsenic - mean(arsenic); vector[N] da_inter = c_dist100 .* c_arsenic; vector[N] educ4 = educ / 4.0; - matrix[N,4] x = [c_dist100', c_arsenic', da_inter', educ4']'; + matrix[N, 4] x = [c_dist100', c_arsenic', da_inter', educ4']'; } parameters { real alpha; @@ -20,3 +20,4 @@ model { switched ~ bernoulli_logit_glm(x, alpha, beta); } + diff --git a/posterior_database/models/stan/wells_dae_inter_model.stan b/posterior_database/models/stan/wells_dae_inter_model.stan index b058c1fa..1253fa21 100644 --- a/posterior_database/models/stan/wells_dae_inter_model.stan +++ b/posterior_database/models/stan/wells_dae_inter_model.stan @@ -1,6 +1,6 @@ data { int N; - int switched[N]; + array[N] int switched; vector[N] dist; vector[N] arsenic; vector[N] educ; @@ -14,8 +14,8 @@ transformed data { vector[N] da_inter = c_dist100 .* c_arsenic; vector[N] de_inter = c_dist100 .* c_educ4; vector[N] ae_inter = c_arsenic .* c_educ4; - matrix[N,6] x = [c_dist100', c_arsenic', c_educ4', - da_inter', de_inter', ae_inter']'; + matrix[N, 6] x = [c_dist100', c_arsenic', c_educ4', da_inter', de_inter', + ae_inter']'; } parameters { real alpha; @@ -25,3 +25,4 @@ model { switched ~ bernoulli_logit_glm(x, alpha, beta); } + diff --git a/posterior_database/models/stan/wells_dae_model.stan b/posterior_database/models/stan/wells_dae_model.stan index 1d7af366..76d01b48 100644 --- a/posterior_database/models/stan/wells_dae_model.stan +++ b/posterior_database/models/stan/wells_dae_model.stan @@ -1,6 +1,6 @@ data { int N; - int switched[N]; + array[N] int switched; vector[N] dist; vector[N] arsenic; vector[N] educ; @@ -9,7 +9,7 @@ transformed data { // rescaling vector[N] dist100 = dist / 100.0; vector[N] educ4 = educ / 4.0; - matrix[N,3] x = [dist100', arsenic', educ4']'; + matrix[N, 3] x = [dist100', arsenic', educ4']'; } parameters { real alpha; @@ -19,3 +19,4 @@ model { switched ~ bernoulli_logit_glm(x, alpha, beta); } + diff --git a/posterior_database/models/stan/wells_dist.stan b/posterior_database/models/stan/wells_dist.stan index 5fd794b4..25cd72f4 100644 --- a/posterior_database/models/stan/wells_dist.stan +++ b/posterior_database/models/stan/wells_dist.stan @@ -1,6 +1,6 @@ data { int N; - int switched[N]; + array[N] int switched; vector[N] dist; } parameters { @@ -9,3 +9,5 @@ parameters { model { switched ~ bernoulli_logit(beta[1] + beta[2] * dist); } + + diff --git a/posterior_database/models/stan/wells_dist100_model.stan b/posterior_database/models/stan/wells_dist100_model.stan index 7b625500..c6e3e0e4 100644 --- a/posterior_database/models/stan/wells_dist100_model.stan +++ b/posterior_database/models/stan/wells_dist100_model.stan @@ -1,12 +1,12 @@ data { int N; - int switched[N]; + array[N] int switched; vector[N] dist; } transformed data { // rescaling - vector[N] dist100 = dist / 100.0; - matrix[N,1] x = [dist100']'; + vector[N] dist100 = dist / 100.0; + matrix[N, 1] x = [dist100']'; } parameters { real alpha; @@ -15,3 +15,5 @@ parameters { model { switched ~ bernoulli_logit_glm(x, alpha, beta); } + + diff --git a/posterior_database/models/stan/wells_dist100ars_model.stan b/posterior_database/models/stan/wells_dist100ars_model.stan index 5bde9b7e..05ce1680 100644 --- a/posterior_database/models/stan/wells_dist100ars_model.stan +++ b/posterior_database/models/stan/wells_dist100ars_model.stan @@ -1,13 +1,13 @@ data { int N; - int switched[N]; + array[N] int switched; vector[N] dist; vector[N] arsenic; } transformed data { // rescaling vector[N] dist100 = dist / 100.0; - matrix[N,2] x = [dist100', arsenic']'; + matrix[N, 2] x = [dist100', arsenic']'; } parameters { real alpha; @@ -16,3 +16,5 @@ parameters { model { switched ~ bernoulli_logit_glm(x, alpha, beta); } + + diff --git a/posterior_database/models/stan/wells_interaction_c_model.stan b/posterior_database/models/stan/wells_interaction_c_model.stan index 4bbd71d4..170ffed4 100644 --- a/posterior_database/models/stan/wells_interaction_c_model.stan +++ b/posterior_database/models/stan/wells_interaction_c_model.stan @@ -1,6 +1,6 @@ data { int N; - int switched[N]; + array[N] int switched; vector[N] dist; vector[N] arsenic; } @@ -10,7 +10,7 @@ transformed data { vector[N] c_arsenic = arsenic - mean(arsenic); // interaction vector[N] inter = c_dist100 .* c_arsenic; - matrix[N,3] x = [c_dist100', c_arsenic', inter']'; + matrix[N, 3] x = [c_dist100', c_arsenic', inter']'; } parameters { real alpha; @@ -20,3 +20,4 @@ model { switched ~ bernoulli_logit_glm(x, alpha, beta); } + diff --git a/posterior_database/models/stan/wells_interaction_model.stan b/posterior_database/models/stan/wells_interaction_model.stan index c8a17f07..23710be8 100644 --- a/posterior_database/models/stan/wells_interaction_model.stan +++ b/posterior_database/models/stan/wells_interaction_model.stan @@ -1,6 +1,6 @@ data { int N; - int switched[N]; + array[N] int switched; vector[N] dist; vector[N] arsenic; } @@ -9,7 +9,7 @@ transformed data { vector[N] dist100 = dist / 100.0; // interaction vector[N] inter = dist100 .* arsenic; - matrix[N,3] x = [dist100', arsenic', inter']'; + matrix[N, 3] x = [dist100', arsenic', inter']'; } parameters { real alpha; @@ -19,3 +19,4 @@ model { switched ~ bernoulli_logit_glm(x, alpha, beta); } + From 852d59c54b17a2d8ecb3657f82f017c36365de2e Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Fri, 15 Sep 2023 21:26:34 +0200 Subject: [PATCH 26/31] Test --- tests/check_posteriordb_content.R | 36 +++++++++++++++++-------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/tests/check_posteriordb_content.R b/tests/check_posteriordb_content.R index 73012e1b..6234950e 100644 --- a/tests/check_posteriordb_content.R +++ b/tests/check_posteriordb_content.R @@ -4,25 +4,29 @@ source("tests/check_posteriordb_content_functions.R") pdbl <- pdb_local("posterior_database") status_code <- check_pdb(pdbl, run_stan_code_checks = FALSE) -# Run Stan code for changed or added models -added_modified_paths <- strsplit(readLines(con = "added_modified.txt"), " ")[[1]] -posteriors_to_check <- get_posteriors_from_paths(paths = added_modified_paths, pdbl) +# These tests are currently skipped because a large number of model +# updates are being done to update to Stan 2.26 syntax +# All models has been tested locally. +if(FALSE){ + # Run Stan code for changed or added models + added_modified_paths <- strsplit(readLines(con = "added_modified.txt"), " ")[[1]] + posteriors_to_check <- get_posteriors_from_paths(paths = added_modified_paths, pdbl) -# Posteriors to skip on CI (they work locally) -posteriors_to_skip_check <- c("dogs-dogs_nonhierarchical", "wells_data-wells_dae_c_model", "seeds_data-seeds_stanified_model") + # Posteriors to skip on CI (they work locally) + posteriors_to_skip_check <- c("dogs-dogs_nonhierarchical", "wells_data-wells_dae_c_model", "seeds_data-seeds_stanified_model") -if(length(posteriors_to_check) > 0){ - cat("Checking changed posteriors:\n") - cat(paste(posteriors_to_check, collapse = "\n"),"\n\n") - library(rstan) - for(i in seq_along(posteriors_to_check)){ - if(posteriors_to_check[i] %in% posteriors_to_skip_check) next - post <- pdb_posterior(posteriors_to_check[i], pdbl) - status_code2 <- posteriordb:::check_pdb_posterior(post, run_stan_code_checks = TRUE) - posteriordb:::pdb_clear_cache(pdbl) - status_code <- max(status_code, as.integer(!status_code2)) + if(length(posteriors_to_check) > 0){ + cat("Checking changed posteriors:\n") + cat(paste(posteriors_to_check, collapse = "\n"),"\n\n") + library(rstan) + for(i in seq_along(posteriors_to_check)){ + if(posteriors_to_check[i] %in% posteriors_to_skip_check) next + post <- pdb_posterior(posteriors_to_check[i], pdbl) + status_code2 <- posteriordb:::check_pdb_posterior(post, run_stan_code_checks = TRUE) + posteriordb:::pdb_clear_cache(pdbl) + status_code <- max(status_code, as.integer(!status_code2)) + } } } - q(status = status_code) From bcd0b56e4299b691ce843e7900a3c02d3edc07ef Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Fri, 22 Sep 2023 13:05:03 +0200 Subject: [PATCH 27/31] Remove incorrect code --- posterior_database/models/stan/grsm_latent_reg_irt.stan | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/posterior_database/models/stan/grsm_latent_reg_irt.stan b/posterior_database/models/stan/grsm_latent_reg_irt.stan index e8d8f00e..299d36d5 100644 --- a/posterior_database/models/stan/grsm_latent_reg_irt.stan +++ b/posterior_database/models/stan/grsm_latent_reg_irt.stan @@ -82,10 +82,11 @@ model { } } generated quantities { - vector[K] lambda; - lambda[2 : K] = lambda_adj[2 : K] ./ to_vector(adj[2, 2 : K]); - lambda[1] = W_adj[1, 1 : K] * lambda_adj[1 : K] - - W[1, 2 : K] * lambda[2 : K]; + // This part is currently not working + // vector[K] lambda; + // lambda[2 : K] = lambda_adj[2 : K] ./ to_vector(adj[2, 2 : K]); + // lambda[1] = W_adj[1, 1 : K] * lambda_adj[1 : K] + // - W[1, 2 : K] * lambda[2 : K]; } From a3332a89c09f117cdbdc135748607ad98a1bcba5 Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Fri, 22 Sep 2023 14:43:00 +0200 Subject: [PATCH 28/31] Fixes --- .github/workflows/posteriordb_content.yml | 6 ------ tests/check_posteriordb_content.R | 3 ++- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/posteriordb_content.yml b/.github/workflows/posteriordb_content.yml index bb263f21..3bf1fd16 100644 --- a/.github/workflows/posteriordb_content.yml +++ b/.github/workflows/posteriordb_content.yml @@ -27,12 +27,6 @@ jobs: - uses: r-lib/actions/setup-r@v2 - - id: files - uses: jitterbit/get-changed-files@v1 - - - run: | - echo "${{ steps.files.outputs.added_modified }}" >> "added_modified.txt" - - name: Install curl if: runner.os == 'Linux' run: | diff --git a/tests/check_posteriordb_content.R b/tests/check_posteriordb_content.R index 6234950e..13ab57c4 100644 --- a/tests/check_posteriordb_content.R +++ b/tests/check_posteriordb_content.R @@ -5,8 +5,9 @@ pdbl <- pdb_local("posterior_database") status_code <- check_pdb(pdbl, run_stan_code_checks = FALSE) # These tests are currently skipped because a large number of model -# updates are being done to update to Stan 2.26 syntax +# updates are being done to update to Stan 2.26 syntax. # All models has been tested locally. +# In addition it is difficulties in getting changed files that needs to be fixed if(FALSE){ # Run Stan code for changed or added models added_modified_paths <- strsplit(readLines(con = "added_modified.txt"), " ")[[1]] From 0ec3f30590df090dd3437e1aadd2e72ba7c7262e Mon Sep 17 00:00:00 2001 From: Aki Vehtari Date: Thu, 12 Oct 2023 10:02:59 +0300 Subject: [PATCH 29/31] Fixed typos and did some cleaning --- doc/KEYWORDS.md | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/doc/KEYWORDS.md b/doc/KEYWORDS.md index ac198964..90ae2f28 100644 --- a/doc/KEYWORDS.md +++ b/doc/KEYWORDS.md @@ -1,27 +1,24 @@ Posterior keywords ================== -Below are the definition of some of the keywords used. These are tags added to posterior that we __known__. Hence, there might exist posteriors that should have the keyword where it is currently missing. If you see this, please file an issue and we will try to fix it. +Below are the definition of some of the keywords used. These are tags added to posterior that we __know__. Hence, there might exist posteriors that should have the keyword where it is currently missing. If you see this, please file an issue and we will fix it. -```easy```: Posteriors that can be computed with standard Stan settings (adapt delta = 0.8) without any divergent transitions for 10 000 draws and on average uses less than 100 leapfrog steps. +```easy```: Posteriors that can be computed with standard Stan settings (adapt delta = 0.8) without any divergent transitions for 10 000 draws and on average use less than 100 leapfrog steps per iteration. -```slow```: Posteriors that takes more than 1h to run 1000 iterations/warmup on a standard CPU. The difficulties can be due to different reasons. +```slow```: Posteriors that take more than 1h to run 1000 iterations/warmup on a standard CPU. The difficulties can be due to different reasons. +```arm book```: Posteriors that can be found in "Gelman, A., & Hill, J. (2006). Data analysis using regression and multilevel/hierarchical models. Cambridge University Press." -```arm book```: Posteriors that can be found in Gelman, A., & Hill, J. (2006). Data analysis using regression and multilevel/hierarchical models. Cambridge university press. +```pathfinder paper```: Posteriors used in "Zhang, L., Carpenter, B., Gelman, A., & Vehtari, A. (2022). Pathfinder: Parallel quasi-Newton variational inference. Journal of Machine Learning Research, 23(306), 1-49." -```pathfinder paper```: Posteriors used in Zhang, L., Carpenter, B., Gelman, A., & Vehtari, A. (2022). Pathfinder: Parallel quasi-Newton variational inference. Journal of Machine Learning Research, 23(306), 1-49. +```bpa book```: Posteriors translated by Hiroki Itô from "Kéry, M., & Schaub, M. (2011). Bayesian population analysis using WinBUGS: a hierarchical perspective. Academic Press." -```bpa book```: Posteriors translated by Hiroki Itô from Kéry, M., & Schaub, M. (2011). Bayesian population analysis using WinBUGS: a hierarchical perspective. Academic Press. +```stan benchmark```: Posteriors used in the Stan repository "Benchmark Models for Evaluating Algorithm Accuracy. https://github.com/stan-dev/stat_comp_benchmarks". -```stan benchmark```: Early posteriors used in the Stan repository "Benchmark Models for Evaluating Algorithm Accuracy". The repository can be found here: -https://github.com/stan-dev/stat_comp_benchmarks +```stan case study```: Posteriors from "Stan cases studies. https://mc-stan.org/users/documentation/case-studies.html". -```stan case study```: Posteriors for Stan cases studies. See the following URL for more information: -https://mc-stan.org/users/documentation/case-studies.html +```warmup paper```: Posteriors used in "Bales, B., Pourzanjani, A., Vehtari, A., & Petzold, L. (2019). Selecting the metric in Hamiltonian monte carlo. arXiv preprint arXiv:1905.11916." -```warmup paper```: Posteriors used in Bales, B., Pourzanjani, A., Vehtari, A., & Petzold, L. (2019). Selecting the metric in Hamiltonian monte carlo. arXiv preprint arXiv:1905.11916. +```bugs examples``` Posteriors from "BUGS example models and data. https://github.com/stan-dev/example-models/tree/master/bugs_examples". -```bugs examples``` Posteriors from BUGS example models and data. See the following URL for more information: https://github.com/stan-dev/example-models/tree/master/bugs_examples - -```stan examples``` Posteriors from Stan examples at: https://github.com/stan-dev/example-models +```stan examples``` Posteriors from "Stan examples. https://github.com/stan-dev/example-models". From 996e5b28e8cb9e15826d48b5e15d4f859b88a503 Mon Sep 17 00:00:00 2001 From: Aki Vehtari Date: Thu, 12 Oct 2023 10:13:30 +0300 Subject: [PATCH 30/31] Added references for diagnostics --- doc/REFERENCE_POSTERIOR_DEFINITION.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/REFERENCE_POSTERIOR_DEFINITION.md b/doc/REFERENCE_POSTERIOR_DEFINITION.md index 92a8e45c..2f3ccdbb 100644 --- a/doc/REFERENCE_POSTERIOR_DEFINITION.md +++ b/doc/REFERENCE_POSTERIOR_DEFINITION.md @@ -5,10 +5,10 @@ The purpose of the reference posterior definition is to define the criteria for A reference posterior should have: 1. 10 000 draws per parameter in the model. -1. An Rhat (see [arXiv](https://arxiv.org/abs/1903.08008)) below 1.01 for all parameters. -1. Approximately independent draws, i.e all parameters have an autocorrelation at lag 1 that is less than 0.05. -1. All Expected Fraction of Missing Information (E-FMI) is below 0.2 -1. No divergent transitions (if HMC is used) +1. An Rhat (see [Vehtari et al. (2021)](https://doi.org/10.1214/20-BA1221)) below 1.01 for all parameters. +1. Approximately independent draws, that is, all parameters have an autocorrelation at lag 1 that is less than 0.05 (see, e.g., [Vehtari et al. (2021)](https://doi.org/10.1214/20-BA1221))). +1. All Expected Fraction of Missing Information (E-FMI) is below 0.2 (see section 6.1 of [A Conceptual Introduction to Hamiltonian Monte Carlo](https://arxiv.org/abs/1701.02434)) +1. No divergent transitions if HMC is used (see [Stan Reference Manual](https://mc-stan.org/docs/reference-manual/divergent-transitions.html)) Computing Reference Posteriors Draws From a3b586a691cb9879a4cae83b259187cd4857d4ed Mon Sep 17 00:00:00 2001 From: Mans Magnusson Date: Sun, 15 Oct 2023 11:13:39 +0200 Subject: [PATCH 31/31] bump version --- CITATION.cff | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index a7f5f29e..7ea23904 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -8,5 +8,5 @@ authors: - family-names: Vehtari given-names: Aki title: "posteriordb: a set of posteriors for Bayesian inference and probabilistic programming" -version: 0.3 -date-released: 2021-09-10 +version: 0.4 +date-released: 2023-10-15