Class BetaDistribution

java.lang.Object
smile.stat.distribution.BetaDistribution
All Implemented Interfaces:
Serializable, Distribution, ExponentialFamily

public class BetaDistribution extends Object implements ExponentialFamily
The beta distribution is defined on the interval [0, 1] parameterized by two positive shape parameters, typically denoted by α and β. It is the special case of the Dirichlet distribution with only two parameters. The beta distribution is used as a prior distribution for binomial proportions in Bayesian analysis. In Bayesian statistics, it can be seen as the posterior distribution of the parameter α of a binomial distribution after observing α - 1 independent events with probability α and β - 1 with probability 1 - α, if the prior distribution of α was uniform. If α = 1 and β =1, the Beta distribution is the uniform [0, 1] distribution. The probability density function of the beta distribution is f(x;α,β) = xα-1(1-x)β-1 / B(α,β) where B(α,β) is the beta function.
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    final double
    The shape parameter.
    final double
    The shape parameter.
  • Constructor Summary

    Constructors
    Constructor
    Description
    BetaDistribution(double alpha, double beta)
    Constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    double
    Returns the shape parameter alpha.
    double
    Returns the shape parameter beta.
    double
    cdf(double x)
    Cumulative distribution function.
    double
    Returns Shannon entropy of the distribution.
    fit(double[] data)
    Estimates the distribution parameters by the moment method.
    int
    Returns the number of parameters of the distribution.
    double
    logp(double x)
    The density at x in log scale, which may prevents the underflow problem.
    M(double[] x, double[] posteriori)
    The M step in the EM algorithm, which depends on the specific distribution.
    double
    Returns the mean of distribution.
    double
    p(double x)
    The probability density function for continuous distribution or probability mass function for discrete distribution at x.
    double
    quantile(double p)
    The quantile, the probability to the left of quantile is p.
    double
    Generates a random number following this distribution.
     
    double
    Returns the variance of distribution.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface smile.stat.distribution.Distribution

    inverseTransformSampling, likelihood, logLikelihood, quantile, quantile, rand, rejectionSampling, sd
  • Field Details

    • alpha

      public final double alpha
      The shape parameter.
    • beta

      public final double beta
      The shape parameter.
  • Constructor Details

    • BetaDistribution

      public BetaDistribution(double alpha, double beta)
      Constructor.
      Parameters:
      alpha - shape parameter.
      beta - shape parameter.
  • Method Details

    • fit

      public static BetaDistribution fit(double[] data)
      Estimates the distribution parameters by the moment method.
      Parameters:
      data - the samples.
      Returns:
      the distribution.
    • alpha

      public double alpha()
      Returns the shape parameter alpha.
      Returns:
      the shape parameter alpha
    • beta

      public double beta()
      Returns the shape parameter beta.
      Returns:
      the shape parameter beta
    • length

      public int length()
      Description copied from interface: Distribution
      Returns the number of parameters of the distribution. The "length" is in the sense of the minimum description length principle.
      Specified by:
      length in interface Distribution
      Returns:
      The number of parameters.
    • mean

      public double mean()
      Description copied from interface: Distribution
      Returns the mean of distribution.
      Specified by:
      mean in interface Distribution
      Returns:
      The mean.
    • variance

      public double variance()
      Description copied from interface: Distribution
      Returns the variance of distribution.
      Specified by:
      variance in interface Distribution
      Returns:
      The variance.
    • entropy

      public double entropy()
      Description copied from interface: Distribution
      Returns Shannon entropy of the distribution.
      Specified by:
      entropy in interface Distribution
      Returns:
      Shannon entropy.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • p

      public double p(double x)
      Description copied from interface: Distribution
      The probability density function for continuous distribution or probability mass function for discrete distribution at x.
      Specified by:
      p in interface Distribution
      Parameters:
      x - a real number.
      Returns:
      the density.
    • logp

      public double logp(double x)
      Description copied from interface: Distribution
      The density at x in log scale, which may prevents the underflow problem.
      Specified by:
      logp in interface Distribution
      Parameters:
      x - a real number.
      Returns:
      the log density.
    • cdf

      public double cdf(double x)
      Description copied from interface: Distribution
      Cumulative distribution function. That is the probability to the left of x.
      Specified by:
      cdf in interface Distribution
      Parameters:
      x - a real number.
      Returns:
      the probability.
    • quantile

      public double quantile(double p)
      Description copied from interface: Distribution
      The quantile, the probability to the left of quantile is p. It is actually the inverse of cdf.
      Specified by:
      quantile in interface Distribution
      Parameters:
      p - the probability.
      Returns:
      the quantile.
    • M

      public Mixture.Component M(double[] x, double[] posteriori)
      Description copied from interface: ExponentialFamily
      The M step in the EM algorithm, which depends on the specific distribution.
      Specified by:
      M in interface ExponentialFamily
      Parameters:
      x - the input data for estimation
      posteriori - the posteriori probability.
      Returns:
      the (unnormalized) weight of this distribution in the mixture.
    • rand

      public double rand()
      Description copied from interface: Distribution
      Generates a random number following this distribution.
      Specified by:
      rand in interface Distribution
      Returns:
      a random number.