Evaluates the inverse of the F distribution function.
#include <imsls.h>
float imsls_f_F_inverse_cdf (float p, float df_numerator, float df_denominator)
The type double function is imsls_d_F_inverse_cdf.
float p
(Input)
Probability for which the inverse of the F distribution
function is to be evaluated. Argument p must be in the open
interval (0.0, 1.0).
float
df_numerator (Input)
Numerator degrees of freedom.
Argument df_numerator must be
positive.
float
df_denominator (Input)
Denominator degrees of freedom.
Argument df_denominator must be
positive.
The value of the inverse of the F distribution function evaluated at p. The probability that an F random variable takes a value less than or equal to imsls_f_F_inverse_cdf is p.
Function imsls_f_F_inverse_cdf evaluates the inverse distribution function of a Snedecor’s F random variable with ν1 = df_numerator numerator degrees of freedom and ν2 = df_denominator denominator degrees of freedom. The function is evaluated by making a transformation to a beta random variable, then evaluating the inverse of an incomplete beta function. If X is an F variate with ν1 and ν2 degrees of freedom and Y = (ν1X)/(ν2 + ν1X), then Y is a beta variate with parameters p = ν1/2 and q = ν2/2. If p ≤ 0.5, imsls_f_F_ inverse_cdf uses this relationship directly; otherwise, it also uses a relationship between F random variables that can be expressed as follows:
FF(f, v1, v2) = 1 − FF(1/f, v2, v1)
This example finds the 99-th percentage point for an F random variable with 7 and 1 degrees of freedom.
#include <imsls.h>
#include <stdio.h>
int main()
{
float df_denominator = 1.0, df_numerator = 7.0, p = 0.99, f;
f = imsls_f_F_inverse_cdf(p, df_numerator, df_denominator);
printf("The F(7,1) 0.01 critical value is %6.3f\n", f);
}
The F(7,1) 0.01 critical value is 5928.370
IMSLS_F_INVERSE_OVERFLOW Function imsls_f_F_inverse_cdf overflows. This is because df_numerator or df_denominator and p are too large. The return value is set to machine infinity.