Provides functions for working with primary event censored distributions and ‘Stan’ implementations for use in Bayesian modeling. Primary event censored distributions are useful for modeling delayed reporting scenarios in epidemiology and other fields (Charniga et al. (2024) doi:10.48550/arXiv.2405.08841). It also provides support for arbitrary delay distributions, a range of common primary distributions, and allows for truncation and secondary event censoring to be accounted for (Park et al. (2024) doi:10.1101/2024.01.12.24301247). A subset of common distributions also have analytical solutions implemented, allowing for faster computation. In addition, it provides multiple methods for fitting primary event censored distributions to data via optional dependencies.
You can install the latest released version from CRAN using the
standard install.packages
function:
install.packages("primarycensored")
Alternatively, you can install the latest release from our r-universe repository:
install.packages("primarycensored", repos = "https://epinowcast.r-universe.dev")
To install the development version from GitHub (warning! this version
may contain breaking changes and/or bugs), use the pak
package:
::pak("epinowcast/primarycensored") pak
Similarly, you can install historical versions by specifying the
release tag (e.g., v0.2.0
):
::pak("epinowcast/primarycensored@v0.2.0") pak
Note: You can also use the above approach to install a specific commit if needed, for example, if you want to try out a specific unreleased feature, but not the absolute latest developmental version.
If you wish to use the Stan functions, you will need to install CmdStan, which
also entails having a suitable C++ toolchain setup. We recommend using
the cmdstanr
package. The Stan team provides instructions in the Getting
started with cmdstanr
vignette, with other details
and support at the package
site along with some key instructions available in the Stan
resources package vignette, but the brief version is:
# if you not yet installed `primarycensored`, or you installed it without
# `Suggests` dependencies
install.packages(
"cmdstanr",
repos = c("https://stan-dev.r-universe.dev", getOption("repos"))
)# once `cmdstanr` is installed:
::install_cmdstan() cmdstanr
Note: You can speed up CmdStan installation using the
cores
argument. If you are installing a particular version
of epinowcast
, you may also need to install a past version
of CmdStan, which you can do with the version
argument.
We provide a range of other documentation, case studies, and community spaces to ask (and answer!) questions:
The primarycensored
website includes a function reference, model outline, and case
studies using the package. The site mainly concerns the release version,
but you can also find documentation for the latest
development version.
We have created package vignettes to help you get started with primarycensored and to highlight other features with case studies.
Our organisation website includes links to other resources, guest posts, and seminar schedule for both upcoming and past recordings.
Our community forum
has areas for question and
answer and considering new
methods and tools, among others. If you are generally interested in
real-time analysis of infectious disease, you may find this useful even
if you do not use primarycensored
.
We welcome contributions and new contributors! We particularly appreciate help on identifying and identified issues. Please check and add to the issues, and/or add a pull request and see our contributing guide for more information.
If you need a different underlying model for your work:
primarycensored
provides a flexible framework for censored
distributions in both R and Stan. If you implement new distributions or
censoring mechanisms that expand the overall flexibility or improve the
defaults, please let us know either here or on the community forum. We always
like to hear about new use-cases and extensions to the package.
Please briefly describe your problem and what output you expect in an issue. If you have a question, please don’t open an issue. Instead, ask on our Q and A page. See our contributing guide for more information.
Please note that the primarycensored
project is released
with a Contributor
Code of Conduct. By contributing to this project, you agree to abide
by its terms.
If making use of our methodology or the methodology on which ours is
based, please cite the relevant papers from our methods
outline. If you use primarycensored
in your work,
please consider citing it with
citation("primarycensored")
.
All contributions to this project are gratefully acknowledged using
the allcontributors
package following the all-contributors specification.
Contributions of any kind are welcome!
seabbs, SamuelBrand1, athowes, sbfnk