Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Implemented
-
1.0
-
None
Description
The distributions currently have an inverse for the cumulative probability but not the complement (the survival probability). For example for the ContinuousDistribution interface:
double cumulativeProbability(double x); double survivalProbability(double x); double inverseCumulativeProbability(double p);
Add:
double inverseSurvivalProbability(double p);
It should be possible to update the implementation in the abstract base class for the distributions to support using either the CDF or SF for the search allowing both to be implemented with the same algorithm.
This would be of benefit for distributions which support a high precision survival function, e.g.
final ContinuousDistribution dist = NormalDistribution.of(0, 1); double x = 10; double p = dist.survivalProbability(x); System.out.printf("x = %s%np = sf(x) = %s%n%n icdf(1-p) = %s%n%n-icdf(p) = %s%n", x, p, dist.inverseCumulativeProbability(1 - p), -dist.inverseCumulativeProbability(p));
Prints:
x = 10.0 p = sf(x) = 7.619853024160595E-24 icdf(1-p) = Infinity -icdf(p) = 10.0