Class FDistributionImpl

All Implemented Interfaces:
Serializable, ContinuousDistribution, Distribution, FDistribution

public class FDistributionImpl extends AbstractContinuousDistribution implements FDistribution, Serializable
Default implementation of FDistribution.
See Also:
  • Field Details

    • DEFAULT_INVERSE_ABSOLUTE_ACCURACY

      public static final double DEFAULT_INVERSE_ABSOLUTE_ACCURACY
      Default inverse cumulative probability accuracy
      Since:
      2.1
      See Also:
  • Constructor Details

    • FDistributionImpl

      public FDistributionImpl(double numeratorDegreesOfFreedom, double denominatorDegreesOfFreedom)
      Create a F distribution using the given degrees of freedom.
      Parameters:
      numeratorDegreesOfFreedom - the numerator degrees of freedom.
      denominatorDegreesOfFreedom - the denominator degrees of freedom.
    • FDistributionImpl

      public FDistributionImpl(double numeratorDegreesOfFreedom, double denominatorDegreesOfFreedom, double inverseCumAccuracy)
      Create a F distribution using the given degrees of freedom and inverse cumulative probability accuracy.
      Parameters:
      numeratorDegreesOfFreedom - the numerator degrees of freedom.
      denominatorDegreesOfFreedom - the denominator degrees of freedom.
      inverseCumAccuracy - the maximum absolute error in inverse cumulative probability estimates (defaults to DEFAULT_INVERSE_ABSOLUTE_ACCURACY)
      Since:
      2.1
  • Method Details

    • density

      public double density(double x)
      Returns 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
    • cumulativeProbability

      public double cumulativeProbability(double x) throws MathException
      For this distribution, X, this method returns P(X < x). The implementation of this method is based on:
      Specified by:
      cumulativeProbability in interface Distribution
      Parameters:
      x - the value at which the CDF is evaluated.
      Returns:
      CDF for this distribution.
      Throws:
      MathException - if the cumulative probability can not be computed due to convergence or other numerical errors.
    • 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.

      Returns 0 for p=0 and Double.POSITIVE_INFINITY for p=1.

      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.
      IllegalArgumentException - if p is not a valid probability.
    • setNumeratorDegreesOfFreedom

      @Deprecated public void setNumeratorDegreesOfFreedom(double degreesOfFreedom)
      Deprecated.
      as of 2.1 (class will become immutable in 3.0)
      Modify the numerator degrees of freedom.
      Specified by:
      setNumeratorDegreesOfFreedom in interface FDistribution
      Parameters:
      degreesOfFreedom - the new numerator degrees of freedom.
      Throws:
      IllegalArgumentException - if degreesOfFreedom is not positive.
    • getNumeratorDegreesOfFreedom

      public double getNumeratorDegreesOfFreedom()
      Access the numerator degrees of freedom.
      Specified by:
      getNumeratorDegreesOfFreedom in interface FDistribution
      Returns:
      the numerator degrees of freedom.
    • setDenominatorDegreesOfFreedom

      @Deprecated public void setDenominatorDegreesOfFreedom(double degreesOfFreedom)
      Deprecated.
      as of 2.1 (class will become immutable in 3.0)
      Modify the denominator degrees of freedom.
      Specified by:
      setDenominatorDegreesOfFreedom in interface FDistribution
      Parameters:
      degreesOfFreedom - the new denominator degrees of freedom.
      Throws:
      IllegalArgumentException - if degreesOfFreedom is not positive.
    • getDenominatorDegreesOfFreedom

      public double getDenominatorDegreesOfFreedom()
      Access the denominator degrees of freedom.
      Specified by:
      getDenominatorDegreesOfFreedom in interface FDistribution
      Returns:
      the denominator degrees of freedom.
    • getSupportLowerBound

      public double getSupportLowerBound()
      Returns the lower bound of the support for the distribution. The lower bound of the support is always 0, regardless of the parameters.
      Returns:
      lower bound of the support (always 0)
      Since:
      2.2
    • getSupportUpperBound

      public double getSupportUpperBound()
      Returns the upper bound of the support for the distribution. The upper bound of the support is always positive infinity, regardless of the parameters.
      Returns:
      upper bound of the support (always Double.POSITIVE_INFINITY)
      Since:
      2.2
    • getNumericalMean

      public double getNumericalMean()
      Returns the mean of the distribution. For denominator degrees of freedom parameter b, the mean is
      • if b > 2 then b / (b - 2)
      • else undefined
      Returns:
      the mean
      Since:
      2.2
    • getNumericalVariance

      public double getNumericalVariance()
      Returns the variance of the distribution. For numerator degrees of freedom parameter a and denominator degrees of freedom parameter b, the variance is
      • if b > 4 then [ 2 * b^2 * (a + b - 2) ] / [ a * (b - 2)^2 * (b - 4) ]
      • else undefined
      Returns:
      the variance
      Since:
      2.2