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

# Syntax

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

#### Parameters

q
Type: System..::..Double
On entry: $q$, the Studentized range statistic.
Constraint: ${\mathbf{q}}>0.0$.
v
Type: System..::..Double
On entry: $v$, the number of degrees of freedom for the experimental error.
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

g01em returns the probability associated with the lower tail 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=max xi-min xiσ^e,$
where ${\stackrel{^}{\sigma }}_{e}$ is an independent estimate of the standard error of the ${x}_{i}$'s. 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}}_{\mathrm{largest}}$ and ${\stackrel{-}{T}}_{\mathrm{smallest}}$, divided by the square root of the mean-square experimental error, $M{S}_{\mathrm{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.$
The above two-dimensional integral is evaluated using d01da with the upper and lower limits computed to give stated accuracy (see [Accuracy]).
If the degrees of freedom $v$ are greater than $2000$ the probability integral can be approximated by its asymptotic form:
 $Pq;r=r∫-∞∞ϕyΦy-Φy-qr-1dy.$
This integral is evaluated using d01am.

# References

Abramowitz M and Stegun I A (1972) Handbook of Mathematical Functions (3rd Edition) Dover Publications
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: g01em may return useful information for one or more of the following detected errors or warnings.
Errors or warnings detected by the method:
${\mathbf{ifail}}=1$
 On entry, ${\mathbf{q}}\le 0.0$, or ${\mathbf{v}}<1.0$, or ${\mathbf{ir}}<2$.
${\mathbf{ifail}}=2$
There is some doubt as to whether full accuracy has been achieved.
${\mathbf{ifail}}=-9000$
An error occured, see message report.

# Accuracy

The returned value will have absolute accuracy to at least four decimal places (usually five), unless ${\mathbf{ifail}}={2}$. When ${\mathbf{ifail}}={2}$ it is usual that the returned value will be a good estimate of the true value.

None.

None.

# Example

The lower tail probabilities for the distribution of the Studentized range statistic are computed and printed for a range of values of $q$, $\nu$ and $r$.

Example program (C#): g01eme.cs

Example program data: g01eme.d

Example program results: g01eme.r