primarycensored
Loading...
Searching...
No Matches
Log CDFs for the ode function

Helper function to compute the log CDF for the delay distribution. More...

Collaboration diagram for Log CDFs for the ode function:

Functions

real gengamma_lcdf (real y, real shape, real scale, real k)
 
int dist_has_positive_support (data int dist_id)
 
int lognormal_lcdf_underflows (real y, real mu, real sigma)
 
real dist_lcdf (real delay, array[] real params, int dist_id)
 

Description

Helper function to compute the log CDF for the delay distribution.

Function Documentation

◆ dist_has_positive_support()

int dist_has_positive_support ( data int dist_id)

Test whether a delay distribution has support only on the non-negative reals

Used internally to decide whether to short-circuit dist_lcdf at delay <= 0 and whether the ODE / nested CDF calls need to integrate over negative arguments. Returns 1 for distributions with strictly non-negative support, 0 otherwise. IDs match pcd_distributions$stan_id in R.

Parameters
dist_idDistribution identifier
Returns
1 if the delay distribution has non-negative support, 0 otherwise.

Definition at line 33 of file primarycensored_ode.stan.

Here is the caller graph for this function:

◆ dist_lcdf()

real dist_lcdf ( real delay,
array[]real params,
int dist_id )

Compute the log CDF of the delay distribution

Parameters
delayTime delay
paramsDistribution parameters
dist_idDistribution identifier matching pcd_distributions in R: 1: Lognormal, 2: Gamma, 3: Weibull, 4: Exponential, 5: Generalised gamma, 9: Beta, 12: Cauchy, 13: Chi-square, 15: Gumbel, 16: Inverse Gamma, 17: Logistic, 18: Normal, 19: Inverse Chi-square, 20: Double Exponential, 21: Pareto, 22: Scaled Inverse Chi-square, 23: Student's t, 24: Uniform, 25: von Mises, 26: Non-parametric step (params = [boundaries (K+1), pmf (K)], length 2*K + 1), 27/28: Non-parametric discrete hazard (params = [boundaries (K+1), hazards (K)], length 2*K + 1; hazards[K] must equal 1). 27 and 28 share this likelihood and only differ in the prior on the hazards (random walk for 27, IID random effect for 28).
Returns
Log CDF of the delay distribution
// Example: Lognormal distribution
real delay = 5.0;
array[2] real params = {0.0, 1.0}; // mean and standard deviation on log scale
int dist_id = 1; // Lognormal
real log_cdf = dist_lcdf(delay, params, dist_id);
real dist_lcdf(real delay, array[] real params, int dist_id)

Definition at line 107 of file primarycensored_ode.stan.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ gengamma_lcdf()

real gengamma_lcdf ( real y,
real shape,
real scale,
real k )

Compute the log CDF of the generalised gamma distribution

Uses the Stacy parameterisation of flexsurv::pgengamma.orig() in R. The CDF is the regularised lower incomplete gamma function P(k, (y / scale)^shape), so the Gamma (shape = 1) and Weibull (k = 1) distributions are special cases.

Parameters
yValue at which to evaluate the log CDF (y > 0)
shapeShape (power) parameter
scaleScale parameter
kShape parameter of the underlying Gamma distribution
Returns
Log CDF of the generalised gamma distribution

Definition at line 17 of file primarycensored_ode.stan.

Here is the caller graph for this function:

◆ lognormal_lcdf_underflows()

int lognormal_lcdf_underflows ( real y,
real mu,
real sigma )

Test whether lognormal_lcdf underflows to -inf at these arguments

Underflow makes the autodiff partial 0 / 0, and Stan's reverse pass chains that NaN into mu and sigma whatever weight the term is later given. Callers must therefore test this before calling lognormal_lcdf, rather than checking its result.

The threshold is -38 on the standardised scale (log(y) - mu) / sigma, inside the region where the CDF is still representable: log F(y) is below -726 there, so a term dropped on this test cannot change a result at double precision.

Parameters
yValue at which the log CDF would be evaluated
muLocation parameter on the log scale
sigmaScale parameter on the log scale
Returns
1 if lognormal_lcdf would underflow or y is non-positive, 0 otherwise

Definition at line 69 of file primarycensored_ode.stan.

Here is the caller graph for this function: