Class FDistributionImpl

    • 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
    • Constructor Detail

      • 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 Detail

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