chi_squared_cdf

Evaluates the chisquared cumulative distribution function (CDF).

Synopsis

#include <imsl.h>

float imsl_f_chi_squared_cdf (float chi_squared, float df)

The type double function is imsl_d_chi_squared_cdf.

Required Arguments

float chi_squared (Input)
Argument for which the chisquared distribution function is to be evaluated.

float df (Input)
Number of degrees of freedom of the chisquared distribution. Argument df must be greater than 0.

Return Value

The probability p that a chisquared random variable takes a value less than or equal to chi_squared.

Description

Function imsl_f_chi_squared_cdf evaluates the distribution function, F(x,ν), of a chisquared random variable x = chi_squared with ν = df degrees of freedom, where:

 

and Γ () is the gamma function. The value of the distribution function at the point x is the probability that the random variable takes a value less than or equal to x.

For ννmax = 1.e7, imsl_f_chi_squared_cdf uses the Wilson-Hilferty approximation (Abramowitz and Stegun [A&S] 1964, Equation 26.4.17) for p in terms of the normal CDF, which is evaluated using function imsl_f_normal_cdf.

For ν≤ νmax, imsl_f_chi_squared_cdf uses series expansions to evaluate p: for x < ν, imsl_f_chi_squared_cdf calculates p using A&S series 6.5.29, and for x≥ν, imsl_f_chi_squared_cdf calculates p using the continued fraction expansion of the incomplete gamma function given in A&S equation 6.5.31.

 

Figure 1,  Plot of Fx (x, df)

Example

Suppose X is a chisquared random variable with two degrees of freedom. In this example, we find the probability that X is less than 0.15 and the probability that X is greater than 3.0.

 

#include <imsl.h>

#include <stdio.h>

 

int main()

{

    float  chi_squared = 0.15, df = 2.0, p;

 

    p    = imsl_f_chi_squared_cdf(chi_squared, df);

    printf("The probability that chi-squared"

        " with %1.0f df is less than %4.2f is %5.4f\n",

        df, chi_squared, p);

 

    chi_squared = 3.0;

    p    = 1.0 - imsl_f_chi_squared_cdf(chi_squared, df);

    printf("The probability that chi-squared"

        " with %1.0f df is greater than %3.1f is %5.4f\n",

        df, chi_squared, p);

}

Output

 

The probability that chi-squared with 2 df is less than 0.15 is 0.0723

The probability that chi-squared with 2 df is greater than 3.0 is 0.2231

Informational Errors

IMSL_ARG_LESS_THAN_ZERO

Since “chi_squared” = #is less than zero, the distribution function is zero at “chi_squared.”

Alert Errors

IMSL_NORMAL_UNDERFLOW

Using the normal distribution for large degrees of freedom, underflow would have occurred.