Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / math / doc / html / math_toolkit / dist_ref / dists / beta_dist.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Beta Distribution</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="../dists.html" title="Distributions">
9 <link rel="prev" href="bernoulli_dist.html" title="Bernoulli Distribution">
10 <link rel="next" href="binomial_dist.html" title="Binomial Distribution">
11 </head>
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>
20 </tr></table>
21 <hr>
22 <div class="spirit-nav">
23 <a accesskey="p" href="bernoulli_dist.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.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="binomial_dist.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section">
26 <div class="titlepage"><div><div><h4 class="title">
27 <a name="math_toolkit.dist_ref.dists.beta_dist"></a><a class="link" href="beta_dist.html" title="Beta Distribution">Beta Distribution</a>
28 </h4></div></div></div>
29 <pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">beta</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
30 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>
31
32  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span> <span class="special">=</span> <span class="keyword">double</span><span class="special">,</span>
33            <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a>   <span class="special">=</span> <a class="link" href="../../pol_ref/pol_ref_ref.html" title="Policy Class Reference">policies::policy&lt;&gt;</a> <span class="special">&gt;</span>
34 <span class="keyword">class</span> <span class="identifier">beta_distribution</span><span class="special">;</span>
35
36 <span class="comment">// typedef beta_distribution&lt;double&gt; beta;</span>
37 <span class="comment">// Note that this is deliberately NOT provided,</span>
38 <span class="comment">// to avoid a clash with the function name beta.</span>
39
40 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RealType</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
41 <span class="keyword">class</span> <span class="identifier">beta_distribution</span>
42 <span class="special">{</span>
43 <span class="keyword">public</span><span class="special">:</span>
44    <span class="keyword">typedef</span> <span class="identifier">RealType</span>  <span class="identifier">value_type</span><span class="special">;</span>
45    <span class="keyword">typedef</span> <span class="identifier">Policy</span>    <span class="identifier">policy_type</span><span class="special">;</span>
46    <span class="comment">// Constructor from two shape parameters, alpha &amp; beta:</span>
47    <span class="identifier">beta_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">b</span><span class="special">);</span>
48
49    <span class="comment">// Parameter accessors:</span>
50    <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
51    <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
52
53    <span class="comment">// Parameter estimators of alpha or beta from mean and variance.</span>
54    <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_alpha</span><span class="special">(</span>
55      <span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">,</span> <span class="comment">// Expected value of mean.</span>
56      <span class="identifier">RealType</span> <span class="identifier">variance</span><span class="special">);</span> <span class="comment">// Expected value of variance.</span>
57
58    <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_beta</span><span class="special">(</span>
59      <span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">,</span> <span class="comment">// Expected value of mean.</span>
60      <span class="identifier">RealType</span> <span class="identifier">variance</span><span class="special">);</span> <span class="comment">// Expected value of variance.</span>
61
62    <span class="comment">// Parameter estimators from</span>
63    <span class="comment">// either alpha or beta, and x and probability.</span>
64
65    <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_alpha</span><span class="special">(</span>
66      <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">,</span> <span class="comment">// from beta.</span>
67      <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">,</span> <span class="comment">//  x.</span>
68      <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// cdf</span>
69
70    <span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_beta</span><span class="special">(</span>
71      <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="comment">// alpha.</span>
72      <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">,</span> <span class="comment">// probability x.</span>
73      <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// probability cdf.</span>
74 <span class="special">};</span>
75
76 <span class="special">}}</span> <span class="comment">// namespaces</span>
77 </pre>
78 <p>
79           The class type <code class="computeroutput"><span class="identifier">beta_distribution</span></code>
80           represents a <a href="http://en.wikipedia.org/wiki/Beta_distribution" target="_top">beta
81           </a> <a href="http://en.wikipedia.org/wiki/Probability_distribution" target="_top">probability
82           distribution function</a>.
83         </p>
84 <p>
85           The <a href="http://mathworld.wolfram.com/BetaDistribution.htm" target="_top">beta
86           distribution </a> is used as a <a href="http://en.wikipedia.org/wiki/Prior_distribution" target="_top">prior
87           distribution</a> for binomial proportions in <a href="http://mathworld.wolfram.com/BayesianAnalysis.html" target="_top">Bayesian
88           analysis</a>.
89         </p>
90 <p>
91           See also: <a href="http://documents.wolfram.com/calculationcenter/v2/Functions/ListsMatrices/Statistics/BetaDistribution.html" target="_top">beta
92           distribution</a> and <a href="http://en.wikipedia.org/wiki/Bayesian_statistics" target="_top">Bayesian
93           statistics</a>.
94         </p>
95 <p>
96           How the beta distribution is used for <a href="http://home.uchicago.edu/~grynav/bayes/ABSLec5.ppt" target="_top">Bayesian
97           analysis of one parameter models</a> is discussed by Jeff Grynaviski.
98         </p>
99 <p>
100           The <a href="http://en.wikipedia.org/wiki/Probability_density_function" target="_top">probability
101           density function PDF</a> for the <a href="http://en.wikipedia.org/wiki/Beta_distribution" target="_top">beta
102           distribution</a> defined on the interval [0,1] is given by:
103         </p>
104 <div class="blockquote"><blockquote class="blockquote"><p>
105             <span class="serif_italic">f(x;&#945;,&#946;) = x<sup>&#945; - 1</sup> (1 - x)<sup>&#946; -1</sup> / B(&#945;, &#946;)</span>
106           </p></blockquote></div>
107 <p>
108           where <span class="serif_italic">B(&#945;, &#946;)</span> is the <a href="http://en.wikipedia.org/wiki/Beta_function" target="_top">beta
109           function</a>, implemented in this library as <a class="link" href="../../sf_beta/beta_function.html" title="Beta">beta</a>.
110           Division by the beta function ensures that the pdf is normalized to the
111           range zero to unity.
112         </p>
113 <p>
114           The following graph illustrates examples of the pdf for various values
115           of the shape parameters. Note the <span class="emphasis"><em>&#945; = &#946; = 2</em></span> (blue line)
116           is dome-shaped, and might be approximated by a symmetrical triangular distribution.
117         </p>
118 <div class="blockquote"><blockquote class="blockquote"><p>
119             <span class="inlinemediaobject"><img src="../../../../graphs/beta_pdf.svg" align="middle"></span>
120
121           </p></blockquote></div>
122 <p>
123           If &#945; = &#946; = 1, then it is a &#8195;
124 <a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29" target="_top">uniform
125           distribution</a>, equal to unity in the entire interval x = 0 to 1.
126           If &#945; and &#946; are &lt; 1, then the pdf is U-shaped. If &#945; != &#946;, then the shape is
127           asymmetric and could be approximated by a triangle whose apex is away from
128           the centre (where x = half).
129         </p>
130 <h5>
131 <a name="math_toolkit.dist_ref.dists.beta_dist.h0"></a>
132           <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.member_functions"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.member_functions">Member
133           Functions</a>
134         </h5>
135 <h6>
136 <a name="math_toolkit.dist_ref.dists.beta_dist.h1"></a>
137           <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.constructor"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.constructor">Constructor</a>
138         </h6>
139 <pre class="programlisting"><span class="identifier">beta_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">);</span>
140 </pre>
141 <p>
142           Constructs a beta distribution with shape parameters <span class="emphasis"><em>alpha</em></span>
143           and <span class="emphasis"><em>beta</em></span>.
144         </p>
145 <p>
146           Requires alpha,beta &gt; 0,otherwise <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>
147           is called. Note that technically the beta distribution is defined for alpha,beta
148           &gt;= 0, but it's not clear whether any program can actually make use of
149           that latitude or how many of the non-member functions can be usefully defined
150           in that case. Therefore for now, we regard it as an error if alpha or beta
151           is zero.
152         </p>
153 <p>
154           For example:
155         </p>
156 <pre class="programlisting"><span class="identifier">beta_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">mybeta</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">5</span><span class="special">);</span>
157 </pre>
158 <p>
159           Constructs a the beta distribution with alpha=2 and beta=5 (shown in yellow
160           in the graph above).
161         </p>
162 <h6>
163 <a name="math_toolkit.dist_ref.dists.beta_dist.h2"></a>
164           <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.parameter_accessors"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.parameter_accessors">Parameter
165           Accessors</a>
166         </h6>
167 <pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
168 </pre>
169 <p>
170           Returns the parameter <span class="emphasis"><em>alpha</em></span> from which this distribution
171           was constructed.
172         </p>
173 <pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
174 </pre>
175 <p>
176           Returns the parameter <span class="emphasis"><em>beta</em></span> from which this distribution
177           was constructed.
178         </p>
179 <p>
180           So for example:
181         </p>
182 <pre class="programlisting"><span class="identifier">beta_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">mybeta</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">5</span><span class="special">);</span>
183 <span class="identifier">assert</span><span class="special">(</span><span class="identifier">mybeta</span><span class="special">.</span><span class="identifier">alpha</span><span class="special">()</span> <span class="special">==</span> <span class="number">2.</span><span class="special">);</span>  <span class="comment">// mybeta.alpha() returns 2</span>
184 <span class="identifier">assert</span><span class="special">(</span><span class="identifier">mybeta</span><span class="special">.</span><span class="identifier">beta</span><span class="special">()</span> <span class="special">==</span> <span class="number">5.</span><span class="special">);</span>   <span class="comment">// mybeta.beta()  returns 5</span>
185 </pre>
186 <h5>
187 <a name="math_toolkit.dist_ref.dists.beta_dist.h3"></a>
188           <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.parameter_estimators"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.parameter_estimators">Parameter
189           Estimators</a>
190         </h5>
191 <p>
192           Two pairs of parameter estimators are provided.
193         </p>
194 <p>
195           One estimates either &#945;  or &#946; 
196 from presumed-known mean and variance.
197         </p>
198 <p>
199           The other pair estimates either &#945; or &#946; from the cdf and x.
200         </p>
201 <p>
202           It is also possible to estimate &#945; and &#946;  from 'known' mode &amp; quantile. For
203           example, calculators are provided by the <a href="http://www.ausvet.com.au/pprev/content.php?page=PPscript" target="_top">Pooled
204           Prevalence Calculator</a> and <a href="http://www.epi.ucdavis.edu/diagnostictests/betabuster.html" target="_top">Beta
205           Buster</a> but this is not yet implemented here.
206         </p>
207 <pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_alpha</span><span class="special">(</span>
208   <span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">,</span> <span class="comment">// Expected value of mean.</span>
209   <span class="identifier">RealType</span> <span class="identifier">variance</span><span class="special">);</span> <span class="comment">// Expected value of variance.</span>
210 </pre>
211 <p>
212           Returns the unique value of &#945; that corresponds to a beta distribution with
213           mean <span class="emphasis"><em>mean</em></span> and variance <span class="emphasis"><em>variance</em></span>.
214         </p>
215 <pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_beta</span><span class="special">(</span>
216   <span class="identifier">RealType</span> <span class="identifier">mean</span><span class="special">,</span> <span class="comment">// Expected value of mean.</span>
217   <span class="identifier">RealType</span> <span class="identifier">variance</span><span class="special">);</span> <span class="comment">// Expected value of variance.</span>
218 </pre>
219 <p>
220           Returns the unique value of &#946; that corresponds to a beta distribution with
221           mean <span class="emphasis"><em>mean</em></span> and variance <span class="emphasis"><em>variance</em></span>.
222         </p>
223 <pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_alpha</span><span class="special">(</span>
224   <span class="identifier">RealType</span> <span class="identifier">beta</span><span class="special">,</span> <span class="comment">// from beta.</span>
225   <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">,</span> <span class="comment">//  x.</span>
226   <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// probability cdf</span>
227 </pre>
228 <p>
229           Returns the value of &#945; that gives: <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">beta_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(</span><span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">beta</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">probability</span></code>.
230         </p>
231 <pre class="programlisting"><span class="keyword">static</span> <span class="identifier">RealType</span> <span class="identifier">find_beta</span><span class="special">(</span>
232   <span class="identifier">RealType</span> <span class="identifier">alpha</span><span class="special">,</span> <span class="comment">// alpha.</span>
233   <span class="identifier">RealType</span> <span class="identifier">x</span><span class="special">,</span> <span class="comment">// probability x.</span>
234   <span class="identifier">RealType</span> <span class="identifier">probability</span><span class="special">);</span> <span class="comment">// probability cdf.</span>
235 </pre>
236 <p>
237           Returns the value of &#946; that gives: <code class="computeroutput"><span class="identifier">cdf</span><span class="special">(</span><span class="identifier">beta_distribution</span><span class="special">&lt;</span><span class="identifier">RealType</span><span class="special">&gt;(</span><span class="identifier">alpha</span><span class="special">,</span> <span class="identifier">beta</span><span class="special">),</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">probability</span></code>.
238         </p>
239 <h5>
240 <a name="math_toolkit.dist_ref.dists.beta_dist.h4"></a>
241           <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.non_member_accessor_functions"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.non_member_accessor_functions">Non-member
242           Accessor Functions</a>
243         </h5>
244 <p>
245           All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
246           functions</a> that are generic to all distributions are supported:
247           <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
248           <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
249           <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.quantile">Quantile</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.hazard">Hazard Function</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.chf">Cumulative Hazard Function</a>,
250           <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mean">mean</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.median">median</a>,
251           <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.mode">mode</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.variance">variance</a>,
252           <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
253           <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.skewness">skewness</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis">kurtosis</a>, <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.kurtosis_excess">kurtosis_excess</a>,
254           <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.range">range</a> and <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.support">support</a>.
255         </p>
256 <p>
257           The formulae for calculating these are shown in the table below, and at
258           <a href="http://mathworld.wolfram.com/BetaDistribution.html" target="_top">Wolfram
259           Mathworld</a>.
260         </p>
261 <h5>
262 <a name="math_toolkit.dist_ref.dists.beta_dist.h5"></a>
263           <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.applications"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.applications">Applications</a>
264         </h5>
265 <p>
266           The beta distribution can be used to model events constrained to take place
267           within an interval defined by a minimum and maximum value: so it is used
268           in project management systems.
269         </p>
270 <p>
271           It is also widely used in <a href="http://en.wikipedia.org/wiki/Bayesian_inference" target="_top">Bayesian
272           statistical inference</a>.
273         </p>
274 <h5>
275 <a name="math_toolkit.dist_ref.dists.beta_dist.h6"></a>
276           <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.related_distributions"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.related_distributions">Related
277           distributions</a>
278         </h5>
279 <p>
280           The beta distribution with both &#945; and &#946; = 1 follows a <a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29" target="_top">uniform
281           distribution</a>.
282         </p>
283 <p>
284           The <a href="http://en.wikipedia.org/wiki/Triangular_distribution" target="_top">triangular</a>
285           is used when less precise information is available.
286         </p>
287 <p>
288           The <a href="http://en.wikipedia.org/wiki/Binomial_distribution" target="_top">binomial
289           distribution</a> is closely related when &#945; and &#946;  are integers.
290         </p>
291 <p>
292           With integer values of &#945;  and &#946; the distribution B(i, j) is that of the j-th
293           highest of a sample of i + j + 1 independent random variables uniformly
294           distributed between 0 and 1. The cumulative probability from 0 to x is
295           thus the probability that the j-th highest value is less than x. Or it
296           is the probability that at least i of the random variables are less than
297           x, a probability given by summing over the <a class="link" href="binomial_dist.html" title="Binomial Distribution">Binomial
298           Distribution</a> with its p parameter set to x.
299         </p>
300 <h5>
301 <a name="math_toolkit.dist_ref.dists.beta_dist.h7"></a>
302           <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.accuracy"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.accuracy">Accuracy</a>
303         </h5>
304 <p>
305           This distribution is implemented using the <a class="link" href="../../sf_beta/beta_function.html" title="Beta">beta
306           functions</a> <a class="link" href="../../sf_beta/beta_function.html" title="Beta">beta</a>
307           and <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">incomplete beta
308           functions</a> <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>
309           and <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a>;
310           please refer to these functions for information on accuracy.
311         </p>
312 <h5>
313 <a name="math_toolkit.dist_ref.dists.beta_dist.h8"></a>
314           <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.implementation"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.implementation">Implementation</a>
315         </h5>
316 <p>
317           In the following table <span class="emphasis"><em>a</em></span> and <span class="emphasis"><em>b</em></span>
318           are the parameters &#945; and &#946;, <span class="emphasis"><em>x</em></span> is the random variable,
319           <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q = 1-p</em></span>.
320         </p>
321 <div class="informaltable"><table class="table">
322 <colgroup>
323 <col>
324 <col>
325 </colgroup>
326 <thead><tr>
327 <th>
328                   <p>
329                     Function
330                   </p>
331                 </th>
332 <th>
333                   <p>
334                     Implementation Notes
335                   </p>
336                 </th>
337 </tr></thead>
338 <tbody>
339 <tr>
340 <td>
341                   <p>
342                     pdf
343                   </p>
344                 </td>
345 <td>
346                   <p>
347                     <span class="serif_italic">f(x;&#945;,&#946;) = x<sup>&#945; - 1</sup> (1 - x)<sup>&#946; -1</sup> / B(&#945;, &#946;)</span>
348                   </p>
349                   <p>
350                     Implemented using <a class="link" href="../../sf_beta/beta_derivative.html" title="Derivative of the Incomplete Beta Function">ibeta_derivative</a>(a,
351                     b, x).
352                   </p>
353                 </td>
354 </tr>
355 <tr>
356 <td>
357                   <p>
358                     cdf
359                   </p>
360                 </td>
361 <td>
362                   <p>
363                     Using the incomplete beta function <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a>(a,
364                     b, x)
365                   </p>
366                 </td>
367 </tr>
368 <tr>
369 <td>
370                   <p>
371                     cdf complement
372                   </p>
373                 </td>
374 <td>
375                   <p>
376                     <a class="link" href="../../sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a>(a,
377                     b, x)
378                   </p>
379                 </td>
380 </tr>
381 <tr>
382 <td>
383                   <p>
384                     quantile
385                   </p>
386                 </td>
387 <td>
388                   <p>
389                     Using the inverse incomplete beta function <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a>(a,
390                     b, p)
391                   </p>
392                 </td>
393 </tr>
394 <tr>
395 <td>
396                   <p>
397                     quantile from the complement
398                   </p>
399                 </td>
400 <td>
401                   <p>
402                     <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inv</a>(a,
403                     b, q)
404                   </p>
405                 </td>
406 </tr>
407 <tr>
408 <td>
409                   <p>
410                     mean
411                   </p>
412                 </td>
413 <td>
414                   <p>
415                     <code class="computeroutput"><span class="identifier">a</span><span class="special">/(</span><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">)</span></code>
416                   </p>
417                 </td>
418 </tr>
419 <tr>
420 <td>
421                   <p>
422                     variance
423                   </p>
424                 </td>
425 <td>
426                   <p>
427                     <code class="computeroutput"><span class="identifier">a</span> <span class="special">*</span>
428                     <span class="identifier">b</span> <span class="special">/</span>
429                     <span class="special">(</span><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">)^</span><span class="number">2</span> <span class="special">*</span> <span class="special">(</span><span class="identifier">a</span> <span class="special">+</span>
430                     <span class="identifier">b</span> <span class="special">+</span>
431                     <span class="number">1</span><span class="special">)</span></code>
432                   </p>
433                 </td>
434 </tr>
435 <tr>
436 <td>
437                   <p>
438                     mode
439                   </p>
440                 </td>
441 <td>
442                   <p>
443                     <code class="computeroutput"><span class="special">(</span><span class="identifier">a</span><span class="special">-</span><span class="number">1</span><span class="special">)</span> <span class="special">/</span>
444                     <span class="special">(</span><span class="identifier">a</span>
445                     <span class="special">+</span> <span class="identifier">b</span>
446                     <span class="special">-</span> <span class="number">2</span><span class="special">)</span></code>
447                   </p>
448                 </td>
449 </tr>
450 <tr>
451 <td>
452                   <p>
453                     skewness
454                   </p>
455                 </td>
456 <td>
457                   <p>
458                     <code class="computeroutput"><span class="number">2</span> <span class="special">(</span><span class="identifier">b</span><span class="special">-</span><span class="identifier">a</span><span class="special">)</span>
459                     <span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">+</span><span class="number">1</span><span class="special">)/(</span><span class="identifier">a</span><span class="special">+</span><span class="identifier">b</span><span class="special">+</span><span class="number">2</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">sqrt</span><span class="special">(</span><span class="identifier">a</span>
460                     <span class="special">*</span> <span class="identifier">b</span><span class="special">)</span></code>
461                   </p>
462                 </td>
463 </tr>
464 <tr>
465 <td>
466                   <p>
467                     kurtosis excess
468                   </p>
469                 </td>
470 <td>
471                   <div class="blockquote"><blockquote class="blockquote"><p>
472                       <span class="inlinemediaobject"><img src="../../../../equations/beta_dist_kurtosis.svg"></span>
473
474                     </p></blockquote></div>
475                 </td>
476 </tr>
477 <tr>
478 <td>
479                   <p>
480                     kurtosis
481                   </p>
482                 </td>
483 <td>
484                   <p>
485                     <code class="computeroutput"><span class="identifier">kurtosis</span> <span class="special">+</span>
486                     <span class="number">3</span></code>
487                   </p>
488                 </td>
489 </tr>
490 <tr>
491 <td>
492                   <p>
493                     parameter estimation
494                   </p>
495                 </td>
496 <td>
497                 </td>
498 </tr>
499 <tr>
500 <td>
501                   <p>
502                     alpha (from mean and variance)
503                   </p>
504                 </td>
505 <td>
506                   <p>
507                     <code class="computeroutput"><span class="identifier">mean</span> <span class="special">*</span>
508                     <span class="special">((</span> <span class="special">(</span><span class="identifier">mean</span> <span class="special">*</span>
509                     <span class="special">(</span><span class="number">1</span>
510                     <span class="special">-</span> <span class="identifier">mean</span><span class="special">))</span> <span class="special">/</span>
511                     <span class="identifier">variance</span><span class="special">)-</span>
512                     <span class="number">1</span><span class="special">)</span></code>
513                   </p>
514                 </td>
515 </tr>
516 <tr>
517 <td>
518                   <p>
519                     beta (from mean and variance)
520                   </p>
521                 </td>
522 <td>
523                   <p>
524                     <code class="computeroutput"><span class="special">(</span><span class="number">1</span>
525                     <span class="special">-</span> <span class="identifier">mean</span><span class="special">)</span> <span class="special">*</span>
526                     <span class="special">(((</span><span class="identifier">mean</span>
527                     <span class="special">*</span> <span class="special">(</span><span class="number">1</span> <span class="special">-</span> <span class="identifier">mean</span><span class="special">))</span>
528                     <span class="special">/</span><span class="identifier">variance</span><span class="special">)-</span><span class="number">1</span><span class="special">)</span></code>
529                   </p>
530                 </td>
531 </tr>
532 <tr>
533 <td>
534                   <p>
535                     The member functions <code class="computeroutput"><span class="identifier">find_alpha</span></code>
536                     and <code class="computeroutput"><span class="identifier">find_beta</span></code>
537                   </p>
538                   <p>
539                     from cdf and probability x
540                   </p>
541                   <p>
542                     and <span class="bold"><strong>either</strong></span> <code class="computeroutput"><span class="identifier">alpha</span></code>
543                     or <code class="computeroutput"><span class="identifier">beta</span></code>
544                   </p>
545                 </td>
546 <td>
547                   <p>
548                     Implemented in terms of the inverse incomplete beta functions
549                   </p>
550                   <p>
551                     <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inva</a>,
552                     and <a class="link" href="../../sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_invb</a>
553                     respectively.
554                   </p>
555                 </td>
556 </tr>
557 <tr>
558 <td>
559                   <p>
560                     <code class="computeroutput"><span class="identifier">find_alpha</span></code>
561                   </p>
562                 </td>
563 <td>
564                   <p>
565                     <code class="computeroutput"><span class="identifier">ibeta_inva</span><span class="special">(</span><span class="identifier">beta</span><span class="special">,</span>
566                     <span class="identifier">x</span><span class="special">,</span>
567                     <span class="identifier">probability</span><span class="special">)</span></code>
568                   </p>
569                 </td>
570 </tr>
571 <tr>
572 <td>
573                   <p>
574                     <code class="computeroutput"><span class="identifier">find_beta</span></code>
575                   </p>
576                 </td>
577 <td>
578                   <p>
579                     <code class="computeroutput"><span class="identifier">ibeta_invb</span><span class="special">(</span><span class="identifier">alpha</span><span class="special">,</span>
580                     <span class="identifier">x</span><span class="special">,</span>
581                     <span class="identifier">probability</span><span class="special">)</span></code>
582                   </p>
583                 </td>
584 </tr>
585 </tbody>
586 </table></div>
587 <h5>
588 <a name="math_toolkit.dist_ref.dists.beta_dist.h9"></a>
589           <span class="phrase"><a name="math_toolkit.dist_ref.dists.beta_dist.references"></a></span><a class="link" href="beta_dist.html#math_toolkit.dist_ref.dists.beta_dist.references">References</a>
590         </h5>
591 <p>
592           <a href="http://en.wikipedia.org/wiki/Beta_distribution" target="_top">Wikipedia Beta
593           distribution</a>
594         </p>
595 <p>
596           <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda366h.htm" target="_top">NIST
597           Exploratory Data Analysis</a>
598         </p>
599 <p>
600           <a href="http://mathworld.wolfram.com/BetaDistribution.html" target="_top">Wolfram
601           MathWorld</a>
602         </p>
603 </div>
604 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
605 <td align="left"></td>
606 <td align="right"><div class="copyright-footer">Copyright &#169; 2006-2019 Nikhar
607       Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos,
608       Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan
609       R&#229;de, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg,
610       Daryle Walker and Xiaogang Zhang<p>
611         Distributed under the Boost Software License, Version 1.0. (See accompanying
612         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>)
613       </p>
614 </div></td>
615 </tr></table>
616 <hr>
617 <div class="spirit-nav">
618 <a accesskey="p" href="bernoulli_dist.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../dists.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="binomial_dist.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
619 </div>
620 </body>
621 </html>