blob: 2c23a12fc75518e4838c67619e9c743689097cab [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>GTest (Apache Commons Math 3.3 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GTest (Apache Commons Math 3.3 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/GTest.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/commons/math3/stat/inference/ChiSquareTest.html" title="class in org.apache.commons.math3.stat.inference"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/commons/math3/stat/inference/KolmogorovSmirnovTest.html" title="class in org.apache.commons.math3.stat.inference"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/commons/math3/stat/inference/GTest.html" target="_top">Frames</a></li>
<li><a href="GTest.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.math3.stat.inference</div>
<h2 title="Class GTest" class="title">Class GTest</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.commons.math3.stat.inference.GTest</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="strong">GTest</span>
extends <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
<div class="block">Implements <a href="http://en.wikipedia.org/wiki/G-test">G Test</a>
statistics.
<p>This is known in statistical genetics as the McDonald-Kreitman test.
The implementation handles both known and unknown distributions.</p>
<p>Two samples tests can be used when the distribution is unknown <i>a priori</i>
but provided by one sample, or when the hypothesis under test is that the two
samples come from the same underlying distribution.</p></div>
<dl><dt><span class="strong">Since:</span></dt>
<dd>3.1</dd>
<dt><span class="strong">Version:</span></dt>
<dd>$Id: GTest.java 1547633 2013-12-03 23:03:06Z tn $</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#GTest()">GTest</a></strong>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#g(double[], long[])">g</a></strong>(double[]&nbsp;expected,
long[]&nbsp;observed)</code>
<div class="block">Computes the <a href="http://en.wikipedia.org/wiki/G-test">G statistic
for Goodness of Fit</a> comparing <code>observed</code> and <code>expected</code>
frequency counts.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#gDataSetsComparison(long[], long[])">gDataSetsComparison</a></strong>(long[]&nbsp;observed1,
long[]&nbsp;observed2)</code>
<div class="block">Computes a G (Log-Likelihood Ratio) two sample test statistic for
independence comparing frequency counts in
<code>observed1</code> and <code>observed2</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#gTest(double[], long[])">gTest</a></strong>(double[]&nbsp;expected,
long[]&nbsp;observed)</code>
<div class="block">Returns the <i>observed significance level</i>, or <a href=
"http://www.cas.lancs.ac.uk/glossary_v1.1/hyptest.html#pvalue"> p-value</a>,
associated with a G-Test for goodness of fit</a> comparing the
<code>observed</code> frequency counts to those in the <code>expected</code> array.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#gTest(double[], long[], double)">gTest</a></strong>(double[]&nbsp;expected,
long[]&nbsp;observed,
double&nbsp;alpha)</code>
<div class="block">Performs a G-Test (Log-Likelihood Ratio Test) for goodness of fit
evaluating the null hypothesis that the observed counts conform to the
frequency distribution described by the expected counts, with
significance level <code>alpha</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#gTestDataSetsComparison(long[], long[])">gTestDataSetsComparison</a></strong>(long[]&nbsp;observed1,
long[]&nbsp;observed2)</code>
<div class="block">Returns the <i>observed significance level</i>, or <a href=
"http://www.cas.lancs.ac.uk/glossary_v1.1/hyptest.html#pvalue">
p-value</a>, associated with a G-Value (Log-Likelihood Ratio) for two
sample test comparing bin frequency counts in <code>observed1</code> and
<code>observed2</code>.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#gTestDataSetsComparison(long[], long[], double)">gTestDataSetsComparison</a></strong>(long[]&nbsp;observed1,
long[]&nbsp;observed2,
double&nbsp;alpha)</code>
<div class="block">Performs a G-Test (Log-Likelihood Ratio Test) comparing two binned
data sets.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#gTestIntrinsic(double[], long[])">gTestIntrinsic</a></strong>(double[]&nbsp;expected,
long[]&nbsp;observed)</code>
<div class="block">Returns the intrinsic (Hardy-Weinberg proportions) p-Value, as described
in p64-69 of McDonald, J.H.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#rootLogLikelihoodRatio(long, long, long, long)">rootLogLikelihoodRatio</a></strong>(long&nbsp;k11,
long&nbsp;k12,
long&nbsp;k21,
long&nbsp;k22)</code>
<div class="block">Calculates the root log-likelihood ratio for 2 state Datasets.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="GTest()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>GTest</h4>
<pre>public&nbsp;GTest()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="g(double[], long[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>g</h4>
<pre>public&nbsp;double&nbsp;g(double[]&nbsp;expected,
long[]&nbsp;observed)
throws <a href="../../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></pre>
<div class="block">Computes the <a href="http://en.wikipedia.org/wiki/G-test">G statistic
for Goodness of Fit</a> comparing <code>observed</code> and <code>expected</code>
frequency counts.
<p>This statistic can be used to perform a G test (Log-Likelihood Ratio
Test) evaluating the null hypothesis that the observed counts follow the
expected distribution.</p>
<p><strong>Preconditions</strong>: <ul>
<li>Expected counts must all be positive. </li>
<li>Observed counts must all be &ge; 0. </li>
<li>The observed and expected arrays must have the same length and their
common length must be at least 2. </li></ul></p>
<p>If any of the preconditions are not met, a
<code>MathIllegalArgumentException</code> is thrown.</p>
<p><strong>Note:</strong>This implementation rescales the
<code>expected</code> array if necessary to ensure that the sum of the
expected and observed counts are equal.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>observed</code> - array of observed frequency counts</dd><dd><code>expected</code> - array of expected frequency counts</dd>
<dt><span class="strong">Returns:</span></dt><dd>G-Test statistic</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>observed</code> has negative entries</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>expected</code> has entries that
are not strictly positive</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if the array lengths do not match or
are less than 2.</dd></dl>
</li>
</ul>
<a name="gTest(double[], long[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gTest</h4>
<pre>public&nbsp;double&nbsp;gTest(double[]&nbsp;expected,
long[]&nbsp;observed)
throws <a href="../../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></pre>
<div class="block">Returns the <i>observed significance level</i>, or <a href=
"http://www.cas.lancs.ac.uk/glossary_v1.1/hyptest.html#pvalue"> p-value</a>,
associated with a G-Test for goodness of fit</a> comparing the
<code>observed</code> frequency counts to those in the <code>expected</code> array.
<p>The number returned is the smallest significance level at which one
can reject the null hypothesis that the observed counts conform to the
frequency distribution described by the expected counts.</p>
<p>The probability returned is the tail probability beyond
<a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#g(double[], long[])"><code>g(expected, observed)</code></a>
in the ChiSquare distribution with degrees of freedom one less than the
common length of <code>expected</code> and <code>observed</code>.</p>
<p> <strong>Preconditions</strong>: <ul>
<li>Expected counts must all be positive. </li>
<li>Observed counts must all be &ge; 0. </li>
<li>The observed and expected arrays must have the
same length and their common length must be at least 2.</li>
</ul></p>
<p>If any of the preconditions are not met, a
<code>MathIllegalArgumentException</code> is thrown.</p>
<p><strong>Note:</strong>This implementation rescales the
<code>expected</code> array if necessary to ensure that the sum of the
expected and observed counts are equal.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>observed</code> - array of observed frequency counts</dd><dd><code>expected</code> - array of expected frequency counts</dd>
<dt><span class="strong">Returns:</span></dt><dd>p-value</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>observed</code> has negative entries</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>expected</code> has entries that
are not strictly positive</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if the array lengths do not match or
are less than 2.</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - if an error occurs computing the
p-value.</dd></dl>
</li>
</ul>
<a name="gTestIntrinsic(double[], long[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gTestIntrinsic</h4>
<pre>public&nbsp;double&nbsp;gTestIntrinsic(double[]&nbsp;expected,
long[]&nbsp;observed)
throws <a href="../../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></pre>
<div class="block">Returns the intrinsic (Hardy-Weinberg proportions) p-Value, as described
in p64-69 of McDonald, J.H. 2009. Handbook of Biological Statistics
(2nd ed.). Sparky House Publishing, Baltimore, Maryland.
<p> The probability returned is the tail probability beyond
<a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#g(double[], long[])"><code>g(expected, observed)</code></a>
in the ChiSquare distribution with degrees of freedom two less than the
common length of <code>expected</code> and <code>observed</code>.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>observed</code> - array of observed frequency counts</dd><dd><code>expected</code> - array of expected frequency counts</dd>
<dt><span class="strong">Returns:</span></dt><dd>p-value</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>observed</code> has negative entries</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - <code>expected</code> has entries that are
not strictly positive</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if the array lengths do not match or
are less than 2.</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - if an error occurs computing the
p-value.</dd></dl>
</li>
</ul>
<a name="gTest(double[], long[], double)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gTest</h4>
<pre>public&nbsp;boolean&nbsp;gTest(double[]&nbsp;expected,
long[]&nbsp;observed,
double&nbsp;alpha)
throws <a href="../../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/OutOfRangeException.html" title="class in org.apache.commons.math3.exception">OutOfRangeException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></pre>
<div class="block">Performs a G-Test (Log-Likelihood Ratio Test) for goodness of fit
evaluating the null hypothesis that the observed counts conform to the
frequency distribution described by the expected counts, with
significance level <code>alpha</code>. Returns true iff the null
hypothesis can be rejected with <code>100 * (1 - alpha)</code> percent confidence.
<p><strong>Example:</strong><br> To test the hypothesis that
<code>observed</code> follows <code>expected</code> at the 99% level,
use </p><p>
<code>gTest(expected, observed, 0.01)</code></p>
<p>Returns true iff <a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#gTest(double[], long[])"><code>gTestGoodnessOfFitPValue(expected, observed)</code></a> < alpha</p>
<p><strong>Preconditions</strong>: <ul>
<li>Expected counts must all be positive. </li>
<li>Observed counts must all be &ge; 0. </li>
<li>The observed and expected arrays must have the same length and their
common length must be at least 2.
<li> <code>0 &lt; alpha &lt; 0.5</code> </li></ul></p>
<p>If any of the preconditions are not met, a
<code>MathIllegalArgumentException</code> is thrown.</p>
<p><strong>Note:</strong>This implementation rescales the
<code>expected</code> array if necessary to ensure that the sum of the
expected and observed counts are equal.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>observed</code> - array of observed frequency counts</dd><dd><code>expected</code> - array of expected frequency counts</dd><dd><code>alpha</code> - significance level of the test</dd>
<dt><span class="strong">Returns:</span></dt><dd>true iff null hypothesis can be rejected with confidence 1 -
alpha</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if <code>observed</code> has negative entries</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>expected</code> has entries that
are not strictly positive</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if the array lengths do not match or
are less than 2.</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - if an error occurs computing the
p-value.</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/OutOfRangeException.html" title="class in org.apache.commons.math3.exception">OutOfRangeException</a></code> - if alpha is not strictly greater than zero
and less than or equal to 0.5</dd></dl>
</li>
</ul>
<a name="gDataSetsComparison(long[], long[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gDataSetsComparison</h4>
<pre>public&nbsp;double&nbsp;gDataSetsComparison(long[]&nbsp;observed1,
long[]&nbsp;observed2)
throws <a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/ZeroException.html" title="class in org.apache.commons.math3.exception">ZeroException</a></pre>
<div class="block"><p>Computes a G (Log-Likelihood Ratio) two sample test statistic for
independence comparing frequency counts in
<code>observed1</code> and <code>observed2</code>. The sums of frequency
counts in the two samples are not required to be the same. The formula
used to compute the test statistic is </p>
<p><code>2 * totalSum * [H(rowSums) + H(colSums) - H(k)]</code></p>
<p> where <code>H</code> is the
<a href="http://en.wikipedia.org/wiki/Entropy_%28information_theory%29">
Shannon Entropy</a> of the random variable formed by viewing the elements
of the argument array as incidence counts; <br/>
<code>k</code> is a matrix with rows <code>[observed1, observed2]</code>; <br/>
<code>rowSums, colSums</code> are the row/col sums of <code>k</code>; <br>
and <code>totalSum</code> is the overall sum of all entries in <code>k</code>.</p>
<p>This statistic can be used to perform a G test evaluating the null
hypothesis that both observed counts are independent </p>
<p> <strong>Preconditions</strong>: <ul>
<li>Observed counts must be non-negative. </li>
<li>Observed counts for a specific bin must not both be zero. </li>
<li>Observed counts for a specific sample must not all be 0. </li>
<li>The arrays <code>observed1</code> and <code>observed2</code> must have
the same length and their common length must be at least 2. </li></ul></p>
<p>If any of the preconditions are not met, a
<code>MathIllegalArgumentException</code> is thrown.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>observed1</code> - array of observed frequency counts of the first data set</dd><dd><code>observed2</code> - array of observed frequency counts of the second data
set</dd>
<dt><span class="strong">Returns:</span></dt><dd>G-Test statistic</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - the the lengths of the arrays do not
match or their common length is less than 2</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if any entry in <code>observed1</code> or
<code>observed2</code> is negative</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/ZeroException.html" title="class in org.apache.commons.math3.exception">ZeroException</a></code> - if either all counts of
<code>observed1</code> or <code>observed2</code> are zero, or if the count
at the same index is zero for both arrays.</dd></dl>
</li>
</ul>
<a name="rootLogLikelihoodRatio(long, long, long, long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>rootLogLikelihoodRatio</h4>
<pre>public&nbsp;double&nbsp;rootLogLikelihoodRatio(long&nbsp;k11,
long&nbsp;k12,
long&nbsp;k21,
long&nbsp;k22)</pre>
<div class="block">Calculates the root log-likelihood ratio for 2 state Datasets. See
<a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#gDataSetsComparison(long[], long[])"><code>gDataSetsComparison(long[], long[] )</code></a>.
<p>Given two events A and B, let k11 be the number of times both events
occur, k12 the incidence of B without A, k21 the count of A without B,
and k22 the number of times neither A nor B occurs. What is returned
by this method is </p>
<p><code>(sgn) sqrt(gValueDataSetsComparison({k11, k12}, {k21, k22})</code></p>
<p>where <code>sgn</code> is -1 if <code>k11 / (k11 + k12) &lt; k21 / (k21 + k22))</code>;<br/>
1 otherwise.</p>
<p>Signed root LLR has two advantages over the basic LLR: a) it is positive
where k11 is bigger than expected, negative where it is lower b) if there is
no difference it is asymptotically normally distributed. This allows one
to talk about "number of standard deviations" which is a more common frame
of reference than the chi^2 distribution.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>k11</code> - number of times the two events occurred together (AB)</dd><dd><code>k12</code> - number of times the second event occurred WITHOUT the
first event (notA,B)</dd><dd><code>k21</code> - number of times the first event occurred WITHOUT the
second event (A, notB)</dd><dd><code>k22</code> - number of times something else occurred (i.e. was neither
of these events (notA, notB)</dd>
<dt><span class="strong">Returns:</span></dt><dd>root log-likelihood ratio</dd></dl>
</li>
</ul>
<a name="gTestDataSetsComparison(long[], long[])">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>gTestDataSetsComparison</h4>
<pre>public&nbsp;double&nbsp;gTestDataSetsComparison(long[]&nbsp;observed1,
long[]&nbsp;observed2)
throws <a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/ZeroException.html" title="class in org.apache.commons.math3.exception">ZeroException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></pre>
<div class="block"><p>Returns the <i>observed significance level</i>, or <a href=
"http://www.cas.lancs.ac.uk/glossary_v1.1/hyptest.html#pvalue">
p-value</a>, associated with a G-Value (Log-Likelihood Ratio) for two
sample test comparing bin frequency counts in <code>observed1</code> and
<code>observed2</code>.</p>
<p>The number returned is the smallest significance level at which one
can reject the null hypothesis that the observed counts conform to the
same distribution. </p>
<p>See <a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#gTest(double[], long[])"><code>gTest(double[], long[])</code></a> for details
on how the p-value is computed. The degrees of of freedom used to
perform the test is one less than the common length of the input observed
count arrays.</p>
<p><strong>Preconditions</strong>:
<ul> <li>Observed counts must be non-negative. </li>
<li>Observed counts for a specific bin must not both be zero. </li>
<li>Observed counts for a specific sample must not all be 0. </li>
<li>The arrays <code>observed1</code> and <code>observed2</code> must
have the same length and their common length must be at least 2. </li>
</ul><p>
<p> If any of the preconditions are not met, a
<code>MathIllegalArgumentException</code> is thrown.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>observed1</code> - array of observed frequency counts of the first data set</dd><dd><code>observed2</code> - array of observed frequency counts of the second data
set</dd>
<dt><span class="strong">Returns:</span></dt><dd>p-value</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - the the length of the arrays does not
match or their common length is less than 2</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if any of the entries in <code>observed1</code> or
<code>observed2</code> are negative</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/ZeroException.html" title="class in org.apache.commons.math3.exception">ZeroException</a></code> - if either all counts of <code>observed1</code> or
<code>observed2</code> are zero, or if the count at some index is
zero for both arrays</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - if an error occurs computing the
p-value.</dd></dl>
</li>
</ul>
<a name="gTestDataSetsComparison(long[], long[], double)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>gTestDataSetsComparison</h4>
<pre>public&nbsp;boolean&nbsp;gTestDataSetsComparison(long[]&nbsp;observed1,
long[]&nbsp;observed2,
double&nbsp;alpha)
throws <a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/ZeroException.html" title="class in org.apache.commons.math3.exception">ZeroException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/OutOfRangeException.html" title="class in org.apache.commons.math3.exception">OutOfRangeException</a>,
<a href="../../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></pre>
<div class="block"><p>Performs a G-Test (Log-Likelihood Ratio Test) comparing two binned
data sets. The test evaluates the null hypothesis that the two lists
of observed counts conform to the same frequency distribution, with
significance level <code>alpha</code>. Returns true iff the null
hypothesis can be rejected with 100 * (1 - alpha) percent confidence.
</p>
<p>See <a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#gDataSetsComparison(long[], long[])"><code>gDataSetsComparison(long[], long[])</code></a> for details
on the formula used to compute the G (LLR) statistic used in the test and
<a href="../../../../../../org/apache/commons/math3/stat/inference/GTest.html#gTest(double[], long[])"><code>gTest(double[], long[])</code></a> for information on how
the observed significance level is computed. The degrees of of freedom used
to perform the test is one less than the common length of the input observed
count arrays. </p>
<strong>Preconditions</strong>: <ul>
<li>Observed counts must be non-negative. </li>
<li>Observed counts for a specific bin must not both be zero. </li>
<li>Observed counts for a specific sample must not all be 0. </li>
<li>The arrays <code>observed1</code> and <code>observed2</code> must
have the same length and their common length must be at least 2. </li>
<li><code>0 &lt; alpha &lt; 0.5</code> </li></ul></p>
<p>If any of the preconditions are not met, a
<code>MathIllegalArgumentException</code> is thrown.</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>observed1</code> - array of observed frequency counts of the first data set</dd><dd><code>observed2</code> - array of observed frequency counts of the second data
set</dd><dd><code>alpha</code> - significance level of the test</dd>
<dt><span class="strong">Returns:</span></dt><dd>true iff null hypothesis can be rejected with confidence 1 -
alpha</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - the the length of the arrays does not
match</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/NotPositiveException.html" title="class in org.apache.commons.math3.exception">NotPositiveException</a></code> - if any of the entries in <code>observed1</code> or
<code>observed2</code> are negative</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/ZeroException.html" title="class in org.apache.commons.math3.exception">ZeroException</a></code> - if either all counts of <code>observed1</code> or
<code>observed2</code> are zero, or if the count at some index is
zero for both arrays</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/OutOfRangeException.html" title="class in org.apache.commons.math3.exception">OutOfRangeException</a></code> - if <code>alpha</code> is not in the range
(0, 0.5]</dd>
<dd><code><a href="../../../../../../org/apache/commons/math3/exception/MaxCountExceededException.html" title="class in org.apache.commons.math3.exception">MaxCountExceededException</a></code> - if an error occurs performing the test</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/GTest.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/commons/math3/stat/inference/ChiSquareTest.html" title="class in org.apache.commons.math3.stat.inference"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../org/apache/commons/math3/stat/inference/KolmogorovSmirnovTest.html" title="class in org.apache.commons.math3.stat.inference"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/commons/math3/stat/inference/GTest.html" target="_top">Frames</a></li>
<li><a href="GTest.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>