Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

Chapter Contents
Chapter Introduction
NAG Toolbox

# NAG Toolbox: nag_stat_prob_f_noncentral (g01gd)

## Purpose

nag_stat_prob_f_noncentral (g01gd) returns the probability associated with the lower tail of the noncentral F$F$ or variance-ratio distribution.

## Syntax

[result, ifail] = g01gd(f, df1, df2, rlamda, 'tol', tol, 'maxit', maxit)
[result, ifail] = nag_stat_prob_f_noncentral(f, df1, df2, rlamda, 'tol', tol, 'maxit', maxit)
Note: the interface to this routine has changed since earlier releases of the toolbox:
Mark 23: tol now optional (default 0)
.

## Description

The lower tail probability of the noncentral F$F$-distribution with ν1${\nu }_{1}$ and ν2${\nu }_{2}$ degrees of freedom and noncentrality parameter λ$\lambda$, P(Ff : ν1,ν2;λ)$P\left(F\le f:{\nu }_{1},{\nu }_{2}\text{;}\lambda \right)$, is defined by
 x P(F ≤ f : ν1,ν2;λ) = ∫ p(F : ν1,ν2;λ)dF, 0
$P(F≤f:ν1,ν2;λ)=∫0xp(F:ν1,ν2;λ)dF,$
where
 ∞ P(F : ν1,ν2;λ ) = ∑ e − λ / 2((λ / 2)j)/(j ! ) × ((ν1 + 2j)(ν1 + 2j) / 2 ν2ν2 / 2)/(B((ν1 + 2j) / 2,ν2 / 2)) j = 0
$P(F : ν1,ν2;λ )=∑j= 0∞e-λ/2 (λ/2)jj! ×(ν1+ 2j)(ν1+ 2j)/2 ν2ν2/2 B((ν1+ 2j)/2,ν2/2)$
 × u(ν1 + 2j − 2) / 2[ν2 + (ν1 + 2j)u] − (ν1 + 2j + ν2) / 2 $×u(ν1+2j-2)/2[ν2+(ν1+2j)u] -(ν1+2j+ν2)/2$
and B( · , · )$B\left(·,·\right)$ is the beta function.
The probability is computed by means of a transformation to a noncentral beta distribution:
 P(F ≤ f : ν1,ν2;λ) = Pβ(X ≤ x : a,b;λ), $P(F≤f:ν1,ν2;λ)=Pβ(X≤x:a,b;λ),$
where x = (ν1f)/(ν1f + ν2) $x=\frac{{\nu }_{1}f}{{\nu }_{1}f+{\nu }_{2}}$ and Pβ(Xx : a,b;λ)${P}_{\beta }\left(X\le x:a,b\text{;}\lambda \right)$ is the lower tail probability integral of the noncentral beta distribution with parameters a$a$, b$b$, and λ$\lambda$.
If ν2${\nu }_{2}$ is very large, greater than 106${10}^{6}$, then a χ2${\chi }^{2}$ approximation is used.

## References

Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications

## Parameters

### Compulsory Input Parameters

1:     f – double scalar
f$f$, the deviate from the noncentral F$F$-distribution.
Constraint: f > 0.0${\mathbf{f}}>0.0$.
2:     df1 – double scalar
The degrees of freedom of the numerator variance, ν1${\nu }_{1}$.
Constraint: 0.0 < df1106$0.0<{\mathbf{df1}}\le {10}^{6}$.
3:     df2 – double scalar
The degrees of freedom of the denominator variance, ν2${\nu }_{2}$.
Constraint: df2 > 0.0${\mathbf{df2}}>0.0$.
4:     rlamda – double scalar
λ$\lambda$, the noncentrality parameter.
Constraint: 0.0rlamda2.0log(U)$0.0\le {\mathbf{rlamda}}\le -2.0\mathrm{log}\left(U\right)$ where U$U$ is the safe range parameter as defined by nag_machine_real_safe (x02am).

### Optional Input Parameters

1:     tol – double scalar
The relative accuracy required by you in the results. If nag_stat_prob_f_noncentral (g01gd) is entered with tol greater than or equal to 1.0$1.0$ or less than 10 × machine precision (see nag_machine_precision (x02aj)), then the value of 10 × machine precision is used instead.
Default: 0.0$0.0$
2:     maxit – int64int32nag_int scalar
The maximum number of iterations to be used.
Default: 500$500$. See nag_stat_prob_chisq_noncentral (g01gc) and nag_stat_prob_beta_noncentral (g01ge) for further details.
Constraint: maxit1${\mathbf{maxit}}\ge 1$.

None.

### Output Parameters

1:     result – double scalar
The result of the function.
2:     ifail – int64int32nag_int scalar
${\mathrm{ifail}}={\mathbf{0}}$ unless the function detects an error (see [Error Indicators and Warnings]).

## Error Indicators and Warnings

Note: nag_stat_prob_f_noncentral (g01gd) may return useful information for one or more of the following detected errors or warnings.
Errors or warnings detected by the function:
If on exit ${\mathbf{ifail}}={\mathbf{1}}$ or 3${\mathbf{3}}$, then nag_stat_prob_f_noncentral (g01gd) returns 0.0$0.0$.

Cases prefixed with W are classified as warnings and do not generate an error of type NAG:error_n. See nag_issue_warnings.

ifail = 1${\mathbf{ifail}}=1$
 On entry, df1 ≤ 0.0${\mathbf{df1}}\le 0.0$, or df1 > 106${\mathbf{df1}}>{10}^{6}$, or df2 ≤ 0.0${\mathbf{df2}}\le 0.0$, or f ≤ 0.0${\mathbf{f}}\le 0.0$, or rlamda < 0.0${\mathbf{rlamda}}<0.0$, or maxit < 1${\mathbf{maxit}}<1$, or rlamda > − 2.0log(U)${\mathbf{rlamda}}>-2.0\mathrm{log}\left(U\right)$, where U = $U=\text{}$ safe range parameter as defined by nag_machine_real_safe (x02am).
ifail = 2${\mathbf{ifail}}=2$
The solution has failed to converge in maxit iterations. You should try a larger value of maxit or tol.
ifail = 3${\mathbf{ifail}}=3$
The required probability cannot be computed accurately. This may happen if the result would be very close to 0.0$0.0$ or 1.0$1.0$. Alternatively the values of df1 and f may be too large. In the latter case you could try using a normal approximation; see Abramowitz and Stegun (1972).
W ifail = 4${\mathbf{ifail}}=4$
The required accuracy was not achieved when calculating the initial value of the central F$F$ (or χ2${\chi }^{2}$) probability. You should try a larger value of tol. If the χ2${\chi }^{2}$ approximation is being used then nag_stat_prob_f_noncentral (g01gd) returns zero otherwise the value returned should be an approximation to the correct value.

## Accuracy

The relative accuracy should be as specified by tol. For further details see nag_stat_prob_chisq_noncentral (g01gc) and nag_stat_prob_beta_noncentral (g01ge).

When both ν1${\nu }_{1}$ and ν2${\nu }_{2}$ are large a Normal approximation may be used and when only ν1${\nu }_{1}$ is large a χ2${\chi }^{2}$ approximation may be used. In both cases λ$\lambda$ is required to be of the same order as ν1${\nu }_{1}$. See Abramowitz and Stegun (1972) for further details.

## Example

```function nag_stat_prob_f_noncentral_example
f = 5.5;
df1 = 1.5;
df2 = 25.5;
rlamda = 3;
[result, ifail] = nag_stat_prob_f_noncentral(f, df1, df2, rlamda)
```
```

result =

0.8214

ifail =

0

```
```function g01gd_example
f = 5.5;
df1 = 1.5;
df2 = 25.5;
rlamda = 3;
[result, ifail] = g01gd(f, df1, df2, rlamda)
```
```

result =

0.8214

ifail =

0

```