Return-Path: X-Original-To: apmail-commons-issues-archive@minotaur.apache.org Delivered-To: apmail-commons-issues-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id E95B49A5C for ; Thu, 27 Oct 2011 07:10:55 +0000 (UTC) Received: (qmail 5582 invoked by uid 500); 27 Oct 2011 07:10:55 -0000 Delivered-To: apmail-commons-issues-archive@commons.apache.org Received: (qmail 5027 invoked by uid 500); 27 Oct 2011 07:10:55 -0000 Mailing-List: contact issues-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: issues@commons.apache.org Delivered-To: mailing list issues@commons.apache.org Received: (qmail 5006 invoked by uid 99); 27 Oct 2011 07:10:52 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Oct 2011 07:10:52 +0000 X-ASF-Spam-Status: No, hits=-2000.5 required=5.0 tests=ALL_TRUSTED,RP_MATCHES_RCVD X-Spam-Check-By: apache.org Received: from [140.211.11.116] (HELO hel.zones.apache.org) (140.211.11.116) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Oct 2011 07:10:51 +0000 Received: from hel.zones.apache.org (hel.zones.apache.org [140.211.11.116]) by hel.zones.apache.org (Postfix) with ESMTP id 6B625322489 for ; Thu, 27 Oct 2011 07:08:32 +0000 (UTC) Date: Thu, 27 Oct 2011 07:08:32 +0000 (UTC) From: =?utf-8?Q?S=C3=A9bastien_Brisard_=28Commented=29_=28JIRA=29?= To: issues@commons.apache.org Message-ID: <1060320279.23326.1319699312441.JavaMail.tomcat@hel.zones.apache.org> In-Reply-To: <1175555992.7216.1318960990578.JavaMail.tomcat@hel.zones.apache.org> Subject: [jira] [Commented] (MATH-692) Cumulative probability and inverse cumulative probability inconsistencies MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/MATH-692?page=3Dcom.atlassian.j= ira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=3D131368= 53#comment-13136853 ]=20 S=C3=A9bastien Brisard commented on MATH-692: ---------------------------------------- Hi Christian, I've started looking into this issue. As I said, you will have to be patien= t with me ;). I can see there already is a default implementation of {{AbstractContinuous= Distribution.inverseCumulativeProbability}}. So what exactly would you like= me to do? Is this implementation fragile? Would you like me to improve rob= ustness? Provide full testing? I think there might be issues when the PDF falls down to zero in a range (i= n which case the cum exhibits a plateau). The returned value might differ f= rom the mathematical definition you proposed. Is this what you want me to w= ork on? Have you already identified other issues? Best regards, S=C3=A9bastien =20 > 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 probab= ilities. More precisely, '<' and '<=3D' 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 do= es neither exist for Distribution nor for ContinuosDistribution. Thus we ne= ed 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 functio= ns in the basic distribution interfaces as follows: > Distribution: > - cumulativeProbability(double x): returns P(X <=3D x) > - cumulativeProbability(double x0, double x1): returns P(x0 < X <=3D x1) = [see also 1)] > - inverseCumulativeProbability(double p): > returns the quantile function inf{x in R | P(X<=3Dx) >=3D p} [see also = 2), 3), and 4)] > 1) An aternative definition could be P(x0 <=3D X <=3D x1). But this requi= res to put the function probability(double x) or another cumulative probabi= lity function into the interface Distribution in order be able to calculate= P(x0 <=3D X <=3D x1) in AbstractDistribution. > 2) This definition is stricter than the definition in ContinuousDistribut= ion, because the definition there does not specify what to do if there are = multiple x satisfying P(X<=3Dx) =3D p. > 3) A modification could be defined for p=3D0: Returning sup{x in R | P(X<= =3Dx) =3D 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 consid= ering 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 <=3D x) > - cumulativeProbability(int x0, int x1): returns P(x0 < X <=3D x1) [see a= lso 1) above] -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrato= rs: https://issues.apache.org/jira/secure/ContactAdministrators!default.jsp= a For more information on JIRA, see: http://www.atlassian.com/software/jira