epiverse-trace/serofoi: serofoi 0.1.0
Authors/Creators
- 1. data.org
- 2. @libscie
- 3. London School of Hygiene and Tropical Medicine
Description
serofoi 0.1.0
New features
- Data simulation functions from time-varying or age-varying force of infection trends. The following is an example to simulate from a constant (in time) force of infection:
foi_sim_constant <- rep(0.02, 50)
serodata_constant <- generate_sim_data(
sim_data = data.frame(
age=seq(1,50),
tsur=2050),
foi=foi_sim_constant,
sample_size_by_age = 5
)
To generate grouped serosurveys the function group_sim_data can be used:
serodata_constant <- group_sim_data(serodata_constant , step = 5)
Breaking changes
Simplifies
fit_seromodeloutput- Before, the output of
fit_seromodelwas a list:
- Before, the output of
seromodel_object <- list(
fit = fit,
seromodel_fit = seromodel_fit,
serodata = serodata,
serodata = serodata,
stan_data = stan_data,
...
)
Now, the output is a
stan_fitobject as obtained fromrstan::sampling. Because of this, some plotting functionalities now requireserodataas an input.Initial prior distribution parameters
foi_locationandfoi_scalecan be specified explicitely infit_seromodel:
seromodel <- fit_seromodel(
serodata,
foi_model = "tv_normal",
foi_location = 0,
foi_scale = 1
)
Depending on the selected model foi_model, the meaning of the parameters change. For the tv_normal_log model these parameters must be in logarithmic scale; the recommended usage is:
seromodel <- fit_seromodel(
serodata,
foi_model = "tv_normal_log",
foi_location = -6,
foi_scale = 4
)
- Chunks structure specification is now possible
- Before, the models estimated one value of the force of infection per year in the time spanned by the serosurvey:
data(chagas2012)
serodata <- prepare_serodata(chagas2012)
seromodel <- fit_seromodel(serodata, foi_model = "tv_normal")
- Now, the amount of force of infection values estimated by the models depend on the specified chunk structure. This can either be specified by size:
seromodel <- fit_seromodel(serodata, foi_model = "tv_normal", chunk_size = 10)
or explicitly:
chunks <- rep(c(1, 2, 3, 4, 5), c(10, 10, 15, 15, max(serodata$age_mean_f)-50))
seromodel <- fit_seromodel(serodata, foi_model = "tv_normal", chunks = chunks)
- Deprecate
run_seromodel. Initially this function was intended to be a handler forfit_seromodelfor cases when the user may need to implement the same model to multiple independent serosurveys; now we plan to showcase examples of this using the current functionalities of the package (to be added in future versions to the vignettes).
Minor changes
Refactorization of the visualization module
plot_seroprevallows for data binning (age group manipulation) by means of parametersbin_data=TRUEandbin_step.- Automatic selection of
yminandymaxaesthetics plotting functions (with the exception ofplot_rhats). - Correct input validation
Remove duplicated data in
veev2012dataset
Internal changes
Remove large files from git history (see #77).
Added input validation for the following functions:
prepare_serodatagenerate_sim_dataget_age_groupfit_seromodelextract_seromodel_summaryplot_seroprevplot_seroprev_fittedplot_foiplot_seromodel
Unit testing:
- Separate modelling testings by model
- Use of
dplyr::nearto test models statistical validity - Add tests for data simulation functions
Update package template in accordance to {packagetemplate}
Files
epiverse-trace/serofoi-v0.1.0.zip
Files
(649.7 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:0aa86001a5e91dfdf234fef23fb5f083
|
649.7 kB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/epiverse-trace/serofoi/tree/v0.1.0 (URL)