Class DiscreteDistribution

java.lang.Object
smile.stat.distribution.DiscreteDistribution
All Implemented Interfaces:
Serializable, Distribution
Direct Known Subclasses:
BernoulliDistribution, BinomialDistribution, DiscreteMixture, EmpiricalDistribution, GeometricDistribution, HyperGeometricDistribution, NegativeBinomialDistribution, PoissonDistribution, ShiftedGeometricDistribution

public abstract class DiscreteDistribution extends Object implements Distribution
Univariate discrete distributions. Basically, this class adds common distribution methods that accept integer argument beside float argument. A quantile function is provided based on bisection searching. Likelihood and log likelihood functions are also implemented here.
See Also:
  • Constructor Summary Link icon

    Constructors
    Constructor
    Description
    Constructor.
  • Method Summary Link icon

    Modifier and Type
    Method
    Description
    double
    likelihood(int[] x)
    The likelihood given a sample set following the distribution.
    double
    logLikelihood(int[] x)
    The likelihood given a sample set following the distribution.
    double
    logp(double x)
    The density at x in log scale, which may prevents the underflow problem.
    abstract double
    logp(int x)
    The probability mass function in log scale.
    double
    p(double x)
    The probability density function for continuous distribution or probability mass function for discrete distribution at x.
    abstract double
    p(int x)
    The probability mass function.
    protected double
    quantile(double p, int xmin, int xmax)
    Inversion of cdf by bisection numeric root finding of cdf(x) = p for discrete distribution.
    int
    Generates an integer random number following this discrete distribution.
    int[]
    randi(int n)
    Generates a set of integer random numbers following this discrete distribution.

    Methods inherited from class java.lang.Object Link icon

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details Link icon

    • DiscreteDistribution Link icon

      public DiscreteDistribution()
      Constructor.
  • Method Details Link icon

    • randi Link icon

      public int randi()
      Generates an integer random number following this discrete distribution.
      Returns:
      an integer random number.
    • randi Link icon

      public int[] randi(int n)
      Generates a set of integer random numbers following this discrete distribution.
      Parameters:
      n - the number of random numbers to generate.
      Returns:
      an array of integer random numbers.
    • p Link icon

      public abstract double p(int x)
      The probability mass function.
      Parameters:
      x - a real value.
      Returns:
      the probability.
    • p Link icon

      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 Link icon

      public abstract double logp(int x)
      The probability mass function in log scale.
      Parameters:
      x - a real value.
      Returns:
      the log probability.
    • logp Link icon

      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.
    • likelihood Link icon

      public double likelihood(int[] x)
      The likelihood given a sample set following the distribution.
      Parameters:
      x - a set of samples.
      Returns:
      the likelihood.
    • logLikelihood Link icon

      public double logLikelihood(int[] x)
      The likelihood given a sample set following the distribution.
      Parameters:
      x - a set of samples.
      Returns:
      the log likelihood.
    • quantile Link icon

      protected double quantile(double p, int xmin, int xmax)
      Inversion of cdf by bisection numeric root finding of cdf(x) = p for discrete distribution.
      Parameters:
      p - the probability.
      xmin - the lower bound of search range.
      xmax - the upper bound of search range.
      Returns:
      an integer n such that P(<n) <= p <= P(<n+1).