Release notes
CensoredDistributions.jl follows a hybrid changelog approach:
- GitHub Releases: All releases (automatically generated by TagBot)
- NEWS.md: Major releases requiring detailed context (shown below)
See GitHub Releases for minor/patch release information.
v0.1.0 - Initial Release
CensoredDistributions.jl extends Distributions.jl to support primary event censoring and interval censoring, enabling modelling of scenarios where observation times are subject to various forms of censoring and truncation.
Core Functionality
Distribution Constructors
primary_censored(dist, primary_event)
: Creates primary event censored distributions where an initiating event occurs within a time window, then experiences a delayinterval_censored(dist, interval)
: Creates interval censored distributions for continuous values observed only within discrete intervals (regular or arbitrary intervals)double_interval_censored(dist; kwargs...)
: Combines primary event censoring, optional truncation, and optional secondary interval censoring in an appropriate mathematical sequence
Distribution Types
PrimaryCensored{D, P}
: Wraps delay distributionD
with primary event distributionP
IntervalCensored{D, T}
: Wraps continuous distributionD
with interval boundaries of typeT
DoubleIntervalCensored
: Composition of multiple censoring mechanisms
Extensible CDF Method
primarycensored_cdf()
: User-extensible method for computing CDFs of primary censored distributions with analytical solutions for common distribution pairs
Utility Functions
weight(dist, weights)
: Creates weighted distributions for efficient likelihood computation
Distributions.jl Interface
Partial implementation of Distributions.jl interface including:
pdf
,logpdf
: Probability density functionscdf
,logcdf
: Cumulative distribution functionsquantile
: Inverse CDF (where analytically tractable)rand
: Random number generationminimum
,maximum
,insupport
: Support queriesmean
,var
,std
: Moments (where analytically tractable)
Migration from primarycensored R Package
CensoredDistributions.jl provides a Julia-native implementation with enhanced functionality compared to the primarycensored R package:
Function Mapping
- R's
dprimarycensored()
→ Julia'spdf(primary_censored(...))
- R's
pprimarycensored()
→ Julia'scdf(primary_censored(...))
- R's
qprimarycensored()
→ Julia'squantile(primary_censored(...))
- R's
rprimarycensored()
→ Julia'srand(primary_censored(...))
Parameter Differences
- Primary event window: Use
primary_event = Uniform(0, pwindow)
instead of R'spwindow
parameter - Solver selection: Configure via
solver
keyword instead of R's integration method parameters - Truncation: Apply via
truncated()
from Distributions.jl or usedouble_interval_censored()
convenience function
Contributors
- Sam Abbott (@seabbs)
- Damon Bayer (@damonbayer)
- Sam Brand (@sambrand)
- Michael DeWitt (@dewittpe)
- Joseph Lemaitre