# NAG FL Interfaceg04dbf (confidence)

## 1Purpose

g04dbf computes simultaneous confidence intervals for the differences between means. It is intended for use after g04bbf or g04bcf.

## 2Specification

Fortran Interface
 Subroutine g04dbf ( typ, nt, rdf, c, ldc, cil, ciu, isig,
 Integer, Intent (In) :: nt, ldc Integer, Intent (Inout) :: ifail Integer, Intent (Out) :: isig(nt*(nt-1)/2) Real (Kind=nag_wp), Intent (In) :: tmean(nt), rdf, c(ldc,nt), clevel Real (Kind=nag_wp), Intent (Out) :: cil(nt*(nt-1)/2), ciu(nt*(nt-1)/2) Character (1), Intent (In) :: typ
#include <nag.h>
 void g04dbf_ (const char *typ, const Integer *nt, const double tmean[], const double *rdf, const double c[], const Integer *ldc, const double *clevel, double cil[], double ciu[], Integer isig[], Integer *ifail, const Charlen length_typ)
The routine may be called by the names g04dbf or nagf_anova_confidence.

## 3Description

In the computation of analysis of a designed experiment the first stage is to compute the basic analysis of variance table, the estimate of the error variance (the residual or error mean square), ${\stackrel{^}{\sigma }}^{2}$, the residual degrees of freedom, $\nu$, and the (variance ratio) $F$-statistic for the $t$ treatments. The second stage of the analysis is to compare the treatment means. If the treatments have no structure, for example the treatments are different varieties, rather than being structured, for example a set of different temperatures, then a multiple comparison procedure can be used.
A multiple comparison procedure looks at all possible pairs of means and either computes confidence intervals for the difference in means or performs a suitable test on the difference. If there are $t$ treatments then there are $t\left(t-1\right)/2$ comparisons to be considered. In tests the type $1$ error or significance level is the probability that the result is considered to be significant when there is no difference in the means. If the usual $t$-test is used with, say, a $6%$ significance level then the type $1$ error for all $k=t\left(t-1\right)/2$ tests will be much higher. If the tests were independent then if each test is carried out at the $100\alpha$ percent level then the overall type $1$ error would be ${\alpha }^{*}=1-{\left(1-\alpha \right)}^{k}\simeq k\alpha$. In order to provide an overall protection the individual tests, or confidence intervals, would have to be carried out at a value of $\alpha$ such that ${\alpha }^{*}$ is the required significance level, e.g., five percent.
The $100\left(1-\alpha \right)$ percent confidence interval for the difference in two treatment means, ${\stackrel{^}{\tau }}_{i}$ and ${\stackrel{^}{\tau }}_{j}$ is given by
 $τ^i-τ^j±Tα,ν,t*seτ^i-τ^j,$
where $se\left(\right)$ denotes the standard error of the difference in means and ${T}_{\left(\alpha ,\nu ,t\right)}^{*}$ is an appropriate percentage point from a distribution. There are several possible choices for ${T}_{\left(\alpha ,\nu ,t\right)}^{*}$. These are:
1. (a)$\frac{1}{2}{q}_{\left(1-\alpha ,\nu ,t\right)}$, the studentized range statistic, see g01fmf. It is the appropriate statistic to compare the largest mean with the smallest mean. This is known as Tukey–Kramer method.
2. (b)${t}_{\left(\alpha /k,\nu \right)}$, this is the Bonferroni method.
3. (c)${t}_{\left({\alpha }_{0},\nu \right)}$, where ${\alpha }_{0}=1-{\left(1-\alpha \right)}^{1/k}$, this is known as the Dunn–Sidak method.
4. (d)${t}_{\left(\alpha ,\nu \right)}$, this is known as Fisher's LSD (least significant difference) method. It should only be used if the overall $F$-test is significant, the number of treatment comparisons is small and were planned before the analysis.
5. (e)$\sqrt{\left(k-1\right){F}_{1-\alpha ,k-1,\nu }}$ where ${F}_{1-\alpha ,k-1,\nu }$ is the deviate corresponding to a lower tail probability of $1-\alpha$ from an $F$-distribution with $k-1$ and $\nu$ degrees of freedom. This is Scheffe's method.
In cases (b), (c) and (d), ${t}_{\left(\alpha ,\nu \right)}$ denotes the $\alpha$ two tail significance level for the Student's $t$-distribution with $\nu$ degrees of freedom, see g01fbf.
The Scheffe method is the most conservative, followed closely by the Dunn–Sidak and Tukey–Kramer methods.
To compute a test for the difference between two means the statistic,
 $τ^i-τ^j seτ^i-τ^j$
is compared with the appropriate value of ${T}_{\left(\alpha ,\nu ,t\right)}^{*}$.

## 4References

Kotz S and Johnson N L (ed.) (1985a) Multiple range and associated test procedures Encyclopedia of Statistical Sciences 5 Wiley, New York
Kotz S and Johnson N L (ed.) (1985b) Multiple comparison Encyclopedia of Statistical Sciences 5 Wiley, New York
Winer B J (1970) Statistical Principles in Experimental Design McGraw–Hill

## 5Arguments

1: $\mathbf{typ}$Character(1) Input
On entry: indicates which method is to be used.
${\mathbf{typ}}=\text{'T'}$
The Tukey–Kramer method is used.
${\mathbf{typ}}=\text{'B'}$
The Bonferroni method is used.
${\mathbf{typ}}=\text{'D'}$
The Dunn–Sidak method is used.
${\mathbf{typ}}=\text{'L'}$
The Fisher LSD method is used.
${\mathbf{typ}}=\text{'S'}$
The Scheffe's method is used.
Constraint: ${\mathbf{typ}}=\text{'T'}$, $\text{'B'}$, $\text{'D'}$, $\text{'L'}$ or $\text{'S'}$.
2: $\mathbf{nt}$Integer Input
On entry: $t$, the number of treatment means.
Constraint: ${\mathbf{nt}}\ge 2$.
3: $\mathbf{tmean}\left({\mathbf{nt}}\right)$Real (Kind=nag_wp) array Input
On entry: the treatment means, ${\stackrel{^}{\tau }}_{\mathit{i}}$, for $\mathit{i}=1,2,\dots ,t$.
4: $\mathbf{rdf}$Real (Kind=nag_wp) Input
On entry: $\nu$, the residual degrees of freedom.
Constraint: ${\mathbf{rdf}}\ge 1.0$.
5: $\mathbf{c}\left({\mathbf{ldc}},{\mathbf{nt}}\right)$Real (Kind=nag_wp) array Input
On entry: the strictly lower triangular part of c must contain the standard errors of the differences between the means as returned by g04bbf and g04bcf. That is ${\mathbf{c}}\left(i,j\right)$, $i>j$, contains the standard error of the difference between the $i$th and $j$th mean in tmean.
Constraint: ${\mathbf{c}}\left(\mathit{i},\mathit{j}\right)>0.0$, for $\mathit{i}=2,3,\dots ,t$ and $\mathit{j}=1,2,\dots ,\mathit{i}-1$.
6: $\mathbf{ldc}$Integer Input
On entry: the first dimension of the array c as declared in the (sub)program from which g04dbf is called.
Constraint: ${\mathbf{ldc}}\ge {\mathbf{nt}}$.
7: $\mathbf{clevel}$Real (Kind=nag_wp) Input
On entry: the required confidence level for the computed intervals, ($1-\alpha$).
Constraint: $0.0<{\mathbf{clevel}}<1.0$.
8: $\mathbf{cil}\left({\mathbf{nt}}×\left({\mathbf{nt}}-1\right)/2\right)$Real (Kind=nag_wp) array Output
On exit: the $\left(\left(\mathit{i}-1\right)\left(\mathit{i}-2\right)/2+\mathit{j}\right)$th element contains the lower limit to the confidence interval for the difference between $\mathit{i}$th and $\mathit{j}$th means in tmean, for $\mathit{i}=2,3,\dots ,t$ and $\mathit{j}=1,2,\dots ,\mathit{i}-1$.
9: $\mathbf{ciu}\left({\mathbf{nt}}×\left({\mathbf{nt}}-1\right)/2\right)$Real (Kind=nag_wp) array Output
On exit: the $\left(\left(\mathit{i}-1\right)\left(\mathit{i}-2\right)/2+\mathit{j}\right)$th element contains the upper limit to the confidence interval for the difference between $\mathit{i}$th and $\mathit{j}$th means in tmean, for $\mathit{i}=2,3,\dots ,t$ and $\mathit{j}=1,2,\dots ,\mathit{i}-1$.
10: $\mathbf{isig}\left({\mathbf{nt}}×\left({\mathbf{nt}}-1\right)/2\right)$Integer array Output
On exit: the $\left(\left(\mathit{i}-1\right)\left(\mathit{i}-2\right)/2+\mathit{j}\right)$th element indicates if the difference between $\mathit{i}$th and $\mathit{j}$th means in tmean is significant, for $\mathit{i}=2,3,\dots ,t$ and $\mathit{j}=1,2,\dots ,\mathit{i}-1$. If the difference is significant then the returned value is $1$; otherwise the returned value is $0$.
11: $\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, if you are not familiar with this argument, the recommended value is $0$. 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:
${\mathbf{ifail}}=1$
On entry, ${\mathbf{clevel}}=〈\mathit{\text{value}}〉$.
Constraint: $0.0<{\mathbf{clevel}}<1.0$.
On entry, ${\mathbf{ldc}}=〈\mathit{\text{value}}〉$ and ${\mathbf{nt}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{ldc}}\ge {\mathbf{nt}}$.
On entry, ${\mathbf{nt}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{nt}}\ge 2$.
On entry, ${\mathbf{rdf}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{rdf}}\ge 1.0$.
On entry, ${\mathbf{typ}}=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{typ}}=\text{'T'}$, $\text{'B'}$, $\text{'D'}$, $\text{'L'}$ or $\text{'S'}$.
${\mathbf{ifail}}=2$
On entry, $i=〈\mathit{\text{value}}〉$ and $j=〈\mathit{\text{value}}〉$.
Constraint: ${\mathbf{c}}\left(i,j\right)>0.0$.
${\mathbf{ifail}}=3$
There has been a failure in the computation of the studentized range statistic. This is an unlikely error exit. Try using a small value of clevel.
${\mathbf{ifail}}=-99$
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

For the accuracy of the percentage point statistics see g01fbf and g01fmf.

## 8Parallelism and Performance

g04dbf is threaded by NAG for parallel execution in multithreaded implementations of the NAG Library.
Please consult the X06 Chapter Introduction for information on how to control and interrogate the OpenMP environment used within this routine. Please also consult the Users' Note for your implementation for any additional implementation-specific information.

If the treatments have a structure then the use of linear contrasts as computed by g04daf may be more appropriate.
An alternative approach to one used in g04dbf is the sequential testing of the Student–Newman–Keuls procedure. This, in effect, uses the Tukey–Kramer method but first ordering the treatment means and examining only subsets of the treatment means in which the largest and smallest are significantly different. At each stage the third parameter of the Studentized range statistic is the number of means in the subset rather than the total number of means.

## 10Example

In the example taken from Winer (1970) a completely randomized design with unequal treatment replication is analysed using g04bbf and then confidence intervals are computed by g04dbf using the Tukey–Kramer method.

### 10.1Program Text

Program Text (g04dbfe.f90)

### 10.2Program Data

Program Data (g04dbfe.d)

### 10.3Program Results

Program Results (g04dbfe.r)