<?xml-stylesheet type="text/xsl" href="../styles/pmathml.xsl"?>
<!-- saved from url=(0014)about:internet -->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:dsi="http://www.w3.org/1999/xlink" xmlns:m="http://www.w3.org/1998/Math/MathML" xml:space="preserve"><head><meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"/><title>G07EBF : NAG Library, Mark 22</title><link rel="stylesheet" href="../styles/libdoc.css" type="text/css"/><script type="text/javascript">
   function showLevel(_levelId){
    var thisLevel = document.getElementById(_levelId);
    var thisplus = document.getElementById( _levelId.concat('plus'));
    var thisminus = document.getElementById( _levelId.concat('minus'));
    if(thisLevel.style.display != "block"){
     thisLevel.style.display = "block";
     thisplus.style.display = "none";
     thisminus.style.display = "inline";
     }
    else{
     thisLevel.style.display = "none";
     thisminus.style.display = "none";
     thisplus.style.display = "inline";
     }
    }
  </script></head><body><hr/><div><a class="rout" href="../../pdf/G07/g07ebf.pdf">G07EBF (PDF version)</a></div><div><a class="chap" href="g07conts.xml">G07 Chapter Contents</a></div><div><a class="chapint" href="g07intro.xml">G07 Chapter Introduction</a></div>
<div><a class="htmltoc" href="../FRONTMATTER/manconts.xml">NAG Library Manual</a></div><hr/><h1 class="libdoc">NAG Library Routine Document<br/><br/>G07EBF</h1><div class="paramtext"><div class="header"><b>Note:</b>&#160; before using this routine, please read the Users' Note for your implementation to check the interpretation of <span class="bitalic">bold italicised</span> terms and other implementation-dependent details.</div></div> 
<div class="htmltoc">
<h2 class="htmltoc"><span class="htmltochead" onclick="showLevel('htmltoc');"><span class="htmltocplus" id="htmltocplus">+</span><span class="htmltocminus" id="htmltocminus">&#8722;</span></span>&#160;Contents</h2>
<div class="htmltocitem" id="htmltoc">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#purpose">1&#160;&#160;<b>Purpose</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#specification">2&#160;&#160;<b>Specification</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#description">3&#160;&#160;<b>Description</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#references">4&#160;&#160;<b>References</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#parameters">5&#160;&#160;<b>Parameters</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#errors">6&#160;&#160;<b>Error Indicators and Warnings</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#accuracy">7&#160;&#160;<b>Accuracy</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#fcomments">8&#160;&#160;<b>Further Comments</b></a>
</div><div class="htmltoc">
<span class="htmltoc" onclick="showLevel('tocexample');"><span class="htmltocplus" id="tocexampleplus">+</span><span class="htmltocminus" id="tocexampleminus">&#8722;</span></span>
<a class="htmltoc" href="#example">9&#160;&#160;<b>Example</b></a>
<div class="htmltocitem" id="tocexample">
<div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#examtext">9.1&#160;&#160;<b>Program Text</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#examdata">9.2&#160;&#160;<b>Program Data</b></a>
</div><div class="htmltoc">
<span class="htmltocplus">&#160;&#160;&#160;</span>
<a class="htmltoc" href="#examresults">9.3&#160;&#160;<b>Program Results</b></a>
</div>
</div>
</div>
</div>
</div><h2 class="standard"><a class="sec" name="purpose" id="purpose"/>1&#160;&#160;Purpose</h2>
<div class="paramtext">G07EBF calculates a rank based (nonparametric) estimate and confidence interval for the difference in location between two independent populations.</div><h2 class="standard"><a class="sec" name="specification" id="specification"/>2&#160;&#160;Specification</h2>
<table class="fspec"><tr><td class="tdfspec1">SUBROUTINE&#160;G07EBF&#160;(</td><td class="tdfspec2"><a class="arg" href="#METHOD">METHOD</a>, <a class="arg" href="#N">N</a>, <a class="arg" href="#X">X</a>, <a class="arg" href="#M">M</a>, <a class="arg" href="#Y">Y</a>, <a class="arg" href="#CLEVEL">CLEVEL</a>, <a class="arg" href="#THETA">THETA</a>, <a class="arg" href="#THETAL">THETAL</a>, <a class="arg" href="#THETAU">THETAU</a>, <a class="arg" href="#ESTCL">ESTCL</a>, <a class="arg" href="#ULOWER">ULOWER</a>, <a class="arg" href="#UUPPER">UUPPER</a>, <a class="arg" href="#WRK">WRK</a>, <a class="arg" href="#IWRK">IWRK</a>, <a class="arg" href="#IFAIL">IFAIL</a>)</td></tr><tr><td class="tdfspec1">INTEGER</td><td class="tdfspec2">N, M, IWRK(3*N), IFAIL</td></tr><tr><td class="tdfspec1"><b><i>double&#160;precision</i></b></td><td class="tdfspec2">X(N), Y(M), CLEVEL, THETA, THETAL, THETAU, ESTCL, ULOWER, UUPPER, WRK(3*(M+N))</td></tr><tr><td class="tdfspec1">CHARACTER*1</td><td class="tdfspec2">METHOD</td></tr></table><h2 class="standard"><a class="sec" name="description" id="description"/>3&#160;&#160;Description</h2>
<div class="paramtext">Consider two random samples from two populations which have the same continuous distribution except for a shift in the location.  Let the random sample, <m:math><m:mi>x</m:mi><m:mo>=</m:mo><m:msup><m:mfenced separators=""><m:msub><m:mi>x</m:mi><m:mn>1</m:mn></m:msub><m:mo>,</m:mo><m:msub><m:mi>x</m:mi><m:mn>2</m:mn></m:msub><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:msub><m:mi>x</m:mi><m:mi>n</m:mi></m:msub></m:mfenced><m:mi mathvariant="normal">T</m:mi></m:msup></m:math>, have distribution <m:math><m:mi>F</m:mi><m:mfenced separators=""><m:mi>x</m:mi></m:mfenced></m:math>&#160;and the random sample, <m:math><m:mi>y</m:mi><m:mo>=</m:mo><m:msup><m:mfenced separators=""><m:msub><m:mi>y</m:mi><m:mn>1</m:mn></m:msub><m:mo>,</m:mo><m:msub><m:mi>y</m:mi><m:mn>2</m:mn></m:msub><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:msub><m:mi>y</m:mi><m:mi>m</m:mi></m:msub></m:mfenced><m:mi mathvariant="normal">T</m:mi></m:msup></m:math>, have distribution <m:math><m:mi>F</m:mi><m:mfenced separators=""><m:mi>x</m:mi><m:mo>-</m:mo><m:mi>&#952;</m:mi></m:mfenced></m:math>.</div><div class="paramtext">G07EBF finds a point estimate, <m:math><m:mover><m:mi>&#952;</m:mi><m:mo>^</m:mo></m:mover></m:math>, of the difference in location <m:math><m:mi>&#952;</m:mi></m:math>&#160;together with an associated confidence interval.  The estimates are based on the ordered differences <m:math><m:msub><m:mi>y</m:mi><m:mi>j</m:mi></m:msub><m:mo>-</m:mo><m:msub><m:mi>x</m:mi><m:mi>i</m:mi></m:msub></m:math>.  The estimate <m:math><m:mover><m:mi>&#952;</m:mi><m:mo>^</m:mo></m:mover></m:math>&#160;is defined by

<div class="formula"><table class="formula"><tr><td class="formula"><m:math display="block">
<m:mover><m:mi>&#952;</m:mi><m:mo>^</m:mo></m:mover>
 <m:mo>=</m:mo>
 <m:mi mathvariant="normal">median</m:mi>
 <m:mfenced open="{" close="}" separators="">
  <m:msub><m:mi>y</m:mi><m:mi>j</m:mi></m:msub><m:mo>-</m:mo><m:msub><m:mi>x</m:mi><m:mi>i</m:mi></m:msub>
  <m:mtext>, &#8195;</m:mtext>
  <m:mi>i</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:mi>n</m:mi>
  <m:mtext>;</m:mtext>
  <m:mi>j</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:mi>m</m:mi>
 </m:mfenced>
 <m:mtext>.</m:mtext>
</m:math></td><td class="formula2"/></tr></table></div>

Let <m:math><m:msub><m:mi>d</m:mi><m:mi>k</m:mi></m:msub></m:math>&#160;for <m:math><m:mi>k</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:mi>n</m:mi><m:mi>m</m:mi></m:math>&#160;denote the <m:math><m:mi>n</m:mi><m:mi>m</m:mi></m:math>&#160;(ascendingly) ordered differences <m:math><m:msub><m:mi>y</m:mi><m:mi>j</m:mi></m:msub><m:mo>-</m:mo><m:msub><m:mi>x</m:mi><m:mi>i</m:mi></m:msub></m:math>&#160;for <m:math><m:mi>i</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:mi>n</m:mi></m:math>&#160;and <m:math><m:mi>j</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:mi>m</m:mi></m:math>.  Then
<ul class="listind"><li class="listind">if <m:math><m:mi>n</m:mi><m:mi>m</m:mi></m:math>&#160;is odd, <m:math><m:mover><m:mi>&#952;</m:mi><m:mo>^</m:mo></m:mover><m:mo>=</m:mo><m:msub><m:mi>d</m:mi><m:mi>k</m:mi></m:msub></m:math>&#160;where <m:math><m:mi>k</m:mi><m:mo>=</m:mo><m:mfenced separators=""><m:mi>n</m:mi><m:mi>m</m:mi><m:mo>-</m:mo><m:mn>1</m:mn></m:mfenced><m:mo>/</m:mo><m:mn>2</m:mn></m:math>;</li><li class="listind">if <m:math><m:mi>n</m:mi><m:mi>m</m:mi></m:math>&#160;is even, <m:math><m:mover><m:mi>&#952;</m:mi><m:mo>^</m:mo></m:mover><m:mo>=</m:mo><m:mfenced separators=""><m:msub><m:mi>d</m:mi><m:mi>k</m:mi></m:msub><m:mo>+</m:mo><m:msub><m:mi>d</m:mi><m:mrow><m:mi>k</m:mi><m:mo>+</m:mo><m:mn>1</m:mn></m:mrow></m:msub></m:mfenced><m:mo>/</m:mo><m:mn>2</m:mn></m:math>&#160;where <m:math><m:mi>k</m:mi><m:mo>=</m:mo><m:mi>n</m:mi><m:mi>m</m:mi><m:mo>/</m:mo><m:mn>2</m:mn></m:math>.</li></ul>
</div><div class="paramtext">This estimator arises from inverting the two sample Mann&#8211;Whitney rank test statistic, <m:math><m:mi>U</m:mi><m:mfenced separators=""><m:msub><m:mi>&#952;</m:mi><m:mn>0</m:mn></m:msub></m:mfenced></m:math>, for testing the hypothesis that <m:math><m:mi>&#952;</m:mi><m:mo>=</m:mo><m:msub><m:mi>&#952;</m:mi><m:mn>0</m:mn></m:msub></m:math>.  Thus <m:math><m:mi>U</m:mi><m:mfenced separators=""><m:msub><m:mi>&#952;</m:mi><m:mn>0</m:mn></m:msub></m:mfenced></m:math>&#160;is the value of the Mann&#8211;Whitney <m:math><m:mi>U</m:mi></m:math>&#160;statistic for the two independent samples <m:math>
 <m:mfenced open="{" close="}" separators="">
  <m:mfenced separators="">
   <m:msub><m:mi>x</m:mi><m:mi>i</m:mi></m:msub>
   <m:mo>+</m:mo>
   <m:msub><m:mi>&#952;</m:mi><m:mn>0</m:mn></m:msub>
  </m:mfenced>
  <m:mtext>, for &#8203;</m:mtext>
  <m:mi>i</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:mi>n</m:mi>
 </m:mfenced>
</m:math>&#160;and <m:math>
 <m:mfenced open="{" close="}" separators="">
  <m:msub><m:mi>y</m:mi><m:mi>j</m:mi></m:msub>
  <m:mtext>, for &#8203;</m:mtext>
  <m:mi>j</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:mi>m</m:mi></m:mfenced>
</m:math>.  Effectively <m:math><m:mi>U</m:mi><m:mfenced separators=""><m:msub><m:mi>&#952;</m:mi><m:mn>0</m:mn></m:msub></m:mfenced></m:math>&#160;is a monotonically increasing step function of <m:math><m:msub><m:mi>&#952;</m:mi><m:mn>0</m:mn></m:msub></m:math>&#160;with

<div class="formula"><table class="formula"><tr><td class="formula"><m:math display="block">
<m:mtable>
 <m:mtr>
  <m:mtd><m:mtext>mean &#8203;</m:mtext><m:mfenced separators=""><m:mi>U</m:mi></m:mfenced><m:mo>=</m:mo><m:mi>&#956;</m:mi><m:mo>=</m:mo><m:mfrac other="display">
  <m:mrow><m:mi>n</m:mi><m:mi>m</m:mi></m:mrow><m:mn>2</m:mn></m:mfrac><m:mtext>,</m:mtext></m:mtd>
 </m:mtr><m:mtr>
  <m:mtd/></m:mtr><m:mtr>
  <m:mtd><m:mrow><m:mi>var</m:mi><m:mfenced separators=""><m:mi>U</m:mi></m:mfenced></m:mrow><m:mo>=</m:mo><m:msup><m:mi>&#963;</m:mi><m:mn>2</m:mn></m:msup><m:mfrac other="display">
  <m:mrow><m:mi>n</m:mi><m:mi>m</m:mi><m:mfenced separators=""><m:mi>n</m:mi><m:mo>+</m:mo><m:mi>m</m:mi><m:mo>+</m:mo><m:mn>1</m:mn></m:mfenced></m:mrow><m:mn>12</m:mn></m:mfrac><m:mtext>.</m:mtext></m:mtd>
 </m:mtr>
</m:mtable>
</m:math></td><td class="formula2"/></tr></table></div>

The estimate <m:math><m:mover><m:mi>&#952;</m:mi><m:mo>^</m:mo></m:mover></m:math>&#160;is the solution to the equation <m:math><m:mi>U</m:mi><m:mfenced separators=""><m:mover><m:mi>&#952;</m:mi><m:mo>^</m:mo></m:mover></m:mfenced><m:mo>=</m:mo><m:mi>&#956;</m:mi></m:math>; two methods are available for solving this equation.  These methods avoid the computation of all the ordered differences <m:math><m:msub><m:mi>d</m:mi><m:mi>k</m:mi></m:msub></m:math>; this is because for large <m:math><m:mi>n</m:mi></m:math>&#160;and <m:math><m:mi>m</m:mi></m:math>&#160;both the storage requirements and the computation time would be high.</div><div class="paramtext">The first is an exact method based on a set partitioning procedure on the set of all differences <m:math><m:msub><m:mi>y</m:mi><m:mi>j</m:mi></m:msub><m:mo>-</m:mo><m:msub><m:mi>x</m:mi><m:mi>i</m:mi></m:msub></m:math>&#160;for <m:math><m:mi>i</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:mi>n</m:mi></m:math>&#160;and <m:math><m:mi>j</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:mi>m</m:mi></m:math>.  This is adapted from the algorithm proposed by <a class="ref" href="#ref500">Monahan (1984)</a> for the computation of the Hodges&#8211;Lehmann estimator for a single population.</div><div class="paramtext">The second is an iterative algorithm, based on the Illinois method which is a modification of the <span class="italic">regula falsi</span> method, see <a class="ref" href="#ref499">McKean and Ryan (1977)</a>.  This algorithm has proved suitable for the function <m:math><m:mi>U</m:mi><m:mfenced separators=""><m:msub><m:mi>&#952;</m:mi><m:mn>0</m:mn></m:msub></m:mfenced></m:math>&#160;which is asymptotically linear as a function of <m:math><m:msub><m:mi>&#952;</m:mi><m:mn>0</m:mn></m:msub></m:math>.</div><div class="paramtext">The confidence interval limits are also based on the inversion of the Mann&#8211;Whitney test statistic.</div><div class="paramtext">Given a desired percentage for the confidence interval, <m:math><m:mn>1</m:mn><m:mo>-</m:mo><m:mi>&#945;</m:mi></m:math>, expressed as a proportion between <m:math><m:mn>0.0</m:mn></m:math>&#160;and <m:math><m:mn>1.0</m:mn></m:math>&#160;initial estimates of the upper and lower confidence limits for the Mann&#8211;Whitney <m:math><m:mi>U</m:mi></m:math>&#160;statistic are found;

<div class="formula"><table class="formula"><tr><td class="formula"><m:math display="block">
<m:mtable>
 <m:mtr>
  <m:mtd><m:msub><m:mi>U</m:mi><m:mi>l</m:mi></m:msub><m:mo>=</m:mo><m:mi>&#956;</m:mi><m:mo>-</m:mo><m:mn>0.5</m:mn><m:mo>+</m:mo><m:mfenced separators=""><m:mi>&#963;</m:mi><m:mo>&#215;</m:mo><m:msup><m:mi>&#934;</m:mi><m:mrow><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow></m:msup><m:mfenced separators=""><m:mi>&#945;</m:mi><m:mo>/</m:mo><m:mn>2</m:mn></m:mfenced></m:mfenced></m:mtd>
 </m:mtr><m:mtr>
  <m:mtd/></m:mtr><m:mtr>
  <m:mtd><m:msub><m:mi>U</m:mi><m:mi>u</m:mi></m:msub><m:mo>=</m:mo><m:mi>&#956;</m:mi><m:mo>+</m:mo><m:mn>0.5</m:mn><m:mo>+</m:mo><m:mfenced separators=""><m:mi>&#963;</m:mi><m:mo>&#215;</m:mo><m:msup><m:mi>&#934;</m:mi><m:mrow><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow></m:msup><m:mfenced separators=""><m:mfenced separators=""><m:mn>1</m:mn><m:mo>-</m:mo><m:mi>&#945;</m:mi></m:mfenced><m:mo>/</m:mo><m:mn>2</m:mn></m:mfenced></m:mfenced></m:mtd>
 </m:mtr>
</m:mtable>
</m:math></td><td class="formula2"/></tr></table></div>

where <m:math><m:msup><m:mi>&#934;</m:mi><m:mrow><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow></m:msup></m:math>&#160;is the inverse cumulative Normal distribution function.</div><div class="paramtext"><m:math><m:msub><m:mi>U</m:mi><m:mi>l</m:mi></m:msub></m:math>&#160;and <m:math><m:msub><m:mi>U</m:mi><m:mi>u</m:mi></m:msub></m:math>&#160;are rounded to the nearest integer values.  These estimates are refined using an exact method, without taking ties into account, if <m:math><m:mi>n</m:mi><m:mo>+</m:mo><m:mi>m</m:mi><m:mo>&#8804;</m:mo><m:mn>40</m:mn></m:math>&#160;and <m:math><m:mrow><m:mi>max</m:mi><m:mspace width="0.125em"/><m:mfenced separators=""><m:mi>n</m:mi><m:mo>,</m:mo><m:mi>m</m:mi></m:mfenced></m:mrow><m:mo>&#8804;</m:mo><m:mn>30</m:mn></m:math>&#160;and a Normal approximation otherwise, to find <m:math><m:msub><m:mi>U</m:mi><m:mi>l</m:mi></m:msub></m:math>&#160;and <m:math><m:msub><m:mi>U</m:mi><m:mi>u</m:mi></m:msub></m:math>&#160;satisfying

<div class="formula"><table class="formula"><tr><td class="formula"><m:math display="block">
<m:mtable columnalign="left">
 <m:mtr>
  <m:mtd><m:mi>P</m:mi><m:mfenced separators=""><m:mi>U</m:mi><m:mo>&#8804;</m:mo><m:msub><m:mi>U</m:mi><m:mi>l</m:mi></m:msub></m:mfenced><m:mo>&#8804;</m:mo><m:mi>&#945;</m:mi><m:mo>/</m:mo><m:mn>2</m:mn></m:mtd>
 </m:mtr><m:mtr>
  <m:mtd><m:mi>P</m:mi><m:mfenced separators=""><m:mi>U</m:mi><m:mo>&#8804;</m:mo><m:msub><m:mi>U</m:mi><m:mi>l</m:mi></m:msub><m:mo>+</m:mo><m:mn>1</m:mn></m:mfenced><m:mo>&gt;</m:mo><m:mi>&#945;</m:mi><m:mo>/</m:mo><m:mn>2</m:mn></m:mtd>
 </m:mtr>
</m:mtable>
</m:math></td><td class="formula2"/></tr></table></div>

and

<div class="formula"><table class="formula"><tr><td class="formula"><m:math display="block">
<m:mtable columnalign="left">
 <m:mtr>
  <m:mtd><m:mi>P</m:mi><m:mfenced separators=""><m:mi>U</m:mi><m:mo>&#8805;</m:mo><m:msub><m:mi>U</m:mi><m:mi>u</m:mi></m:msub></m:mfenced><m:mo>&#8804;</m:mo><m:mi>&#945;</m:mi> <m:mo>/</m:mo><m:mn>2</m:mn></m:mtd>
 </m:mtr><m:mtr>
  <m:mtd><m:mi>P</m:mi><m:mfenced separators=""><m:mi>U</m:mi><m:mo>&#8805;</m:mo><m:msub><m:mi>U</m:mi><m:mi>u</m:mi></m:msub><m:mo>-</m:mo> <m:mn>1</m:mn></m:mfenced><m:mo>&gt;</m:mo><m:mi>&#945;</m:mi> <m:mo>/</m:mo><m:mn>2</m:mn><m:mtext>.</m:mtext></m:mtd>
 </m:mtr>
</m:mtable>
</m:math></td><td class="formula2"/></tr></table></div>

The function <m:math><m:mi>U</m:mi><m:mfenced separators=""><m:msub><m:mi>&#952;</m:mi><m:mn>0</m:mn></m:msub></m:mfenced></m:math>&#160;is a monotonically increasing step function.  It is the number of times a score in the second sample, <m:math><m:msub><m:mi>y</m:mi><m:mi>j</m:mi></m:msub></m:math>, precedes a score in the first sample, <m:math><m:msub><m:mi>x</m:mi><m:mi>i</m:mi></m:msub><m:mo>+</m:mo><m:mi>&#952;</m:mi></m:math>, where we only count a half if a score in the second sample actually equals a score in the first.</div><div class="paramtext">Let <m:math><m:msub><m:mi>U</m:mi><m:mi>l</m:mi></m:msub><m:mo>=</m:mo><m:mi>k</m:mi></m:math>; then <m:math><m:msub><m:mi>&#952;</m:mi><m:mi>l</m:mi></m:msub><m:mo>=</m:mo><m:msub><m:mi>d</m:mi><m:mrow><m:mi>k</m:mi><m:mo>+</m:mo><m:mn>1</m:mn></m:mrow></m:msub></m:math>.  This is the largest value <m:math><m:msub><m:mi>&#952;</m:mi><m:mi>l</m:mi></m:msub></m:math>&#160;such that <m:math><m:mi>U</m:mi><m:mfenced separators=""><m:msub><m:mi>&#952;</m:mi><m:mi>l</m:mi></m:msub></m:mfenced><m:mo>=</m:mo><m:msub><m:mi>U</m:mi><m:mi>l</m:mi></m:msub></m:math>.</div><div class="paramtext">Let <m:math><m:msub><m:mi>U</m:mi><m:mi>u</m:mi></m:msub><m:mo>=</m:mo><m:mi>n</m:mi><m:mi>m</m:mi><m:mo>-</m:mo><m:mi>k</m:mi></m:math>; then <m:math><m:msub><m:mi>&#952;</m:mi><m:mi>u</m:mi></m:msub><m:mo>=</m:mo><m:msub><m:mi>d</m:mi><m:mrow><m:mi>n</m:mi><m:mi>m</m:mi><m:mo>-</m:mo><m:mi>k</m:mi></m:mrow></m:msub></m:math>.  This is the smallest value <m:math><m:msub><m:mi>&#952;</m:mi><m:mi>u</m:mi></m:msub></m:math>&#160;such that <m:math><m:mi>U</m:mi><m:mfenced separators=""><m:msub><m:mi>&#952;</m:mi><m:mi>u</m:mi></m:msub></m:mfenced><m:mo>=</m:mo><m:msub><m:mi>U</m:mi><m:mi>u</m:mi></m:msub></m:math>.</div><div class="paramtext">As in the case of <m:math><m:mover><m:mi>&#952;</m:mi><m:mo>^</m:mo></m:mover></m:math>, these equations may be solved using either the exact or iterative methods to find the values <m:math><m:msub><m:mi>&#952;</m:mi><m:mi>l</m:mi></m:msub></m:math>&#160;and <m:math><m:msub><m:mi>&#952;</m:mi><m:mi>u</m:mi></m:msub></m:math>.</div><div class="paramtext">Then <m:math><m:mfenced separators=""><m:msub><m:mi>&#952;</m:mi><m:mi>l</m:mi></m:msub><m:mo>,</m:mo><m:msub><m:mi>&#952;</m:mi><m:mi>u</m:mi></m:msub></m:mfenced></m:math>&#160;is the confidence interval for <m:math><m:mi>&#952;</m:mi></m:math>.  The confidence interval is thus defined by those values of <m:math><m:msub><m:mi>&#952;</m:mi><m:mn>0</m:mn></m:msub></m:math>&#160;such that the null hypothesis, <m:math><m:mi>&#952;</m:mi><m:mo>=</m:mo><m:msub><m:mi>&#952;</m:mi><m:mn>0</m:mn></m:msub></m:math>, is not rejected by the Mann&#8211;Whitney two sample rank test at the <m:math><m:mfenced separators=""><m:mn>100</m:mn><m:mo>&#215;</m:mo><m:mi>&#945;</m:mi></m:mfenced><m:mo>%</m:mo></m:math>&#160;level.</div><h2 class="standard"><a class="sec" name="references" id="references"/>4&#160;&#160;References</h2><div class="paramtext"><a name="ref371" id="ref371"/>Lehmann E L (1975)  <i>Nonparametrics: Statistical Methods Based on Ranks</i> Holden&#8211;Day </div>
<div class="paramtext"><a name="ref499" id="ref499"/>McKean J W and Ryan T A (1977)  Algorithm 516: An algorithm for obtaining confidence intervals and point estimates based on ranks in the two-sample location problem <i>ACM Trans. Math. Software</i> <b>10</b> 183&#8211;185 </div>
<div class="paramtext"><a name="ref500" id="ref500"/>Monahan J F (1984)  Algorithm 616: Fast computation of the Hodges&#8211;Lehman location estimator <i>ACM Trans. Math. Software</i> <b>10</b> 265&#8211;270 </div><h2 class="standard"><a class="sec" name="parameters" id="parameters"/>5&#160;&#160;Parameters</h2>
<dl><dt class="paramhead"><a name="METHOD" id="METHOD"/>1: &#160;&#160;&#8194; METHOD &#8211; CHARACTER*1<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: specifies the method to be used.
<ul class="listind"><li class="listind">If <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#METHOD"><m:mi mathcolor="#EE0000" mathvariant="bold">METHOD</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'E'</m:mtext></m:math>, the exact algorithm is used.</li><li class="listind">If <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#METHOD"><m:mi mathcolor="#EE0000" mathvariant="bold">METHOD</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'A'</m:mtext></m:math>, the iterative algorithm is used.</li></ul>
</div>
<div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#METHOD"><m:mi mathcolor="#EE0000" mathvariant="bold">METHOD</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'E'</m:mtext></m:math>&#160;or <m:math><m:mtext>'A'</m:mtext></m:math>.
</div>
</dd><dt class="paramhead"><a name="N" id="N"/>2: &#160;&#160;&#8194; N &#8211; INTEGER<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: 

<m:math><m:mi>n</m:mi></m:math>, the size of the first sample.</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>&#8805;</m:mo><m:mn>1</m:mn></m:math>.
</div></dd><dt class="paramhead"><a name="X" id="X"/>3: &#160;&#160;&#8194; X(<a class="arg" href="#N">N</a>) &#8211; <span class="bitalic">double precision</span> array<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: the observations of the first sample, <m:math><m:msub><m:mi>x</m:mi><m:mi>i</m:mi></m:msub></m:math>&#160;for <m:math><m:mi>i</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:mi>n</m:mi></m:math>.</div></dd><dt class="paramhead"><a name="M" id="M"/>4: &#160;&#160;&#8194; M &#8211; INTEGER<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: 

<m:math><m:mi>m</m:mi></m:math>, the size of the second sample.</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>&#8805;</m:mo><m:mn>1</m:mn></m:math>.
</div></dd><dt class="paramhead"><a name="Y" id="Y"/>5: &#160;&#160;&#8194; Y(<a class="arg" href="#M">M</a>) &#8211; <span class="bitalic">double precision</span> array<span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: the observations of the second sample, <m:math><m:msub><m:mi>y</m:mi><m:mi>j</m:mi></m:msub></m:math>&#160;for <m:math><m:mi>j</m:mi><m:mo>=</m:mo><m:mn>1</m:mn><m:mo>,</m:mo><m:mn>2</m:mn><m:mo>,</m:mo><m:mo>&#8230;</m:mo><m:mo>,</m:mo><m:mi>m</m:mi></m:math>.</div></dd><dt class="paramhead"><a name="CLEVEL" id="CLEVEL"/>6: &#160;&#160;&#8194; CLEVEL &#8211; <span class="bitalic">double precision</span><span class="pclass">Input</span></dt><dd><div class="paramtext"><i>On entry</i>: the confidence interval required, <m:math><m:mn>1</m:mn><m:mo>-</m:mo><m:mi>&#945;</m:mi></m:math>; e.g., for a <m:math><m:mn>95</m:mn><m:mo>%</m:mo></m:math>&#160;confidence interval set <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#CLEVEL"><m:mi mathcolor="#EE0000" mathvariant="bold">CLEVEL</m:mi></m:maction><m:mo>=</m:mo><m:mn>0.95</m:mn></m:math>.</div><div class="paramtext"><i>Constraint</i>:
  <m:math><m:mn>0.0</m:mn><m:mo>&lt;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#CLEVEL"><m:mi mathcolor="#EE0000" mathvariant="bold">CLEVEL</m:mi></m:maction><m:mo>&lt;</m:mo><m:mn>1.0</m:mn></m:math>.
</div></dd><dt class="paramhead"><a name="THETA" id="THETA"/>7: &#160;&#160;&#8194; THETA &#8211; <span class="bitalic">double precision</span><span class="pclass">Output</span></dt><dd><div class="paramtext"><i>On exit</i>: the estimate of the difference in the location of the two populations, <m:math><m:mover><m:mi>&#952;</m:mi><m:mo>^</m:mo></m:mover></m:math>.</div></dd><dt class="paramhead"><a name="THETAL" id="THETAL"/>8: &#160;&#160;&#8194; THETAL &#8211; <span class="bitalic">double precision</span><span class="pclass">Output</span></dt><dd>
<div class="paramtext"><i>On exit</i>: the estimate of the lower limit of the confidence interval, <m:math><m:msub><m:mi>&#952;</m:mi><m:mi>l</m:mi></m:msub></m:math>.</div></dd><dt class="paramhead"><a name="THETAU" id="THETAU"/>9: &#160;&#160;&#8194; THETAU &#8211; <span class="bitalic">double precision</span><span class="pclass">Output</span></dt><dd>
<div class="paramtext"><i>On exit</i>: the estimate of the upper limit of the confidence interval, <m:math><m:msub><m:mi>&#952;</m:mi><m:mi>u</m:mi></m:msub></m:math>.</div></dd><dt class="paramhead"><a name="ESTCL" id="ESTCL"/>10: &#8194; ESTCL &#8211; <span class="bitalic">double precision</span><span class="pclass">Output</span></dt><dd>
<div class="paramtext"><i>On exit</i>: an estimate of the actual percentage confidence of the interval found, as a proportion between <m:math><m:mfenced separators=""><m:mn>0.0</m:mn><m:mo>,</m:mo><m:mn>1.0</m:mn></m:mfenced></m:math>.</div></dd><dt class="paramhead"><a name="ULOWER" id="ULOWER"/>11: &#8194; ULOWER &#8211; <span class="bitalic">double precision</span><span class="pclass">Output</span></dt><dd><div class="paramtext"><i>On exit</i>: the value of the Mann&#8211;Whitney <m:math><m:mi>U</m:mi></m:math>&#160;statistic corresponding to the lower confidence limit, <m:math><m:msub><m:mi>U</m:mi><m:mi>l</m:mi></m:msub></m:math>.</div></dd><dt class="paramhead"><a name="UUPPER" id="UUPPER"/>12: &#8194; UUPPER &#8211; <span class="bitalic">double precision</span><span class="pclass">Output</span></dt><dd><div class="paramtext"><i>On exit</i>: the value of the Mann&#8211;Whitney <m:math><m:mi>U</m:mi></m:math>&#160;statistic corresponding to the upper confidence limit, <m:math><m:msub><m:mi>U</m:mi><m:mi>u</m:mi></m:msub></m:math>.</div></dd><dt class="paramhead"><a name="WRK" id="WRK"/>13: &#8194; WRK(<m:math><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>+</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:mfenced></m:math>) &#8211; <span class="bitalic">double precision</span> array<span class="pclass">Workspace</span></dt><dt class="paramhead"><a name="IWRK" id="IWRK"/>14: &#8194; IWRK(<m:math><m:mn>3</m:mn><m:mo>&#215;</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction></m:math>) &#8211; INTEGER array<span class="pclass">Workspace</span></dt><dt class="paramhead"><a name="IFAIL" id="IFAIL"/>15: &#8194; IFAIL &#8211; INTEGER<span class="pclass">Input/Output</span></dt><dd>
<div class="paramtext"><i>On entry</i>: <a class="arg" href="#IFAIL">IFAIL</a> must be set to <m:math><m:mn>0</m:mn></m:math>, <m:math><m:mrow><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow><m:mtext>&#8203; or &#8203;</m:mtext><m:mn>1</m:mn></m:math>. If you are unfamiliar with this parameter you should refer to <a class="sec" href="../GENINT/essint.xml#library3">Section 3.3</a> in  the Essential Introduction for details.</div>
<div class="paramtext"><i>On exit</i>: <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#IFAIL"><m:mi mathcolor="#EE0000" mathvariant="bold">IFAIL</m:mi></m:maction><m:mo>=</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#errors"><m:mn mathcolor="#003399" mathvariant="bold">0</m:mn></m:maction></m:math>&#160;unless the routine detects an error (see <a class="sec" href="#errors">Section 6</a>). <div class="paramtext">For environments where it might be inappropriate to halt program execution when an error is detected, the value <m:math><m:mrow><m:mo>-</m:mo><m:mn>1</m:mn></m:mrow><m:mtext>&#8203; or &#8203;</m:mtext><m:mn>1</m:mn></m:math>&#160;is recommended.  If the output of error messages is undesirable, then the value <m:math><m:mn>1</m:mn></m:math>&#160;is recommended.  Otherwise, if you are not familiar with this parameter, the recommended value is <m:math><m:mn>0</m:mn></m:math>.  <b>When the value <m:math><m:mrow><m:mo>-</m:mo><m:mn mathvariant="bold">1</m:mn></m:mrow><m:mtext>&#8203; or &#8203;</m:mtext><m:mn mathvariant="bold">1</m:mn></m:math>&#160;is used it is essential to test the value of <a class="arg" href="#IFAIL">IFAIL</a> on exit.</b></div></div></dd></dl><h2 class="standard"><a class="sec" name="errors" id="errors"/>6&#160;&#160;Error Indicators and Warnings</h2>
<div class="paramtext">If on entry <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#IFAIL"><m:mi mathcolor="#EE0000" mathvariant="bold">IFAIL</m:mi></m:maction><m:mo>=</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#errors"><m:mn mathcolor="#003399" mathvariant="bold">0</m:mn></m:maction></m:math>&#160;or <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#errors"><m:mn mathcolor="#003399" mathvariant="bold">-1</m:mn></m:maction></m:math>, explanatory error messages are output on the current error message unit (as defined by <a class="rout" href="../X04/x04aaf.xml">X04AAF</a>).</div><div class="paramtext">Errors or warnings detected by the routine:</div>
<dl class="ifail">
<dt class="errorhead"><a name="IFeq1" id="IFeq1"/><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#IFAIL"><m:mi mathcolor="#EE0000" mathvariant="bold">IFAIL</m:mi></m:maction><m:mo>=</m:mo><m:mn>1</m:mn></m:math></dt>
<dd>
<table class="ifail"><tr><td class="ifail1">On&#160;entry,</td><td class="ifail2-90"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#METHOD"><m:mi mathcolor="#EE0000" mathvariant="bold">METHOD</m:mi></m:maction><m:mo>&#8800;</m:mo><m:mtext>'E'</m:mtext></m:math>&#160;or <m:math><m:mtext>'A'</m:mtext></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#N"><m:mi mathcolor="#EE0000" mathvariant="bold">N</m:mi></m:maction><m:mo>&lt;</m:mo><m:mn>1</m:mn></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#M"><m:mi mathcolor="#EE0000" mathvariant="bold">M</m:mi></m:maction><m:mo>&lt;</m:mo><m:mn>1</m:mn></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#CLEVEL"><m:mi mathcolor="#EE0000" mathvariant="bold">CLEVEL</m:mi></m:maction><m:mo>&#8804;</m:mo><m:mn>0.0</m:mn></m:math>,</td></tr><tr><td class="ifail1">or</td><td class="ifail2-90"><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#CLEVEL"><m:mi mathcolor="#EE0000" mathvariant="bold">CLEVEL</m:mi></m:maction><m:mo>&#8805;</m:mo><m:mn>1.0</m:mn></m:math>.</td></tr></table>
</dd>
</dl><dl class="ifail">
<dt class="errorhead"><a name="IFeq2" id="IFeq2"/><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#IFAIL"><m:mi mathcolor="#EE0000" mathvariant="bold">IFAIL</m:mi></m:maction><m:mo>=</m:mo><m:mn>2</m:mn></m:math></dt>
<dd>
<div class="paramtext">Each sample consists of identical values.  All estimates are set to the common difference between the samples.</div>
</dd>
</dl><dl class="ifail">
<dt class="errorhead"><a name="IFeq3" id="IFeq3"/><m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#IFAIL"><m:mi mathcolor="#EE0000" mathvariant="bold">IFAIL</m:mi></m:maction><m:mo>=</m:mo><m:mn>3</m:mn></m:math></dt>
<dd>
<div class="paramtext">For at least one of the estimates <m:math><m:mover><m:mi>&#952;</m:mi><m:mo>^</m:mo></m:mover></m:math>, <m:math><m:msub><m:mi>&#952;</m:mi><m:mi>l</m:mi></m:msub></m:math>&#160;and <m:math><m:msub><m:mi>&#952;</m:mi><m:mi>u</m:mi></m:msub></m:math>, the underlying iterative algorithm (when <m:math><m:maction actiontype="link" dsi:type="simple" dsi:href="#METHOD"><m:mi mathcolor="#EE0000" mathvariant="bold">METHOD</m:mi></m:maction><m:mo>=</m:mo><m:mtext>'A'</m:mtext></m:math>) failed to converge. This is an unlikely exit but the estimate should still be a reasonable approximation.</div></dd>
</dl><h2 class="standard"><a class="sec" name="accuracy" id="accuracy"/>7&#160;&#160;Accuracy</h2>
<div class="paramtext">G07EBF should return results accurate to five significant figures in the width of the confidence interval, that is the error for any one of the three estimates should be less than <m:math><m:mn>0.00001</m:mn><m:mo>&#215;</m:mo><m:mfenced separators=""><m:maction actiontype="link" dsi:type="simple" dsi:href="#THETAU"><m:mi mathcolor="#EE0000" mathvariant="bold">THETAU</m:mi></m:maction><m:mo>-</m:mo><m:maction actiontype="link" dsi:type="simple" dsi:href="#THETAL"><m:mi mathcolor="#EE0000" mathvariant="bold">THETAL</m:mi></m:maction></m:mfenced></m:math>.</div><h2 class="standard"><a class="sec" name="fcomments" id="fcomments"/>8&#160;&#160;Further Comments</h2>
<div class="paramtext">The time taken increases with the sample sizes <m:math><m:mi>n</m:mi></m:math>&#160;and <m:math><m:mi>m</m:mi></m:math>.</div><h2 class="standard"><a class="sec" name="example" id="example"/>9&#160;&#160;Example</h2>
<div class="paramtext">The following program calculates a 95% confidence interval for the difference in location between the two populations from which the two samples of sizes <m:math><m:mn>50</m:mn></m:math>&#160;and <m:math><m:mn>100</m:mn></m:math>&#160;are drawn respectively.</div><h3 class="standard"><a class="sec" name="examtext" id="examtext"/>9.1&#160;&#160;Program Text</h3>
<p><a class="verbatimref" href="../../examples/source/g07ebfe.f">Program Text (g07ebfe.f)</a></p><h3 class="standard"><a class="sec" name="examdata" id="examdata"/>9.2&#160;&#160;Program Data</h3>
<p><a class="verbatimref" href="../../examples/data/g07ebfe.d">Program&#160;Data (g07ebfe.d)</a></p><h3 class="standard"><a class="sec" name="examresults" id="examresults"/>9.3&#160;&#160;Program Results</h3>
<p><a class="verbatimref" href="../../examples/baseresults/g07ebfe.r">Program Results (g07ebfe.r)</a></p>
<hr/><div><a class="rout" href="../../pdf/G07/g07ebf.pdf">G07EBF (PDF version)</a></div><div><a class="chap" href="g07conts.xml">G07 Chapter Contents</a></div><div><a class="chapint" href="g07intro.xml">G07 Chapter Introduction</a></div>
<div><a class="htmltoc" href="../FRONTMATTER/manconts.xml">NAG Library Manual</a></div>
<div><hr/><a class="genint" href="../FRONTMATTER/copyright.xml">&#169; The Numerical Algorithms Group Ltd, Oxford, UK. 2009</a></div></body></html>
