org.apache.commons.math.distribution
Class BetaDistributionImpl

java.lang.Object
  extended by org.apache.commons.math.distribution.AbstractDistribution
      extended by org.apache.commons.math.distribution.AbstractContinuousDistribution
          extended by org.apache.commons.math.distribution.BetaDistributionImpl
All Implemented Interfaces:
Serializable, BetaDistribution, ContinuousDistribution, Distribution, HasDensity<Double>

public class BetaDistributionImpl
extends AbstractContinuousDistribution
implements BetaDistribution

Implements the Beta distribution.

References:

Since:
2.0
Version:
$Revision: 1054524 $ $Date: 2011-01-03 05:59:18 +0100 (lun. 03 janv. 2011) $
See Also:
Serialized Form

Field Summary
static double DEFAULT_INVERSE_ABSOLUTE_ACCURACY
          Default inverse cumulative probability accuracy
 
Fields inherited from class org.apache.commons.math.distribution.AbstractContinuousDistribution
randomData
 
Constructor Summary
BetaDistributionImpl(double alpha, double beta)
          Build a new instance.
BetaDistributionImpl(double alpha, double beta, double inverseCumAccuracy)
          Build a new instance.
 
Method Summary
 double cumulativeProbability(double x)
          For a random variable X whose values are distributed according to this distribution, this method returns P(X ≤ x).
 double cumulativeProbability(double x0, double x1)
          For a random variable X whose values are distributed according to this distribution, this method returns P(x0 ≤ X ≤ x1).
 double density(double x)
          Return the probability density for a particular point.
 double density(Double x)
          Deprecated.  
 double getAlpha()
          Access the shape parameter, alpha
 double getBeta()
          Access the shape parameter, beta
protected  double getDomainLowerBound(double p)
          Access the domain value lower bound, based on p, used to bracket a CDF root.
protected  double getDomainUpperBound(double p)
          Access the domain value upper bound, based on p, used to bracket a CDF root.
protected  double getInitialDomain(double p)
          Access the initial domain value, based on p, used to bracket a CDF root.
 double getNumericalMean()
          Returns the mean.
 double getNumericalVariance()
          Returns the variance.
protected  double getSolverAbsoluteAccuracy()
          Return the absolute accuracy setting of the solver used to estimate inverse cumulative probabilities.
 double getSupportLowerBound()
          Returns the lower bound of the support for this distribution.
 double getSupportUpperBound()
          Returns the upper bound of the support for this distribution.
 double inverseCumulativeProbability(double p)
          For this distribution, X, this method returns the critical point x, such that P(X < x) = p.
 void setAlpha(double alpha)
          Deprecated. as of 2.1 (class will become immutable in 3.0)
 void setBeta(double beta)
          Deprecated. as of 2.1 (class will become immutable in 3.0)
 
Methods inherited from class org.apache.commons.math.distribution.AbstractContinuousDistribution
reseedRandomGenerator, sample, sample
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_INVERSE_ABSOLUTE_ACCURACY

public static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY
Default inverse cumulative probability accuracy

Since:
2.1
See Also:
Constant Field Values
Constructor Detail

BetaDistributionImpl

public BetaDistributionImpl(double alpha,
                            double beta,
                            double inverseCumAccuracy)
Build a new instance.

Parameters:
alpha - first shape parameter (must be positive)
beta - second shape parameter (must be positive)
inverseCumAccuracy - the maximum absolute error in inverse cumulative probability estimates (defaults to DEFAULT_INVERSE_ABSOLUTE_ACCURACY)
Since:
2.1

BetaDistributionImpl

public BetaDistributionImpl(double alpha,
                            double beta)
Build a new instance.

Parameters:
alpha - first shape parameter (must be positive)
beta - second shape parameter (must be positive)
Method Detail

setAlpha

@Deprecated
public void setAlpha(double alpha)
Deprecated. as of 2.1 (class will become immutable in 3.0)

Modify the shape parameter, alpha.

Specified by:
setAlpha in interface BetaDistribution
Parameters:
alpha - the new shape parameter.

getAlpha

public double getAlpha()
Access the shape parameter, alpha

Specified by:
getAlpha in interface BetaDistribution
Returns:
alpha.

setBeta

@Deprecated
public void setBeta(double beta)
Deprecated. as of 2.1 (class will become immutable in 3.0)

Modify the shape parameter, beta.

Specified by:
setBeta in interface BetaDistribution
Parameters:
beta - the new scale parameter.

getBeta

public double getBeta()
Access the shape parameter, beta

Specified by:
getBeta in interface BetaDistribution
Returns:
beta.

density

@Deprecated
public double density(Double x)
Deprecated. 

Return the probability density for a particular point.

Specified by:
density in interface BetaDistribution
Specified by:
density in interface HasDensity<Double>
Parameters:
x - The point at which the density should be computed.
Returns:
The pdf at point x.

density

public double density(double x)
Return the probability density for a particular point.

Overrides:
density in class AbstractContinuousDistribution
Parameters:
x - The point at which the density should be computed.
Returns:
The pdf at point x.
Since:
2.1

inverseCumulativeProbability

public double inverseCumulativeProbability(double p)
                                    throws MathException
For this distribution, X, this method returns the critical point x, such that P(X < x) = p.

Specified by:
inverseCumulativeProbability in interface ContinuousDistribution
Overrides:
inverseCumulativeProbability in class AbstractContinuousDistribution
Parameters:
p - the desired probability
Returns:
x, such that P(X < x) = p
Throws:
MathException - if the inverse cumulative probability can not be computed due to convergence or other numerical errors.

getInitialDomain

protected double getInitialDomain(double p)
Access the initial domain value, based on p, used to bracket a CDF root. This method is used by AbstractContinuousDistribution.inverseCumulativeProbability(double) to find critical values.

Specified by:
getInitialDomain in class AbstractContinuousDistribution
Parameters:
p - the desired probability for the critical value
Returns:
initial domain value

getDomainLowerBound

protected double getDomainLowerBound(double p)
Access the domain value lower bound, based on p, used to bracket a CDF root. This method is used by AbstractContinuousDistribution.inverseCumulativeProbability(double) to find critical values.

Specified by:
getDomainLowerBound in class AbstractContinuousDistribution
Parameters:
p - the desired probability for the critical value
Returns:
domain value lower bound, i.e. P(X < lower bound) < p

getDomainUpperBound

protected double getDomainUpperBound(double p)
Access the domain value upper bound, based on p, used to bracket a CDF root. This method is used by AbstractContinuousDistribution.inverseCumulativeProbability(double) to find critical values.

Specified by:
getDomainUpperBound in class AbstractContinuousDistribution
Parameters:
p - the desired probability for the critical value
Returns:
domain value upper bound, i.e. P(X < upper bound) > p

cumulativeProbability

public double cumulativeProbability(double x)
                             throws MathException
For a random variable X whose values are distributed according to this distribution, this method returns P(X ≤ x). In other words, this method represents the (cumulative) distribution function, or CDF, for this distribution.

Specified by:
cumulativeProbability in interface Distribution
Parameters:
x - the value at which the distribution function is evaluated.
Returns:
the probability that a random variable with this distribution takes a value less than or equal to x
Throws:
MathException - if the cumulative probability can not be computed due to convergence or other numerical errors.

cumulativeProbability

public double cumulativeProbability(double x0,
                                    double x1)
                             throws MathException
For a random variable X whose values are distributed according to this distribution, this method returns P(x0 ≤ X ≤ x1).

The default implementation uses the identity

P(x0 ≤ X ≤ x1) = P(X ≤ x1) - P(X ≤ x0)

Specified by:
cumulativeProbability in interface Distribution
Overrides:
cumulativeProbability in class AbstractDistribution
Parameters:
x0 - the (inclusive) lower bound
x1 - the (inclusive) upper bound
Returns:
the probability that a random variable with this distribution will take a value between x0 and x1, including the endpoints.
Throws:
MathException - if the cumulative probability can not be computed due to convergence or other numerical errors.

getSolverAbsoluteAccuracy

protected double getSolverAbsoluteAccuracy()
Return the absolute accuracy setting of the solver used to estimate inverse cumulative probabilities.

Overrides:
getSolverAbsoluteAccuracy in class AbstractContinuousDistribution
Returns:
the solver absolute accuracy
Since:
2.1

getSupportLowerBound

public double getSupportLowerBound()
Returns the lower bound of the support for this distribution. The support of the Beta distribution is always [0, 1], regardless of the parameters, so this method always returns 0.

Returns:
lower bound of the support (always 0)
Since:
2.2

getSupportUpperBound

public double getSupportUpperBound()
Returns the upper bound of the support for this distribution. The support of the Beta distribution is always [0, 1], regardless of the parameters, so this method always returns 1.

Returns:
lower bound of the support (always 1)
Since:
2.2

getNumericalMean

public double getNumericalMean()
Returns the mean. For first shape parameter s1 and second shape parameter s2, the mean is s1 / (s1 + s2)

Returns:
the mean
Since:
2.2

getNumericalVariance

public double getNumericalVariance()
Returns the variance. For first shape parameter s1 and second shape parameter s2, the variance is [ s1 * s2 ] / [ (s1 + s2)^2 * (s1 + s2 + 1) ]

Returns:
the variance
Since:
2.2


Copyright © 2003-2011 The Apache Software Foundation. All Rights Reserved.