Software Open Access
Sam Abbott; Adrian Lison; Sebastian Funk; choi-hannah; Pietro Monticone; Carl A. B. Pearson; Hugo Gruson; Pratik Gupte
This release adds several extensions to our modelling framework, including modelling of missing data, flexible modelling of the generative process underlying case counts, an optional renewal equation-based generative process (enabling direct estimation of the effective reproduction number), and convolution-based latent reporting delays (enabling the modelling of both directly observed and unobserved delays as well as partial ascertainment). Much of the methodology used in these extensions is based on work done by Adrian Lison and is currently being evaluated.
On top of model extensions this release also adds a range of quality of life features, such as a helper functions for constructing convolution matrices and combining probability mass functions. It also comes with improved computational efficiency, thanks to a refactoring of the hazard model computations to the log scale and extended parallelisation of the likelihood that is optimised for the structure of the input data. We have also extended the package documentation and streamlined the contribution process.
As a large-scale project, this package remains in an experimental state, although it is sufficiently stable for both research and production usage. More core development is needed to improve post-proccessing, pre-processing, and documentation coverage. Moreover, the optimal configuration for different settings still needs to be further explored and is currently mainly the responsibility of the user. Please see our community site, contributing guide, and list of issues/proposed features if you are interested in getting involved. Any scale of contribution is warmly welcomed including user feedback, requests to extend our functionality to cover your setting, and evaluations of the package in your context. This is a community project that needs support from its users in order to provide improved tools for real-time infectious disease surveillance.
We thank @adrian-lison, @choi-hannah, @sbfnk, @Bisaloo, @seabbs, @pearsonca, and @pratikunterwegs for code contributions to this release. We also thank all community members for their contributions including @jhellewell14, @FelixGuenther, @parksw3, and @jbracher.
Full details on the changes in this release can be found in the following sections.
Package.Rhistory
to the .gitignore
file. See #132 by @choi-hannah.DESCRIPTION
file. See #132 by @choi-hannah.enw_new_reports()
to enw_cumulative_to_incidence()
and added the reverse function enw_incidence_to_cumulative()
both functions use a by
argument to allow specification of variable groupings. See #157 by @seabbs.inherits(x, "class")
rather than class(x) %in% "class"
. See #155 by @Bisaloo.enw_add_metaobs_features()
interface to have holidays
argument as
a series of dates. Changed interface of enw_preprocess_data()
to pass ...
to enw_add_metaobs_features()
. Interface changes come with internal rewrite and unit tests. As part of internal rewrite, introduces coerce_date()
to R/utils.R
, which wraps data.table::as.IDate()
with error handling. See #151 by @pearsonca.match.arg
for validating inputs. Briefly, the preference is now to define options via function arguments and validate with automatic match.arg
idiom with corresponding enumerated documentation of the options. For this idiom, the first item in the definition is the default. This approach only applies to string-based arguments; different types of arguments cannot be matched this way, nor can arguments that allow for vector-valued options (e.g., if somearg = c("option1", "option2")
were a legal argument indicating to use both options). See #162 by @pearsonca addressing issue #156 by @Bisaloo.cmdstan
locally to improve the developer/contributor experience. See #147 by @seabbs and @adrian-lison.cpp_options
to cmdstanr::cmdstan_model()
. See #182 by @seabbs.convolution_matrix()
for constructing convolution matrices. See #183 by @seabbs.enw_model()
to write_stan_files_no_profile()
for the target_dir
argument. This allows users to compile the model once and then share the compiled model across sessions rather than having to recompile each time the temporary directory is cleared. See #185 by @seabbs.add_pmfs()
, to sum probability mass functions into a new probability mass function. Initial implementation by @seabbs in #183, refactored by @pratikunterwegs in #187, following a suggestion in issue #186 by @pearsonca.convert_cmdstan_to_rstan
. See #192 by @sbfnk.inst/stan/epinowcast.stan
to increase modularity and clarity. See #140 by @seabbs.delay_snap_lmpf
and delay_group_lmpf
. These stratify by either snapshots or groups. This is helpful for some models (such as the missingness module). The ability to choose which function is used has been exposed to the user in enw_fit_opts()
via the likelihood_aggregation
argument. Both of these functions rely on a newly added expected_obs_from_snaps
function which vectorises expected_obs_from_index
. See #138 by @seabbs and @adrian-lison.delay_group_lmpf
to support modelling observations missing reference dates. Also updated the generated quantities to support this mode. See #147 by @seabbs and @adrian-lison based on #64 by @adrian-lison.NEWS.md
file. See #132 by @choi-hannah.enw_missing()
model module. See #138 by @seabbs and @adrian-lison.ref_as_p
in the stan code. There was an additional issue in that the enw_report()
module currently self-declares as on regardless of it is or not. This bug had no impact on results but would have increased runtimes for simple models. Both of these issues were fixed in #142 by @seabbs.enw_example()
pointing at an old file name when type="script"
. By @pearsonca.Full Changelog: https://github.com/epinowcast/epinowcast/compare/v0.1.0...v0.2.0
Name | Size | |
---|---|---|
epinowcast/epinowcast-v0.2.0.zip
md5:42755ca83eecc312fca1262fd0fa8bf4 |
14.3 MB | Download |
All versions | This version | |
---|---|---|
Views | 2,091 | 10 |
Downloads | 0 | 0 |
Data volume | 0 Bytes | 0 Bytes |
Unique views | 1,955 | 10 |
Unique downloads | 0 | 0 |