# NAG FL Interfaceg01edf (prob_​f)

## 1Purpose

g01edf returns the probability for the lower or upper tail of the $F$ or variance-ratio distribution with real degrees of freedom.

## 2Specification

Fortran Interface
 Function g01edf ( tail, f, df1, df2,
 Real (Kind=nag_wp) :: g01edf Integer, Intent (Inout) :: ifail Real (Kind=nag_wp), Intent (In) :: f, df1, df2 Character (1), Intent (In) :: tail
#include <nag.h>
 double g01edf_ (const char *tail, const double *f, const double *df1, const double *df2, Integer *ifail, const Charlen length_tail)
The routine may be called by the names g01edf or nagf_stat_prob_f.

## 3Description

The lower tail probability for the $F$, or variance-ratio distribution, with ${\nu }_{1}$ and ${\nu }_{2}$ degrees of freedom, $P\left(F\le f:{\nu }_{1},{\nu }_{2}\right)$, is defined by:
 $PF≤f:ν1,ν2=ν1ν1/2ν2ν2/2 Γ ν1+ν2/2 Γν1/2 Γν2/2 ∫0fFν1-2/2ν1F+ν2- ν1+ν2/2dF,$
for ${\nu }_{1}$, ${\nu }_{2}>0$, $f\ge 0$.
The probability is computed by means of a transformation to a beta distribution, ${P}_{\beta }\left(B\le \beta :a,b\right)$:
 $PF≤f:ν1,ν2=Pβ B≤ν1f ν1f+ν2 :ν1/2,ν2/2$
and using a call to g01eef.
For very large values of both ${\nu }_{1}$ and ${\nu }_{2}$, greater than ${10}^{5}$, a normal approximation is used. If only one of ${\nu }_{1}$ or ${\nu }_{2}$ is greater than ${10}^{5}$ then a ${\chi }^{2}$ approximation is used, see Abramowitz and Stegun (1972).

## 4References

Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications
Hastings N A J and Peacock J B (1975) Statistical Distributions Butterworth

## 5Arguments

1: $\mathbf{tail}$Character(1) Input
On entry: indicates whether an upper or lower tail probability is required.
${\mathbf{tail}}=\text{'L'}$
The lower tail probability is returned, i.e., $P\left(F\le f:{\nu }_{1},{\nu }_{2}\right)$.
${\mathbf{tail}}=\text{'U'}$
The upper tail probability is returned, i.e., $P\left(F\ge f:{\nu }_{1},{\nu }_{2}\right)$.
Constraint: ${\mathbf{tail}}=\text{'L'}$ or $\text{'U'}$.
2: $\mathbf{f}$Real (Kind=nag_wp) Input
On entry: $f$, the value of the $F$ variate.
Constraint: ${\mathbf{f}}\ge 0.0$.
3: $\mathbf{df1}$Real (Kind=nag_wp) Input
On entry: the degrees of freedom of the numerator variance, ${\nu }_{1}$.
Constraint: ${\mathbf{df1}}>0.0$.
4: $\mathbf{df2}$Real (Kind=nag_wp) Input
On entry: the degrees of freedom of the denominator variance, ${\nu }_{2}$.
Constraint: ${\mathbf{df2}}>0.0$.
5: $\mathbf{ifail}$Integer Input/Output
On entry: ifail must be set to $0$, . If you are unfamiliar with this argument you should refer to Section 4 in the Introduction to the NAG Library FL Interface for details.
For environments where it might be inappropriate to halt program execution when an error is detected, the value is recommended. If the output of error messages is undesirable, then the value $1$ is recommended. Otherwise, because for this routine the values of the output arguments may be useful even if ${\mathbf{ifail}}\ne {\mathbf{0}}$ on exit, the recommended value is $-1$. When the value is used it is essential to test the value of ifail on exit.
On exit: ${\mathbf{ifail}}={\mathbf{0}}$ unless the routine detects an error or a warning has been flagged (see Section 6).

## 6Error Indicators and Warnings

If on entry ${\mathbf{ifail}}=0$ or $-1$, explanatory error messages are output on the current error message unit (as defined by x04aaf).
Errors or warnings detected by the routine:
Note: in some cases g01edf may return useful information.
If ${\mathbf{ifail}}={\mathbf{1}}$, ${\mathbf{2}}$ or ${\mathbf{3}}$ on exit, then g01edf returns $0.0$.
${\mathbf{ifail}}=1$
On entry, ${\mathbf{tail}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{tail}}=\text{'L'}$ or $\text{'U'}$.
${\mathbf{ifail}}=2$
On entry, ${\mathbf{f}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{f}}\ge 0.0$.
${\mathbf{ifail}}=3$
On entry, ${\mathbf{df1}}=〈\mathit{\text{value}}〉$ and ${\mathbf{df2}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{df1}}>0.0$ and ${\mathbf{df2}}>0.0$.
${\mathbf{ifail}}=4$
The probability is too close to $0.0$ or $1.0$. f is too far out into the tails for the probability to be evaluated exactly. The result tends to approach $1.0$ if $f$ is large, or $0.0$ if $f$ is small. The result returned is a good approximation to the required solution.
${\mathbf{ifail}}=-99$
An unexpected error has been triggered by this routine. Please contact NAG.
See Section 7 in the Introduction to the NAG Library FL Interface for further information.
${\mathbf{ifail}}=-399$
Your licence key may have expired or may not have been installed correctly.
See Section 8 in the Introduction to the NAG Library FL Interface for further information.
${\mathbf{ifail}}=-999$
Dynamic memory allocation failed.
See Section 9 in the Introduction to the NAG Library FL Interface for further information.

## 7Accuracy

The result should be accurate to five significant digits.

## 8Parallelism and Performance

g01edf is not threaded in any implementation.

For higher accuracy g01eef can be used along with the transformations given in Section 3.

## 10Example

This example reads values from, and degrees of freedom for, a number of $F$-distributions and computes the associated lower tail probabilities.

### 10.1Program Text

Program Text (g01edfe.f90)

### 10.2Program Data

Program Data (g01edfe.d)

### 10.3Program Results

Program Results (g01edfe.r)