commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sébastien Brisard (Commented) (JIRA) <j...@apache.org>
Subject [jira] [Commented] (MATH-699) inverseCumulativeDistribution fails with cumulative distribution having a plateau
Date Tue, 08 Nov 2011 06:54:51 GMT

    [ https://issues.apache.org/jira/browse/MATH-699?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13146108#comment-13146108
] 

Sébastien Brisard commented on MATH-699:
----------------------------------------

I agree with you: however careful we are, the default implementation will never be perfect,
and it should be clearly stated in the javadoc. I see (but haven't dug into it yet) there
is an abstract test for continuous distributions. I'll try and make sure that most possible
cases of failure of {{inverseCumulativeProbability}} are tested in this abstract framework,
so that users could be *strongly* encouraged to implement this test for their very specific
distribution.

I do think we can widen a little bit the scope of the default implementation. I actually worked
towards eliminating the bracketing step, but you convinced me that it should be the other
way round: can we eliminate the domainLower/upperBound methods (which I agree are very efficient,
but a little bit of a pain in the neck...).

Here is an idea I'm going to check (keeping in mind the accuracy issues you've already pointed
at)
* for distributions with bounded support: maybe the bounds (possibly shifted if the bounds
are not inclusive) of the support itself could be used as an initial bracketting range.
* for distributions with unbounded support: start from *any* (? or a better guess? average
value?) point in the support, and do bracketting. However, I do agree with Christian, we should
use geometric progressions in this case, instead of arithmetic progressions. This would probably
lead to a very large interval, but it would provide us an interval more quickly, and the solver
itself would probably be quite good at narrowing it very quickly. I can try some monitoring
on this issue.

As for plateaus, I think what I'm currently working on is not too inefficient. I'm sure it's
not *the* answer (which is, anyway, 42 :)), but I'm struggling to fail this algo... Don't
worry, I'll break it. I think that what I've done entails very little additional cost (maybe
one more evaluation of cumulativeProbability) for distributions *without* plateau, but I need
to check that (we do not want to pay a heavy price for plateaus, since most of our distributions
do not have one, as you rightly pointed out).

I would be grateful for any idea on these topics, and will keep you informed. All the best
for now,
Sébastien
                
> inverseCumulativeDistribution fails with cumulative distribution having a plateau
> ---------------------------------------------------------------------------------
>
>                 Key: MATH-699
>                 URL: https://issues.apache.org/jira/browse/MATH-699
>             Project: Commons Math
>          Issue Type: Bug
>    Affects Versions: 3.0
>            Reporter: Sébastien Brisard
>            Assignee: Sébastien Brisard
>            Priority: Minor
>         Attachments: AbstractContinuousDistributionTest.java
>
>
> This bug report follows MATH-692. The attached unit test fails. As required by the definition
in MATH-692, the lower-bound of the interval on which the cdf is constant should be returned.
This is not so at the moment.

--
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

       

Mime
View raw message