gov.sandia.cognition.statistics.distribution
Class BetaDistribution

java.lang.Object
  extended by gov.sandia.cognition.util.AbstractCloneableSerializable
      extended by gov.sandia.cognition.statistics.AbstractDistribution<NumberType>
          extended by gov.sandia.cognition.statistics.AbstractClosedFormUnivariateDistribution<Double>
              extended by gov.sandia.cognition.statistics.AbstractClosedFormSmoothUnivariateDistribution
                  extended by gov.sandia.cognition.statistics.distribution.BetaDistribution
All Implemented Interfaces:
Vectorizable, ClosedFormComputableDistribution<Double>, ClosedFormDistribution<Double>, ClosedFormUnivariateDistribution<Double>, ComputableDistribution<Double>, Distribution<Double>, DistributionWithMean<Double>, EstimableDistribution<Double,BetaDistribution>, SmoothUnivariateDistribution, UnivariateDistribution<Double>, CloneableSerializable, Serializable, Cloneable
Direct Known Subclasses:
BetaDistribution.CDF, BetaDistribution.PDF

@PublicationReference(author="Wikipedia",
                      title="Beta distribution",
                      type=WebPage,
                      year=2009,
                      url="http://en.wikipedia.org/wiki/Beta_distribution")
public class BetaDistribution
extends AbstractClosedFormSmoothUnivariateDistribution
implements EstimableDistribution<Double,BetaDistribution>

Computes the Beta-family of probability distributions.

Since:
2.0
Author:
Kevin R. Dixon
See Also:
Serialized Form

Nested Class Summary
static class BetaDistribution.CDF
          CDF of the Beta-family distribution
static class BetaDistribution.MomentMatchingEstimator
          Estimates the parameters of a Beta distribution using the matching of moments, not maximum likelihood.
static class BetaDistribution.PDF
          Beta distribution probability density function
static class BetaDistribution.WeightedMomentMatchingEstimator
          Estimates the parameters of a Beta distribution using the matching of moments, not maximum likelihood.
 
Field Summary
static double DEFAULT_ALPHA
          Default alpha, 2.0.
static double DEFAULT_BETA
          Default beta, 2.0.
 
Constructor Summary
BetaDistribution()
          Default constructor.
BetaDistribution(BetaDistribution other)
          Copy Constructor
BetaDistribution(double alpha, double beta)
          Creates a new instance of BetaDistribution
 
Method Summary
 BetaDistribution clone()
          This makes public the clone method on the Object class and removes the exception that it throws.
 void convertFromVector(Vector parameters)
          Sets the parameters of the distribution
 Vector convertToVector()
          Gets the parameters of the distribution
 double getAlpha()
          Getter for alpha
 double getBeta()
          Getter for beta
 BetaDistribution.CDF getCDF()
          Gets the CDF of a scalar distribution.
 BetaDistribution.MomentMatchingEstimator getEstimator()
          Gets an estimator associated with this distribution.
 Double getMaxSupport()
          Gets the minimum support (domain or input) of the distribution.
 Double getMean()
          Gets the arithmetic mean, or "first central moment" or "expectation", of the distribution.
 Double getMinSupport()
          Gets the minimum support (domain or input) of the distribution.
 BetaDistribution.PDF getProbabilityFunction()
          Gets the distribution function associated with this Distribution, either the PDF or PMF.
 double getVariance()
          Gets the variance of the distribution.
 ArrayList<Double> sample(Random random, int numSamples)
          Draws multiple random samples from the distribution.
 void setAlpha(double alpha)
          Setter for alpha
 void setBeta(double beta)
          Setter for beta
 
Methods inherited from class gov.sandia.cognition.statistics.AbstractDistribution
sample
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface gov.sandia.cognition.statistics.Distribution
sample
 

Field Detail

DEFAULT_ALPHA

public static final double DEFAULT_ALPHA
Default alpha, 2.0.

See Also:
Constant Field Values

DEFAULT_BETA

public static final double DEFAULT_BETA
Default beta, 2.0.

See Also:
Constant Field Values
Constructor Detail

BetaDistribution

public BetaDistribution()
Default constructor.


BetaDistribution

public BetaDistribution(double alpha,
                        double beta)
Creates a new instance of BetaDistribution

Parameters:
alpha - Alpha shape parameter, must be greater than 0 (typically greater than 1)
beta - Beta shape parameter, must be greater than 0 (typically greater than 1)

BetaDistribution

public BetaDistribution(BetaDistribution other)
Copy Constructor

Parameters:
other - BetaDistribution to copy
Method Detail

clone

public BetaDistribution clone()
Description copied from class: AbstractCloneableSerializable
This makes public the clone method on the Object class and removes the exception that it throws. Its default behavior is to automatically create a clone of the exact type of object that the clone is called on and to copy all primitives but to keep all references, which means it is a shallow copy. Extensions of this class may want to override this method (but call super.clone() to implement a "smart copy". That is, to target the most common use case for creating a copy of the object. Because of the default behavior being a shallow copy, extending classes only need to handle fields that need to have a deeper copy (or those that need to be reset). Some of the methods in ObjectUtil may be helpful in implementing a custom clone method. Note: The contract of this method is that you must use super.clone() as the basis for your implementation.

Specified by:
clone in interface Vectorizable
Specified by:
clone in interface CloneableSerializable
Overrides:
clone in class AbstractClosedFormUnivariateDistribution<Double>
Returns:
A clone of this object.

getMean

public Double getMean()
Description copied from interface: DistributionWithMean
Gets the arithmetic mean, or "first central moment" or "expectation", of the distribution.

Specified by:
getMean in interface DistributionWithMean<Double>
Specified by:
getMean in interface SmoothUnivariateDistribution
Returns:
Mean of the distribution.

getVariance

public double getVariance()
Description copied from interface: UnivariateDistribution
Gets the variance of the distribution. This is sometimes called the second central moment by more pedantic people, which is equivalent to the square of the standard deviation.

Specified by:
getVariance in interface UnivariateDistribution<Double>
Returns:
Variance of the distribution.

sample

public ArrayList<Double> sample(Random random,
                                int numSamples)
Description copied from interface: Distribution
Draws multiple random samples from the distribution. It is generally more efficient to use this multiple-sample method than multiple calls of the single-sample method. (But not always.)

Specified by:
sample in interface Distribution<Double>
Parameters:
random - Random-number generator to use in order to generate random numbers.
numSamples - Number of samples to draw from the distribution.
Returns:
Samples drawn according to this distribution.

convertToVector

public Vector convertToVector()
Gets the parameters of the distribution

Specified by:
convertToVector in interface Vectorizable
Returns:
2-dimensional Vector with [alpha beta]

convertFromVector

public void convertFromVector(Vector parameters)
Sets the parameters of the distribution

Specified by:
convertFromVector in interface Vectorizable
Parameters:
parameters - 2-dimensional Vector with [alpha beta]

getAlpha

public double getAlpha()
Getter for alpha

Returns:
Alpha shape parameter, must be greater than 0 (typically greater than 1)

setAlpha

public void setAlpha(double alpha)
Setter for alpha

Parameters:
alpha - Alpha shape parameter, must be greater than 0 (typically greater than 1)

getBeta

public double getBeta()
Getter for beta

Returns:
Beta shape parameter, must be greater than 0 (typically greater than 1)

setBeta

public void setBeta(double beta)
Setter for beta

Parameters:
beta - Beta shape parameter, must be greater than 0 (typically greater than 1)

getCDF

public BetaDistribution.CDF getCDF()
Description copied from interface: UnivariateDistribution
Gets the CDF of a scalar distribution.

Specified by:
getCDF in interface ClosedFormUnivariateDistribution<Double>
Specified by:
getCDF in interface SmoothUnivariateDistribution
Specified by:
getCDF in interface UnivariateDistribution<Double>
Returns:
CDF of the scalar distribution.

getProbabilityFunction

public BetaDistribution.PDF getProbabilityFunction()
Description copied from interface: ComputableDistribution
Gets the distribution function associated with this Distribution, either the PDF or PMF.

Specified by:
getProbabilityFunction in interface ComputableDistribution<Double>
Specified by:
getProbabilityFunction in interface SmoothUnivariateDistribution
Returns:
Distribution function associated with this Distribution.

getMinSupport

public Double getMinSupport()
Description copied from interface: UnivariateDistribution
Gets the minimum support (domain or input) of the distribution.

Specified by:
getMinSupport in interface UnivariateDistribution<Double>
Returns:
Minimum support.

getMaxSupport

public Double getMaxSupport()
Description copied from interface: UnivariateDistribution
Gets the minimum support (domain or input) of the distribution.

Specified by:
getMaxSupport in interface UnivariateDistribution<Double>
Returns:
Minimum support.

getEstimator

public BetaDistribution.MomentMatchingEstimator getEstimator()
Description copied from interface: EstimableDistribution
Gets an estimator associated with this distribution.

Specified by:
getEstimator in interface EstimableDistribution<Double,BetaDistribution>
Returns:
A distribution estimator associated for this distribution.