[
https://issues.apache.org/jira/browse/MATH-692?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13133594#comment-13133594
]
Sébastien Brisard commented on MATH-692:
----------------------------------------
Happy to help on the inverse cumulative probability. You will have to be
patient and forgieving with me, though, as I discover this part of CM.
As for the definition, I think that one of the bounds should be excluded, so
that these cumulative probabilities can be summed
P(a < X <= c) = P(a < X <= b) + P(b < X <= c),
even in the case of discrete PDFs.
Whether the lower or upper bound should be excluded is another matter. I
usually work with continuous pdfs, so I don't know if there is a common
practice in the probability community. If there is none, I would tend to chose
the following definition
P(x0 <= X < x1)
(sorry Phil!), because it would be consistent with the way things are usually
indexed in java (a[0].. a[a.length-1]). See also
{{org.apache.commons.math.util.MultidimensionalCounter}}. Although this type of
consistency is not an absolute requirement, I think it is nice for the user to
have such simple principle: "lower bound always included, upper bound always
excluded". Appart from this small point, I really have no objection to any
choice.
> Cumulative probability and inverse cumulative probability inconsistencies
> -------------------------------------------------------------------------
>
> Key: MATH-692
> URL: https://issues.apache.org/jira/browse/MATH-692
> Project: Commons Math
> Issue Type: Bug
> Affects Versions: 1.0, 1.1, 1.2, 1.3, 2.0, 2.1, 2.2, 2.2.1, 3.0
> Reporter: Christian Winter
> Priority: Minor
> Fix For: 3.0
>
>
> There are some inconsistencies in the documentation and implementation of
> functions regarding cumulative probabilities and inverse cumulative
> probabilities. More precisely, '<' and '<=' are not used in a consistent way.
> Besides I would move the function inverseCumulativeProbability(double) to the
> interface Distribution. A true inverse of the distribution function does
> neither exist for Distribution nor for ContinuosDistribution. Thus we need to
> define the inverse in terms of quantiles anyway, and this can already be done
> for Distribution.
> On the whole I would declare the (inverse) cumulative probability functions
> in the basic distribution interfaces as follows:
> Distribution:
> - cumulativeProbability(double x): returns P(X <= x)
> - cumulativeProbability(double x0, double x1): returns P(x0 < X <= x1) [see
> also 1)]
> - inverseCumulativeProbability(double p):
> returns the quantile function inf{x in R | P(X<=x) >= p} [see also 2), 3),
> and 4)]
> 1) An aternative definition could be P(x0 <= X <= x1). But this requires to
> put the function probability(double x) or another cumulative probability
> function into the interface Distribution in order be able to calculate P(x0
> <= X <= x1) in AbstractDistribution.
> 2) This definition is stricter than the definition in ContinuousDistribution,
> because the definition there does not specify what to do if there are
> multiple x satisfying P(X<=x) = p.
> 3) A modification could be defined for p=0: Returning sup{x in R | P(X<=x) =
> 0} would yield the infimum of the distribution's support instead of a
> mandatory -infinity.
> 4) This affects issue MATH-540. I'd prefere the definition from above for the
> following reasons:
> - This definition simplifies inverse transform sampling (as mentioned in the
> other issue).
> - It is the standard textbook definition for the quantile function.
> - For integer distributions it has the advantage that the result doesn't
> change when switching to "x in Z", i.e. the result is independent of
> considering the intergers as sole set or as part of the reals.
> ContinuousDistribution:
> nothing to be added regarding (inverse) cumulative probability functions
> IntegerDistribution:
> - cumulativeProbability(int x): returns P(X <= x)
> - cumulativeProbability(int x0, int x1): returns P(x0 < X <= x1) [see also 1)
> above]
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira