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_nonpar_test_mooddavid (g08ba)

## Purpose

nag_nonpar_test_mooddavid (g08ba) performs Mood's and David's tests for dispersion differences between two independent samples of possibly unequal size.

## Syntax

[r, w, v, pw, pv, ifail] = g08ba(x, n1, itest, 'n', n)
[r, w, v, pw, pv, ifail] = nag_nonpar_test_mooddavid(x, n1, itest, 'n', n)

## Description

Mood's and David's tests investigate the difference between the dispersions of two independent samples of sizes n1${n}_{1}$ and n2${n}_{2}$, denoted by
 x1,x2, … ,xn1 $x1,x2,…,xn1$
and
 xn1 + 1,xn1 + 2, … ,xn,   n = n1 + n2. $xn1+ 1,xn1+ 2,…,xn, n=n1+n2.$
The hypothesis under test, H0${H}_{0}$, often called the null hypothesis, is that the dispersion difference is zero, and this is to be tested against a one- or two-sided alternative hypothesis H1${H}_{1}$ (see below).
Both tests are based on the rankings of the sample members within the pooled sample formed by combining both samples. If there is some difference in dispersion, more of the extreme ranks will tend to be found in one sample than in the other.
Let the rank of xi${x}_{\mathit{i}}$ be denoted by ri${r}_{\mathit{i}}$, for i = 1,2,,n$\mathit{i}=1,2,\dots ,n$.
(a) Mood's test.
The test statistic W = i = 1n1 (ri(n + 1)/2)2$W=\sum _{i=1}^{{n}_{1}}{\left({r}_{i}-\frac{n+1}{2}\right)}^{2}$ is found.
W$W$ is the sum of squared deviations from the average rank in the pooled sample. For large n$n$, W$W$ approaches normality, and so an approximation, pw${p}_{w}$, to the probability of observing W$W$ not greater than the computed value, may be found.
nag_nonpar_test_mooddavid (g08ba) returns W$W$ and pw${p}_{w}$ if Mood's test is selected.
(b) David's test.
The disadvantage of Mood's test is that it assumes that the means of the two samples are equal. If this assumption is unjustified a high value of W$W$ could merely reflect the difference in means. David's test reduces this effect by using the variance of the ranks of the first sample about their mean rank, rather than the overall mean rank.
The test statistic for David's test is
 n1 V = 1/(n1 − 1) ∑ (ri − r)2 i = 1
$V=1n1-1 ∑i=1n1 (ri-r-) 2$
where
 r = ( ∑ i = 1n1ri)/(n1). $r-=∑i= 1n1rin1.$
For large n$n$, V$V$ approaches normality, enabling an approximate probability pv${p}_{v}$ to be computed, similarly to pw${p}_{w}$.
nag_nonpar_test_mooddavid (g08ba) returns V$V$ and pv${p}_{v}$ if David's test is selected.
Suppose that a significance test of a chosen size α$\alpha$ is to be performed (i.e., α$\alpha$ is the probability of rejecting H0${H}_{0}$ when H0${H}_{0}$ is true; typically α$\alpha$ is a small quantity such as 0.05$0.05$ or 0.01$0.01$).
The returned value p$p$ ( = pv$={p}_{v}$ or pw${p}_{w}$) can be used to perform a significance test, against various alternative hypotheses H1${H}_{1}$, as follows.
 (i) H1${H}_{1}$: dispersions are unequal. H0${H}_{0}$ is rejected if 2 × min (p,1 − p) < α $2×\mathrm{min}\phantom{\rule{0.125em}{0ex}}\left(p,1-p\right)<\alpha$. (ii) H1${H}_{1}$: dispersion of sample 1 > $1>\text{}$ dispersion of sample 2$2$. H0${H}_{0}$ is rejected if 1 − p < α$1-p<\alpha$. (iii) H1${H}_{1}$: dispersion of sample 2 > $2>\text{}$ dispersion of sample 1$1$. H0${H}_{0}$ is rejected if p < α$p<\alpha$.

## References

Cooper B E (1975) Statistics for Experimentalists Pergamon Press

## Parameters

### Compulsory Input Parameters

1:     x(n) – double array
n, the dimension of the array, must satisfy the constraint n > 2${\mathbf{n}}>2$.
The first n1${n}_{1}$ elements of x must be set to the data values in the first sample, and the next n2${n}_{2}$ ( = nn1$\text{}={\mathbf{n}}-{n}_{1}$) elements to the data values in the second sample.
2:     n1 – int64int32nag_int scalar
The size of the first sample, n1${n}_{1}$.
Constraint: 1 < n1 < n$1<{\mathbf{n1}}<{\mathbf{n}}$.
3:     itest – int64int32nag_int scalar
The test(s) to be carried out.
itest = 0${\mathbf{itest}}=0$
Both Mood's and David's tests.
itest = 1${\mathbf{itest}}=1$
David's test only.
itest = 2${\mathbf{itest}}=2$
Mood's test only.
Constraint: itest = 0${\mathbf{itest}}=0$, 1$1$ or 2$2$.

### Optional Input Parameters

1:     n – int64int32nag_int scalar
Default: The dimension of the array x.
The total of the two sample sizes, n$n$ ( = n1 + n2$\text{}={n}_{1}+{n}_{2}$).
Constraint: n > 2${\mathbf{n}}>2$.

None.

### Output Parameters

1:     r(n) – double array
The ranks ri${r}_{\mathit{i}}$, assigned to the data values xi${x}_{\mathit{i}}$, for i = 1,2,,n$\mathit{i}=1,2,\dots ,n$.
2:     w – double scalar
Mood's test statistic, W$W$, if requested.
3:     v – double scalar
David's test statistic, V$V$, if requested.
4:     pw – double scalar
The lower tail probability, pw${p}_{w}$, corresponding to the value of W$W$, if Mood's test was requested.
5:     pv – double scalar
The lower tail probability, pv${p}_{v}$, corresponding to the value of V$V$, if David's test was requested.
6:     ifail – int64int32nag_int scalar
${\mathrm{ifail}}={\mathbf{0}}$ unless the function detects an error (see [Error Indicators and Warnings]).

## Error Indicators and Warnings

Errors or warnings detected by the function:
ifail = 1${\mathbf{ifail}}=1$
 On entry, n ≤ 2${\mathbf{n}}\le 2$.
ifail = 2${\mathbf{ifail}}=2$
 On entry, n1 ≤ 1${\mathbf{n1}}\le 1$, or n1 ≥ n${\mathbf{n1}}\ge {\mathbf{n}}$.
ifail = 3${\mathbf{ifail}}=3$
 On entry, itest < 0${\mathbf{itest}}<0$, or itest > 2${\mathbf{itest}}>2$.

## Accuracy

All computations are believed to be stable. The statistics V$V$ and W$W$ should be accurate enough for all practical uses.

The time taken by nag_nonpar_test_mooddavid (g08ba) is small, and increases with n$n$.

## Example

```function nag_nonpar_test_mooddavid_example
x = [6;
9;
12;
4;
10;
11;
8;
1;
3;
7;
2;
5];
n1 = int64(6);
itest = int64(0);
[r, w, v, pw, pv, ifail] = nag_nonpar_test_mooddavid(x, n1, itest)
```
```

r =

6
9
12
4
10
11
8
1
3
7
2
5

w =

75.5000

v =

9.4667

pw =

0.5830

pv =

0.1986

ifail =

0

```
```function g08ba_example
x = [6;
9;
12;
4;
10;
11;
8;
1;
3;
7;
2;
5];
n1 = int64(6);
itest = int64(0);
[r, w, v, pw, pv, ifail] = g08ba(x, n1, itest)
```
```

r =

6
9
12
4
10
11
8
1
3
7
2
5

w =

75.5000

v =

9.4667

pw =

0.5830

pv =

0.1986

ifail =

0

```