hide long namesshow long names
hide short namesshow short names
Integer type:  int32  int64  nag_int  show int32  show int32  show int64  show int64  show nag_int  show nag_int

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

NAG Toolbox: nag_nonpar_test_mooddavid (g08ba)


    1  Purpose
    2  Syntax
    7  Accuracy
    9  Example


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


[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)


Mood's and David's tests investigate the difference between the dispersions of two independent samples of sizes n1 and n2, denoted by
xn1+ 1,xn1+ 2,,xn,   n=n1+n2.  
The hypothesis under test, H0, 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 (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 be denoted by ri, for i=1,2,,n.
(a) Mood's test.
The test statistic W=i=1n1 ri- n+12 2 is found.
W is the sum of squared deviations from the average rank in the pooled sample. For large n, W approaches normality, and so an approximation, pw, to the probability of observing W not greater than the computed value, may be found.
nag_nonpar_test_mooddavid (g08ba) returns W and pw 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 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
V=1n1-1 i=1n1 ri-r- 2  
r-=i= 1n1rin1.  
For large n, V approaches normality, enabling an approximate probability pv to be computed, similarly to pw.
nag_nonpar_test_mooddavid (g08ba) returns V and pv if David's test is selected.
Suppose that a significance test of a chosen size α is to be performed (i.e., α is the probability of rejecting H0 when H0 is true; typically α is a small quantity such as 0.05 or 0.01).
The returned value p (=pv or pw) can be used to perform a significance test, against various alternative hypotheses H1, as follows.
(i) H1: dispersions are unequal. H0 is rejected if 2 × minp,1-p < α .
(ii) H1: dispersion of sample 1> dispersion of sample 2. H0 is rejected if 1-p<α.
(iii) H1: dispersion of sample 2> dispersion of sample 1. H0 is rejected if p<α.


Cooper B E (1975) Statistics for Experimentalists Pergamon Press


Compulsory Input Parameters

1:     xn – double array
The first n1 elements of x must be set to the data values in the first sample, and the next n2 (=n-n1) elements to the data values in the second sample.
2:     n1 int64int32nag_int scalar
The size of the first sample, n1.
Constraint: 1<n1<n.
3:     itest int64int32nag_int scalar
The test(s) to be carried out.
Both Mood's and David's tests.
David's test only.
Mood's test only.
Constraint: itest=0, 1 or 2.

Optional Input Parameters

1:     n int64int32nag_int scalar
Default: the dimension of the array x.
The total of the two sample sizes, n (=n1+n2).
Constraint: n>2.

Output Parameters

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

Error Indicators and Warnings

Errors or warnings detected by the function:
On entry,n2.
On entry,n11,
On entry,itest<0,
An unexpected error has been triggered by this routine. Please contact NAG.
Your licence key may have expired or may not have been installed correctly.
Dynamic memory allocation failed.


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

Further Comments

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


This example is taken from page 280 of Cooper (1975). The data consists of two samples of six observations each. Both Mood's and David's test statistics and significances are computed. Note that Mood's statistic is inflated owing to the difference in location of the two samples, the median ranks differing by a factor of two.
function g08ba_example

fprintf('g08ba example results\n\n');

x = [6;  9; 12;  4; 10; 11;  8;  1;  3;  7;  2;  5];

n1 = int64(6);
fprintf('Mood''s test and David''s test\n\n');
fprintf('Data values\n\n');
fprintf('Group 1\n');
fprintf('\n\nGroup 2\n');

itest = int64(0);
[r, w, v, pw, pv, ifail] = g08ba( ...
                                  x, n1, itest);

fprintf('    Mood''s measure  = %8.3f   Significance = %8.4f\n', w, pw);
fprintf('    David''s measure = %8.3f   Significance = %8.4f\n', v, pv);

g08ba example results

Mood's test and David's test

Data values

Group 1
   6   9  12   4  10  11

Group 2
   8   1   3   7   2   5

    Mood's measure  =   75.500   Significance =   0.5830
    David's measure =    9.467   Significance =   0.1986

PDF version (NAG web site, 64-bit version, 64-bit version)
Chapter Contents
Chapter Introduction
NAG Toolbox

© The Numerical Algorithms Group Ltd, Oxford, UK. 2009–2015