3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Tables of the power function of the chi2 test.</title>
5 <link rel="stylesheet" href="../../../../math.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="../../../../index.html" title="Math Toolkit 2.11.0">
8 <link rel="up" href="../nccs_eg.html" title="Non Central Chi Squared Example">
9 <link rel="prev" href="../nccs_eg.html" title="Non Central Chi Squared Example">
10 <link rel="next" href="../error_eg.html" title="Error Handling Example">
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
15 <td align="center"><a href="../../../../../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
22 <div class="spirit-nav">
23 <a accesskey="p" href="../nccs_eg.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../nccs_eg.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../error_eg.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
26 <div class="titlepage"><div><div><h5 class="title">
27 <a name="math_toolkit.stat_tut.weg.nccs_eg.nccs_power_eg"></a><a class="link" href="nccs_power_eg.html" title="Tables of the power function of the chi2 test.">Tables
28 of the power function of the chi<sup>2</sup> test.</a>
29 </h5></div></div></div>
31 This example computes a table of the power of the χ<sup>2</sup>
32 test at the 5% significance
33 level, for various degrees of freedom and non-centrality parameters.
34 The table is deliberately the same as Table 6 from "The Non-Central
35 χ<sup>2</sup> and F-Distributions and their applications.", P. B. Patnaik, Biometrika,
36 Vol. 36, No. 1/2 (June 1949), 202-232.
39 First we need some includes to access the non-central chi squared distribution
40 (and some basic std output of course).
42 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">/</span><span class="identifier">non_central_chi_squared</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
43 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">chi_squared</span><span class="special">;</span>
44 <span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">non_central_chi_squared</span><span class="special">;</span>
46 <span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
47 <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">;</span> <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
48 <span class="keyword">using</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">setprecision</span><span class="special">;</span>
50 <span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
51 <span class="special">{</span>
54 Create a table of the power of the χ<sup>2</sup> test at 5% significance level, start
57 <pre class="programlisting"><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"[table\n[[[nu]]"</span><span class="special">;</span>
58 <span class="keyword">for</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">lam</span> <span class="special">=</span> <span class="number">2</span><span class="special">;</span> <span class="identifier">lam</span> <span class="special"><=</span> <span class="number">20</span><span class="special">;</span> <span class="identifier">lam</span> <span class="special">+=</span> <span class="number">2</span><span class="special">)</span>
59 <span class="special">{</span>
60 <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"[[lambda]="</span> <span class="special"><<</span> <span class="identifier">lam</span> <span class="special"><<</span> <span class="string">"]"</span><span class="special">;</span>
61 <span class="special">}</span>
62 <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"]\n"</span><span class="special">;</span>
65 (Note: the enclosing [] brackets are to format as a table in Boost.Quickbook).
68 Enumerate the rows and columns and print the power of the test for each
71 <pre class="programlisting"><span class="keyword">for</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">n</span> <span class="special">=</span> <span class="number">2</span><span class="special">;</span> <span class="identifier">n</span> <span class="special"><=</span> <span class="number">20</span><span class="special">;</span> <span class="special">++</span><span class="identifier">n</span><span class="special">)</span>
72 <span class="special">{</span>
73 <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"[["</span> <span class="special"><<</span> <span class="identifier">n</span> <span class="special"><<</span> <span class="string">"]"</span><span class="special">;</span>
74 <span class="keyword">for</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">lam</span> <span class="special">=</span> <span class="number">2</span><span class="special">;</span> <span class="identifier">lam</span> <span class="special"><=</span> <span class="number">20</span><span class="special">;</span> <span class="identifier">lam</span> <span class="special">+=</span> <span class="number">2</span><span class="special">)</span>
75 <span class="special">{</span>
78 Calculate the χ<sup>2</sup> statistic for a 5% significance:
80 <pre class="programlisting"><span class="keyword">double</span> <span class="identifier">cs</span> <span class="special">=</span> <span class="identifier">quantile</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">chi_squared</span><span class="special">(</span><span class="identifier">n</span><span class="special">),</span> <span class="number">0.05</span><span class="special">));</span>
83 The power of the test is given by the complement of the CDF of the non-central
84 χ<sup>2</sup> distribution:
86 <pre class="programlisting"><span class="keyword">double</span> <span class="identifier">beta</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">complement</span><span class="special">(</span><span class="identifier">non_central_chi_squared</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span> <span class="identifier">lam</span><span class="special">),</span> <span class="identifier">cs</span><span class="special">));</span>
89 Then output the cell value:
91 <pre class="programlisting"> <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"["</span> <span class="special"><<</span> <span class="identifier">setprecision</span><span class="special">(</span><span class="number">3</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">beta</span> <span class="special"><<</span> <span class="string">"]"</span><span class="special">;</span>
92 <span class="special">}</span>
93 <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"]"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
94 <span class="special">}</span>
95 <span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"]"</span> <span class="special"><<</span> <span class="identifier">endl</span><span class="special">;</span>
96 <span class="special">}</span>
99 The output from this program is a table in Boost.Quickbook format as
103 We can interpret this as follows - for example if ν=10 and λ=10 then the
104 power of the test is 0.542 - so we have only a 54% chance of correctly
105 detecting that our null hypothesis is false, and a 46% chance of incurring
106 a type II error (failing to reject the null hypothesis when it is in
109 <div class="informaltable"><table class="table">
1267 See <a href="../../../../../../example/nc_chi_sq_example.cpp" target="_top">nc_chi_sq_example.cpp</a>
1268 for the full C++ source code.
1271 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
1272 <td align="left"></td>
1273 <td align="right"><div class="copyright-footer">Copyright © 2006-2019 Nikhar
1274 Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos,
1275 Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan
1276 Råde, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg,
1277 Daryle Walker and Xiaogang Zhang<p>
1278 Distributed under the Boost Software License, Version 1.0. (See accompanying
1279 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
1284 <div class="spirit-nav">
1285 <a accesskey="p" href="../nccs_eg.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../nccs_eg.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../error_eg.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>