[
https://issues.apache.org/jira/browse/MATH-385?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mikkel Meyer Andersen updated MATH-385:
---------------------------------------
Attachment: MATH385-PATCH2
Patch 2 with the proposed changed.
The invalidation (until distributions become immutable in 3.0) is implemented
in invalidateParameterDependentMoments(). This is called is in the non-internal
setters, because when they are deleted, so should the call to
invalidateParameterDependentMoments() (so it has been marked as deprecated
already).
Note: Not all, actually quite a few, did not have setters for the parameters,
e.g. beta distribution. I'm not sure why, but these are of course not calling
invalidateParameterDependentMoments().
Besides that, formulas for the mean, variance and support have been added.
Which kind of tests should be done? Simple (N(0,1) has mean 0 and variance 1
etc.) - and maybe some that rely on sampling emperical data with a big error
margin? Or what do you propose?
> 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.