NAG Library Function Document
nag_anova_confid_interval (g04dbc)
1 Purpose
nag_anova_confid_interval (g04dbc) computes simultaneous confidence intervals for the differences between means. It is intended for use after
nag_anova_random (g04bbc) or
nag_anova_row_col (g04bcc).
2 Specification
#include <nag.h> 
#include <nagg04.h> 
void 
nag_anova_confid_interval (Nag_IntervalType type,
Integer nt,
const double tmean[],
double rdf,
const double c[],
Integer tdc,
double clevel,
double cil[],
double ciu[],
Integer isig[],
NagError *fail) 

3 Description
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), ${\hat{\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(t1\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 five percent significance level then the type 1 error for all $k=t\left(t1\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,
${\hat{\tau}}_{i}$ and
${\hat{\tau}}_{j}$ is given by
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:
(a) 
$\frac{1}{2}{q}_{\left(1\alpha ,\nu ,t\right)}$, the studentized range statistic. It is the appropriate statistic to compare the largest mean with the smallest mean. This is known as Tukey–Kramer method. 
(b) 
${t}_{\left(\alpha /k,\nu \right)}$, this is the Bonferroni method. 
(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. 
(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. 
(e) 
$\sqrt{\left(k1\right){F}_{1\alpha ,k1,\nu}}$ where ${F}_{1\alpha ,k1,\nu}$ is the deviate corresponding to a lower tail probability of $1\alpha $ from an $F$distribution with $k1$ and $\nu $ degrees of freedom. This is Scheffe's method. 
In cases
(b),
(c) and
(d),
${t}_{\left(\alpha ,\nu \right)}$ denotes the
$\alpha $ twotail significance level for the Student's
$t$distribution with
$\nu $ degrees of freedom, see
nag_deviates_students_t (g01fbc).
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,
is compared with the appropriate value of
${T}_{\left(\alpha ,\nu ,t\right)}^{*}$.
4 References
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
5 Arguments
 1:
type – Nag_IntervalTypeInput
On entry: indicates which method is to be used.
 ${\mathbf{type}}=\mathrm{Nag\_TukeyInterval}$
 The Tukey–Kramer method is used.
 ${\mathbf{type}}=\mathrm{Nag\_BonferroniInterval}$
 The Bonferroni method is used.
 ${\mathbf{type}}=\mathrm{Nag\_DunnInterval}$
 The Dunn–Sidak method is used.
 ${\mathbf{type}}=\mathrm{Nag\_FisherInterval}$
 The Fisher LSD method is used.
 ${\mathbf{type}}=\mathrm{Nag\_ScheffeInterval}$
 The Scheffe's method is used.
Constraint:
${\mathbf{type}}=\mathrm{Nag\_TukeyInterval}$, $\mathrm{Nag\_BonferroniInterval}$, $\mathrm{Nag\_DunnInterval}$, $\mathrm{Nag\_FisherInterval}$ or $\mathrm{Nag\_ScheffeInterval}$.
 2:
nt – IntegerInput
On entry: the number of treatment means, $t$.
Constraint:
${\mathbf{nt}}\ge 2$.
 3:
tmean[nt] – const doubleInput

On entry: ${\mathbf{tmean}}\left[i1\right]$ contains the treatment means, ${\hat{\tau}}_{i}$, $i=1,2,\dots ,t$.
 4:
rdf – doubleInput

On entry: the residual degrees of freedom, $\nu $.
Constraint:
${\mathbf{rdf}}\ge 1.0$.
 5:
c[${\mathbf{nt}}\times {\mathbf{tdc}}$] – const doubleInput

On entry: the strictly lower triangular part of
c must contain the standard errors of the differences between the means as returned by
nag_anova_random (g04bbc) and
nag_anova_row_col (g04bcc). That is
${\mathbf{c}}\left[\left(i1\right)\times {\mathbf{tdc}}+j1\right]$,
$i>j$, contains the standard error of the difference between the
$i$th and
$j$th mean in
tmean.
Constraint:
${\mathbf{c}}\left[\left(\mathit{i}1\right)\times {\mathbf{tdc}}+\mathit{j}1\right]>0.0$, for $\mathit{i}=2,3,\dots ,t$ and $\mathit{j}=1,2,\dots ,i1$.
 6:
tdc – IntegerInput

On entry: the stride separating matrix column elements in the array
c.
Constraint:
${\mathbf{tdc}}\ge {\mathbf{nt}}$.
 7:
clevel – doubleInput

On entry: the required confidence level for the computed intervals, $\left(1\alpha \right)$.
Constraint:
$0.0<{\mathbf{clevel}}<1.0$.
 8:
cil[${\mathbf{nt}}\times \left({\mathbf{nt}}1\right)/2$] – doubleOutput

On exit:
${\mathbf{cil}}\left[\left(\mathit{i}1\right)\left(\mathit{i}2\right)/2+\mathit{j}1\right]$ 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:
ciu[${\mathbf{nt}}\times \left({\mathbf{nt}}1\right)/2$] – doubleOutput

On exit:
${\mathbf{ciu}}\left[\left(\mathit{i}1\right)\left(\mathit{i}2\right)/2+\mathit{j}1\right]$ 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:
isig[${\mathbf{nt}}\times \left({\mathbf{nt}}1\right)/2$] – IntegerOutput

On exit:
${\mathbf{isig}}\left[\left(\mathit{i}1\right)\left(\mathit{i}2\right)/2+\mathit{j}1\right]$ 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:
fail – NagError *Input/Output

The NAG error argument (see
Section 3.6 in the Essential Introduction).
6 Error Indicators and Warnings
 NE_2_INT_ARG_LT

On entry, ${\mathbf{tdc}}=\u27e8\mathit{\text{value}}\u27e9$ while ${\mathbf{nt}}=\u27e8\mathit{\text{value}}\u27e9$. These arguments must satisfy ${\mathbf{tdc}}\ge {\mathbf{nt}}$.
 NE_2D_REAL_ARRAY_CONS

On entry, ${\mathbf{c}}\left[\left(\u27e8\mathit{\text{value}}\u27e9\right)\times {\mathbf{tdc}}+\u27e8\mathit{\text{value}}\u27e9\right]=\u27e8\mathit{\text{value}}\u27e9$.
Constraint: ${\mathbf{c}}\left[\left(\mathit{i}\right)\times {\mathbf{tdc}}+\mathit{j}\right]>0.0$, for $\mathit{i}=1,2,\dots ,{\mathbf{nt}}1$ and $\mathit{j}=0,1,\dots ,i1$.
 NE_ALLOC_FAIL

Dynamic memory allocation failed.
 NE_BAD_PARAM

On entry, argument
type had an illegal value.
 NE_INT_ARG_LT

On entry, ${\mathbf{nt}}=\u27e8\mathit{\text{value}}\u27e9$.
Constraint: ${\mathbf{nt}}\ge 2$.
 NE_INTERNAL_ERROR

An internal error has occurred in this function. Check the function call
and any array sizes. If the call is correct then please contact
NAG for
assistance.
 NE_REAL

On entry, ${\mathbf{clevel}}=\u27e8\mathit{\text{value}}\u27e9$.
Constraint: $0.0<{\mathbf{clevel}}<1.0$.
 NE_REAL_ARG_LT

On entry,
rdf must not be less than 1.0:
${\mathbf{rdf}}=\u27e8\mathit{\text{value}}\u27e9$.
 NE_STUDENTIZED_STAT

There has been a failure in the computation of the studentized range statistic. Try using a smaller value of
clevel.
7 Accuracy
For the accuracy of the percentage point statistics see
nag_deviates_students_t (g01fbc).
8 Parallelism and Performance
Not applicable.
An alternative approach to one used in nag_anova_confid_interval (g04dbc) 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 argument of the Studentized range statistic is the number of means in the subset rather than the total number of means.
10 Example
In the example taken from
Winer (1970) a completely randomized design with unequal treatment replication is analysed using
nag_anova_random (g04bbc) and then confidence intervals are computed by nag_anova_confid_interval (g04dbc) using the Tukey–Kramer method.
10.1 Program Text
Program Text (g04dbce.c)
10.2 Program Data
Program Data (g04dbce.d)
10.3 Program Results
Program Results (g04dbce.r)