You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Phil Steitz (JIRA)" <ji...@apache.org> on 2010/11/25 01:27:13 UTC

[jira] Commented: (MATH-385) Characteristic (support, mean, variance, ...) on Distributions

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

Phil Steitz commented on MATH-385:
----------------------------------

Second patch looks good.  Couple of small nits:

1. In hypergeometric mean calculation you use FastMath.pow(*,2) and in Pascal you use Math.pow(*,2).  Both of these would better be replaced by just multiplying * by itself.
2. We have an unavoidably smelly situation with Poisson support upper bound.  I guess I agree with Integer.MAX_VALUE; but in that case isSupportUpperBoundInclusive should actually return true.  I would change the javadoc to
{code}
     * The upper bound of the support is positive infinity, regardless of the parameter values.
     * There is no integer infinity, so this method returns <code>Integer.MAX_VALUE</code> and
     * {@link #isSupportUpperBoundInclusive()} returns <code>true</code>
{code}
If others feel strongly that we should return false for isSupportUpperBoundInclusive, I am OK with that.  Smelly either way.

Regarding tests, I would just add some tests using distributions with known characteristics and verify that the results are correct.  Also verify that when parameters change, the characteristics also change.  Adding R verificiation tests would be good as well.


> Characteristic (support, mean, variance, ...) on Distributions
> --------------------------------------------------------------
>
>                 Key: MATH-385
>                 URL: https://issues.apache.org/jira/browse/MATH-385
>             Project: Commons Math
>          Issue Type: New Feature
>            Reporter: Mikkel Meyer Andersen
>             Fix For: 2.2
>
>         Attachments: MATH385-PATCH1, MATH385-PATCH2
>
>   Original Estimate: 5h
>  Remaining Estimate: 5h
>
> I wish that the Distributions could contain some characteristics. For example support, mean, and variance.
> Support:
> AbstractContinuousDistribution and AbstractIntegerDistribution should have double getSupport{Lower, Upper}Bound() and int getSupport{Lower, Upper}Bound(), respectively. Also methods a la boolean isSupport{Lower, Upper}BoundInclusive() on AbstractContinuousDistribution should reflect if the support is open of closed. In practise the implemented distributions are easy since the support for all continuous distributions are real intervals (connected sets), and the support for all the discrete distributions are connected integer sets. This means that the lower and upper bound (together with isSupport{Lower, Upper}BoundInclusive() on AbstractContinuousDistribution because it is not needed on the discrete distributions because of their nature) are sufficient for determine the support.
> Mean and variance:
> double get{Mean, Variance}() should be on AbstractDistribution.
> With such characteristic an invalidateParameters-method might come in handy because they often depend on the parameters. The characteristics should not be calculated before the first time they are get'ted, and when calculated, they should be saved for later use.  When parameters change, an invalidateParameters-method should be called to force the characteristics to be recalculated.
> Values such as Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, and Double.NaN should be used where appropriate.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.