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 delay
  • interval_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 distribution D with primary event distribution P
  • IntervalCensored{D, T}: Wraps continuous distribution D with interval boundaries of type T
  • 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 functions
  • cdf, logcdf: Cumulative distribution functions
  • quantile: Inverse CDF (where analytically tractable)
  • rand: Random number generation
  • minimum, maximum, insupport: Support queries
  • mean, 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's pdf(primary_censored(...))
  • R's pprimarycensored() → Julia's cdf(primary_censored(...))
  • R's qprimarycensored() → Julia's quantile(primary_censored(...))
  • R's rprimarycensored() → Julia's rand(primary_censored(...))

Parameter Differences

  • Primary event window: Use primary_event = Uniform(0, pwindow) instead of R's pwindow parameter
  • Solver selection: Configure via solver keyword instead of R's integration method parameters
  • Truncation: Apply via truncated() from Distributions.jl or use double_interval_censored() convenience function

Contributors