FNDF
This function evaluates the noncentral F cumulative distribution function (CDF).
Function Return Value
FNDF — Probability that a random variable from an F distribution having noncentrality parameter LAMBDA takes a value less than or equal to the input F. (Output)
Required Arguments
F — Argument for which the noncentral F cumulative distribution function is to be evaluated. (Input)
F must be non‑negative.
DF1 — Number of numerator degrees of freedom of the noncentral F distribution. (Input)
DF1 must be positive.
DF2 — Number of denominator degrees of freedom of the noncentral F distribution. (Input)
DF2 must be positive.
LAMBDA — Noncentrality parameter. (Input)
LAMBDA must be non‑negative.
FORTRAN 90 Interface
Generic: FNDF (F, DF1, DF2, LAMBDA)
Specific: The specific interface names are S_FNDF and D_FNDF.
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 CDF is given by
where
and Γ(⋅) is the gamma function. The above series expansion for the noncentral F CDF was taken from Butler and Paolella (1999) (see Paolella.pdf), with the correction for the recursion relation given below:
extracted from the AS 63 algorithm for calculating the incomplete beta function as described by Majumder and Bhattacharjee (1973).
The correspondence between the arguments of function FNDF (F, DF1, DF2, LAMBDA) and the variables in the above equations is as follows: ν1 = DF1, ν2 = DF2, λ = LAMBDA, and f = F.
For λ = 0, the noncentral F distribution is the same as the F distribution.
Example
This example traces out a portion of a noncentral F distribution with parameters DF1 = 100, DF2 = 10, and LAMBDA = 10.
USE UMACH_INT
USE FNDF_INT
IMPLICIT NONE
INTEGER NOUT, I
REAL X, LAMBDA, DF1, DF2, CDFV, X0(8)
DATA X0 / 0.0, .4, .8, 1.2, 1.6, 2.0, 2.8, 4.0 /
CALL UMACH (2, NOUT)
DF1 = 100.0
DF2 = 10.0
LAMBDA = 10.0
WRITE (NOUT,'("DF1: ", F4.0, "; DF2: ", F4.0, &
"; LAMBDA: ", F4.0 // " X CDF(X)")')&
DF1, DF2, LAMBDA
DO I = 1, 8
X = X0(I)
CDFV = FNDF(X, DF1, DF2, LAMBDA)
WRITE (NOUT,'(1X, F5.1, 2X, E12.6)') X, CDFV
END DO
END
Output
DF1: 100.; DF2: 10.; LAMBDA: 10.
X CDF(X)
0.0 0.000000E+00
0.4 0.488790E-02
0.8 0.202633E+00
1.2 0.521143E+00
1.6 0.733853E+00
2.0 0.850413E+00
2.8 0.947125E+00
4.0 0.985358E+00