Chapter 11: Probability Distribution Functions and Inverses > non_central_F_pdf

non_central_F_pdf

Evaluates the noncentral F probability density function (PDF).

Synopsis

#include <imsls.h>

float imsls_f_non_central_F_pdf (float f, float df_numerator, float df_denominator,   float lambda)

The type double function is imsls_d_non_central_F_pdf.

Required Arguments

float f   (Input)
Argument for which the noncentral F probability density function is to be evaluated. f must be non-negative.

float df_numerator   (Input)
Numerator degrees of freedom of the noncentral F distribution. df_numerator must be positive.

float df_denominator   (Input)
Denominator degrees of freedom of the noncentral F distributiondf_denominator must be positive.

float lambda   (Input)
Noncentrality parameter. lambda must be non-negative.

Return Value

The probability density associated with a noncentral F random variable with value f.

Description

If X is a noncentral chi-square random variable with noncentrality parameter λ and ν1 degrees of freedom, and Y is a chi-square random variable with ν2 degrees of freedom which is statistically independent of X, then

is a noncentral F-distributed random variable whose PDF is given by

where

 

and Γ(.) is the gamma function, ν1 = df_numerator, ν2 = df_denominator, λ= lambda, and f = f.

With a noncentrality parameter of zero, the noncentral F distribution is the same as the F distribution.

The efficiency of the calculation of the above series is enhanced by:

1.     calculating each term Φk in the series recursively in terms of either the term Φk-1 preceding it or the term Φk+1 following it, and.

2.     initializing the sum with the largest series term and adding the subsequent terms in order of decreasing magnitude

Special cases:

Example

This example traces out a portion of a noncentral F distribution with parameters df_numerator = 100, df_denominator = 10, and lambda = 10.

 

#include <imsls.h>

#include <stdio.h>

 

int main()

{

    int i;

    float f[] = {0., .4, .8, 3.2, 5.6, 8.8, 14., 18.};

    float df_numerator = 100., df_denominator = 10., lambda =10., pdfv;

 

    printf ("df_numerator:   %4.0f\n", df_numerator);

    printf ("df_denominator: %4.0f\n", df_denominator);

    printf ("lambda:         %4.0f\n\n", lambda);

    printf ("    f       pdf(f)\n");

 

    for (i=0; i<8; i++) {

        pdfv = imsls_f_non_central_F_pdf

            (f[i], df_numerator, df_denominator, lambda);

        printf (" %5.1f  %12.4e\n", f[i], pdfv);

    }

}

Output

 

 df_numerator:    100

 df_denominator:   10

 lambda:           10

 

    f       pdf(f)

   0.0   0.0000e+000

   0.4   9.7488e-002

   0.8   8.1312e-001

   3.2   3.6948e-002

   5.6   2.8302e-003

   8.8   2.7661e-004

  14.0   2.1963e-005

18.0   5.3483e-006


RW_logo.jpg
Contact Support