This is the first major release of primarycensored
and has been submitted to CRAN.
- Fix internal package misspelling of
primary_lpdf
. - Move to "stable" lifecycle status.
- Added
rhub
checks to theGithub Actions
workflow. - Added
dependencies: "hard"
to theR-CMD-check
workflow to ensure checks pass without optional dependencies. - Improved handling of examples that use optional dependencies.
- Check all URLs for redirects.
- Ensure that all functions have documented return values.
This release renames the package to primarycensored
from primarycensoredist
and also renames many of the functions to remove the dist
in their name. This was done to make the package name and the functions more consistent and to remove the need to use the dist
suffix. It also aligns it with the new PrimaryCensored.jl
package in our Julia ecosystem.
Aside from name changes, this release also adds an analytical solution for the weibull distribution with uniform primary censoring, removes the need to assign functions to the global environment for fitdistdoublecens()
by using withr
, and adds a check_truncation()
function to check if the truncation time is larger than the maximum observed delay. This is used in fitdistdoublecens()
and pcd_as_stan_data()
to ensure that the truncation time is appropriate to maximise computational efficiency.
- Removed the need to assign functions to the global environment for
fitdistdoublecens()
by usingwithr
. - Added a
check_truncation()
function to check if the truncation time is larger than the maximum observed delay. This is used infitdistdoublecens()
andpcd_as_stan_data()
to ensure that the truncation time is appropriate to maximise computational efficiency. pcd_as_cmdstan_data()
has been renamed topcd_as_stan_data()
to better reflect that it is used forStan
models in general rather than just theCmdStan
models.- The stan code has been refactored into a folder of functions within the current
stan
folder and thestan
model has been moved into thestan
folder. All paths to the stan code have been updated to reflect this. - Added R and stan implementations of the primary censored cdf for the weibull distribution with uniform primary censoring.
- The package has been renamed to
primarycensored
as have all functions that use "dist" in their name.
- Simplified the "Analytic solutions" vignette by removing verbose derivation details.
- Added links between vignettes to make it easier to navigate the documentation.
- Added explicit usage of
pdist
,dprimary
,rdist
, andrprimary
arguments in the getting started vignette to make it easier to link to mathematical details. - Fixed error in "Analytic solutions" vignette where the Weibull density was not being treated as zero for negative delays.
- Split "Why it works" vignette into two separate vignettes, "Why it works" and "Analytic solutions for censored delay distributions".
This release adds a new {touchstone}
based benchmark suite to the package. It also adds a new "How it works" vignette which aims to give the reader more details into how the primary censored distributions work.
As part of the "How it works" we (@SamuelBrand1) found analytical solutions for the gamma, lognormal, and weibull distributions with uniform primary censoring. These are now implemented for the lognormal and gamma distributions in the R
and stan
code providing significant speedups to the fitting process (~10-20 times faster). The Weibull will be added in the next release.
- Add
{touchstone}
based benchmarks for benchmarking R utility functions, and fitting thestan
andfitdistplus
models. - Added a "How it works" vignette.
- Added R infrastructure for analytical solutions via the
primarycensored
S3 class. - Added Weibull analytical solution to "How it works" vignette.
- Added analytical solutions for the gamma and lognormal distributions with uniform primary censoring to both the
R
andstan
code. - Added numerical protection to ensure that CDFs for delays greater than the maximum truncation are exactly 1.
In this release, we have added a new package stan
model for fitting distributions using the cmdstanr
package. We have also added a new function fitdistdoublecens()
to allow for fitting of double censored and truncated data using the fitdistrplus
package. As well as these functionality improvements this release focuses on improving the stability of the stan
model and improving the speed of the primarycensored_ode
function.
- Added a new function
fitdistdoublecens()
to allow for fitting of double censored and truncated data using thefitdistrplus
package. - Added low level tests for the Stan
primarycensored_ode
function. - Rephrased the stan code to use a ODE solver rather than a numerical integration method. This allows for much faster and more stable computation of the likelihood
- Added a
CmdStan
model for fitting distributions using thecmdstanr
package. - Added helpers functions for working with the new
CmdStan
model and added an example to the vignette. - Added parameter recovery tests for the new
CmdStan
model which tests theprimarycensored_lpmf
function when used with NUTS based fitting.
This release fixes and improves truncation handling across the code base. It also adds a new vignette showcasing how to use the primarycensored
and fitdistrplus
packages together to fit distributions.
- Updated the approach to truncation to be outside the primary censored distribution integral.
- Improved tests that compare random sampling and probability mass/density functions between R and Stan.
- Improved cross-testing between R and Stan implementations of the primary censored distributions.
- Worked on improving the stability of the
primarycensored_lpmf
when used for NUTS based fitting (i.e. in Stan).
- @athowes improved the getting started vignette by catching a few grammar errors and simplifying language.
- Added a new vignette showcasing how to use the
primarycensored
andfitdistrplus
packages together to fit distributions.
This release puts in place initial documentation and vignettes. It also includes a new primary censored distribution interface to allow for non-secondary event censored distributions. Development of this release as identified some numerical issues in the
gradient evaluations for the primary censored distributions which may lead to breaking
interface changes in 0.3.0
for the Stan code.
- Added support for
swindow = 0
torprimarycensored
to allow for non-secondary event censored distributions. - Adapted
rprimarycensored
so that truncation is based on the primary censored distribution before secondary events are censored. This better matches the generative process. - Added a new Stan interface tool to enable finding which files functions are implemented in the Stan code.
- Added a getting started vignette.
- Added a vignette showcasing how to use the package Stan code with
cmdstanr
. - Added a vignette showcasing how to fit distributions using the
cmdstanr
package.
This is the initial primarycensored
release and includes R and stan tools for dealing with potentially truncated primary event censored delay distributions. We expect all current features to work but the UI may change as the package matures over the next few versions.
- Added package skeleton.
- Added checking input functions.
- Added stan functions for primary censored and truncated distributions.
- Added R functions for primary censored and truncated distributions.
- Add R function to facilitate working with the Stan code.
- Added tests for primary censored and truncated distributions.
- Added tests to compare R and Stan implementations.
- Added tests for the R functions that facilitate working with the Stan code.
- Resolved R CMD check errors, warnings and notes.
- Added a hexsticker.
- Added vignette skeletons in preparation for
0.2.0
release.