## org.apache.commons.math.distribution
Class BetaDistributionImpl

    java.lang.Object
      org.apache.commons.math.distribution.AbstractDistribution
          org.apache.commons.math.distribution.AbstractContinuousDistribution
              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:

- Beta distribution

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

Field Summary
`private double` `alpha` First shape parameter.
`private double` `beta` Second shape parameter.
`static double` `DEFAULT_INVERSE_ABSOLUTE_ACCURACY` Default inverse cumulative probability accuracy
`private static long` `serialVersionUID` Serializable version identifier.
`private double` `solverAbsoluteAccuracy` Inverse cumulative probability accuracy
`private double` `z` Normalizing factor used in density computations.

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`.
`private void` `recomputeZ()` Recompute the normalization factor.
`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

### serialVersionUID

    private static final long serialVersionUID

  Serializable version identifier.

  See Also:
    Constant Field Values

### alpha

    private double alpha

  First shape parameter.

### beta

    private double beta

  Second shape parameter.

### z

    private double z

  Normalizing factor used in density computations. updated whenever alpha or beta are changed.

### solverAbsoluteAccuracy

    private final double solverAbsoluteAccuracy

  Inverse cumulative probability accuracy

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.

### recomputeZ

    private void recomputeZ()

  Recompute the normalization factor.

### 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 (c) 2003-2013 Apache Software Foundation