epiverse-trace/serofoi: serofoi 0.1.0
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_seromodel
output- Before, the output of
fit_seromodel
was 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_fit
object as obtained fromrstan::sampling
. Because of this, some plotting functionalities now requireserodata
as an input.Initial prior distribution parameters
foi_location
andfoi_scale
can 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_seromodel
for 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_seroprev
allows for data binning (age group manipulation) by means of parametersbin_data=TRUE
andbin_step
.- Automatic selection of
ymin
andymax
aesthetics plotting functions (with the exception ofplot_rhats
). - Correct input validation
Remove duplicated data in
veev2012
dataset
Internal changes
Remove large files from git history (see #77).
Added input validation for the following functions:
prepare_serodata
generate_sim_data
get_age_group
fit_seromodel
extract_seromodel_summary
plot_seroprev
plot_seroprev_fitted
plot_foi
plot_seromodel
Unit testing:
- Separate modelling testings by model
- Use of
dplyr::near
to 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)