﻿ g01fm Method
g01fm returns the deviate associated with the lower tail probability of the distribution of the Studentized range statistic.

# Syntax

C#
```public static double g01fm(
double p,
double v,
int ir,
out int ifail
)```
Visual Basic
```Public Shared Function g01fm ( _
p As Double, _
v As Double, _
ir As Integer, _
<OutAttribute> ByRef ifail As Integer _
) As Double```
Visual C++
```public:
static double g01fm(
double p,
double v,
int ir,
[OutAttribute] int% ifail
)```
F#
```static member g01fm :
p : float *
v : float *
ir : int *
ifail : int byref -> float
```

#### Parameters

p
Type: System..::..Double
On entry: the lower tail probability for the Studentized range statistic, ${p}_{0}$.
Constraint: $0.0<{\mathbf{p}}<1.0$.
v
Type: System..::..Double
On entry: $v$, the number of degrees of freedom.
Constraint: ${\mathbf{v}}\ge 1.0$.
ir
Type: System..::..Int32
On entry: $r$, the number of groups.
Constraint: ${\mathbf{ir}}\ge 2$.
ifail
Type: System..::..Int32%
On exit: ${\mathbf{ifail}}={0}$ unless the method detects an error or a warning has been flagged (see [Error Indicators and Warnings]).

#### Return Value

g01fm returns the deviate associated with the lower tail probability of the distribution of the Studentized range statistic.

# Description

The externally Studentized range, $q$, for a sample, ${x}_{1},{x}_{2},\dots ,{x}_{r}$, is defined as
 $q=maxxi-minxiσ^e,$
where ${\stackrel{^}{\sigma }}_{e}$ is an independent estimate of the standard error of the ${x}_{i}$. The most common use of this statistic is in the testing of means from a balanced design. In this case for a set of group means, ${\stackrel{-}{T}}_{1},{\stackrel{-}{T}}_{2},\dots ,{\stackrel{-}{T}}_{r}$, the Studentized range statistic is defined to be the difference between the largest and smallest means, ${\stackrel{-}{T}}_{\text{largest}}$ and ${\stackrel{-}{T}}_{\text{smallest}}$, divided by the square root of the mean-square experimental error, $M{S}_{\text{error}}$, over the number of observations in each group, $n$, i.e.,
 $q=T-largest-T-smallestMSerror/n.$
The Studentized range statistic can be used as part of a multiple comparisons procedure such as the Newman–Keuls procedure or Duncan's multiple range test (see Montgomery (1984) and Winer (1970)).
For a Studentized range statistic the probability integral, $P\left(q;v,r\right)$, for $v$ degrees of freedom and $r$ groups, can be written as:
 $Pq;v,r=C∫0∞xv-1e-vx2/2r∫-∞∞ϕyΦy-Φy-qxr-1dydx,$
where
 $C=vv/2Γv/22v/2-1, ϕy=12πe-y2/2 and Φy=∫-∞yϕtdt.$
For a given probability ${p}_{0}$, the deviate ${q}_{0}$ is found as the solution to the equation
 $Pq0;v,r=p0,$ (1)
using c05az . Initial estimates are found using the approximation given in Lund and Lund (1983) and a simple search procedure.

# References

Lund R E and Lund J R (1983) Algorithm AS 190: probabilities and upper quartiles for the studentized range Appl. Statist. 32(2) 204–210
Montgomery D C (1984) Design and Analysis of Experiments Wiley
Winer B J (1970) Statistical Principles in Experimental Design McGraw–Hill

# Error Indicators and Warnings

Note: g01fm may return useful information for one or more of the following detected errors or warnings.
Errors or warnings detected by the method:
If on exit ${\mathbf{ifail}}={1}$, then g01fm returns $0.0$.
${\mathbf{ifail}}=1$
 On entry, ${\mathbf{p}}\le 0.0$, or ${\mathbf{p}}\ge 1.0$, or ${\mathbf{v}}<1.0$, or ${\mathbf{ir}}<2$.
${\mathbf{ifail}}=2$
The method was unable to find an upper bound for the value of ${q}_{0}$. This will be caused by ${p}_{0}$ being too close to $1.0$.
${\mathbf{ifail}}=3$
There is some doubt as to whether full accuracy has been achieved. The returned value should be a reasonable estimate of the true value.
${\mathbf{ifail}}=-9000$
An error occured, see message report.

# Accuracy

The returned solution, ${q}_{*}$, to equation (1) is determined so that at least one of the following criteria apply.
 (a) $\left|P\left({q}_{*}\text{;}v,r\right)-{p}_{0}\right|\le 0.000005$ (b) $\left|{q}_{0}-{q}_{*}\right|\le 0.000005×\mathrm{max}\phantom{\rule{0.125em}{0ex}}\left(1.0,\left|{q}_{*}\right|\right)$.

# Parallelism and Performance

None.

To obtain the factors for Duncan's multiple-range test, equation (1) has to be solved for ${p}_{1}$, where ${p}_{1}={p}_{0}^{r-1}$, so on input p should be set to ${p}_{0}^{r-1}$.

# Example

Three values of $p$, $\nu$ and $r$ are read in and the Studentized range deviates or quantiles are computed and printed.

Example program (C#): g01fme.cs

Example program data: g01fme.d

Example program results: g01fme.r