• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>Extreme Value 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.12.0">
8<link rel="up" href="../dists.html" title="Distributions">
9<link rel="prev" href="exp_dist.html" title="Exponential Distribution">
10<link rel="next" href="f_dist.html" title="F 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="exp_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="f_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.extreme_dist"></a><a class="link" href="extreme_dist.html" title="Extreme Value Distribution">Extreme Value
28        Distribution</a>
29</h4></div></div></div>
30<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">extreme</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
31<pre class="programlisting"><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>
32          <span class="keyword">class</span> <a class="link" href="../../../policy.html" title="Chapter 21. 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>
33<span class="keyword">class</span> <span class="identifier">extreme_value_distribution</span><span class="special">;</span>
34
35<span class="keyword">typedef</span> <span class="identifier">extreme_value_distribution</span><span class="special">&lt;&gt;</span> <span class="identifier">extreme_value</span><span class="special">;</span>
36
37<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 21. Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
38<span class="keyword">class</span> <span class="identifier">extreme_value_distribution</span>
39<span class="special">{</span>
40<span class="keyword">public</span><span class="special">:</span>
41   <span class="keyword">typedef</span> <span class="identifier">RealType</span> <span class="identifier">value_type</span><span class="special">;</span>
42
43   <span class="identifier">extreme_value_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
44
45   <span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
46   <span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
47<span class="special">};</span>
48</pre>
49<p>
50          There are various <a href="http://mathworld.wolfram.com/ExtremeValueDistribution.html" target="_top">extreme
51          value distributions</a> : this implementation represents the maximum
52          case, and is variously known as a Fisher-Tippett distribution, a log-Weibull
53          distribution or a Gumbel distribution.
54        </p>
55<p>
56          Extreme value theory is important for assessing risk for highly unusual
57          events, such as 100-year floods.
58        </p>
59<p>
60          More information can be found on the <a href="http://www.itl.nist.gov/div898/handbook/eda/section3/eda366g.htm" target="_top">NIST</a>,
61          <a href="http://en.wikipedia.org/wiki/Extreme_value_distribution" target="_top">Wikipedia</a>,
62          <a href="http://mathworld.wolfram.com/ExtremeValueDistribution.html" target="_top">Mathworld</a>,
63          and <a href="http://en.wikipedia.org/wiki/Extreme_value_theory" target="_top">Extreme
64          value theory</a> websites.
65        </p>
66<p>
67          The relationship of the types of extreme value distributions, of which
68          this is but one, is discussed by <a href="http://www.worldscibooks.com/mathematics/p191.html" target="_top">Extreme
69          Value Distributions, Theory and Applications Samuel Kotz &amp; Saralees
70          Nadarajah</a>.
71        </p>
72<p>
73          The distribution has a PDF given by:
74        </p>
75<div class="blockquote"><blockquote class="blockquote"><p>
76            <span class="serif_italic">f(x) = (1/scale) e<sup>-(x-location)/scale</sup> e<sup>-e<sup>-(x-location)/scale</sup></sup></span>
77          </p></blockquote></div>
78<p>
79          which in the standard case (scale = 1, location = 0) reduces to:
80        </p>
81<div class="blockquote"><blockquote class="blockquote"><p>
82            <span class="serif_italic">f(x) = e<sup>-x</sup>e<sup>-e<sup>-x</sup></sup></span>
83          </p></blockquote></div>
84<p>
85          The following graph illustrates how the PDF varies with the location parameter:
86        </p>
87<div class="blockquote"><blockquote class="blockquote"><p>
88            <span class="inlinemediaobject"><img src="../../../../graphs/extreme_value_pdf1.svg" align="middle"></span>
89
90          </p></blockquote></div>
91<p>
92          And this graph illustrates how the PDF varies with the shape parameter:
93        </p>
94<div class="blockquote"><blockquote class="blockquote"><p>
95            <span class="inlinemediaobject"><img src="../../../../graphs/extreme_value_pdf2.svg" align="middle"></span>
96
97          </p></blockquote></div>
98<h5>
99<a name="math_toolkit.dist_ref.dists.extreme_dist.h0"></a>
100          <span class="phrase"><a name="math_toolkit.dist_ref.dists.extreme_dist.member_functions"></a></span><a class="link" href="extreme_dist.html#math_toolkit.dist_ref.dists.extreme_dist.member_functions">Member
101          Functions</a>
102        </h5>
103<pre class="programlisting"><span class="identifier">extreme_value_distribution</span><span class="special">(</span><span class="identifier">RealType</span> <span class="identifier">location</span> <span class="special">=</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">RealType</span> <span class="identifier">scale</span> <span class="special">=</span> <span class="number">1</span><span class="special">);</span>
104</pre>
105<p>
106          Constructs an Extreme Value distribution with the specified location and
107          scale parameters.
108        </p>
109<p>
110          Requires <code class="computeroutput"><span class="identifier">scale</span> <span class="special">&gt;</span>
111          <span class="number">0</span></code>, otherwise calls <a class="link" href="../../error_handling.html#math_toolkit.error_handling.domain_error">domain_error</a>.
112        </p>
113<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">location</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
114</pre>
115<p>
116          Returns the location parameter of the distribution.
117        </p>
118<pre class="programlisting"><span class="identifier">RealType</span> <span class="identifier">scale</span><span class="special">()</span><span class="keyword">const</span><span class="special">;</span>
119</pre>
120<p>
121          Returns the scale parameter of the distribution.
122        </p>
123<h5>
124<a name="math_toolkit.dist_ref.dists.extreme_dist.h1"></a>
125          <span class="phrase"><a name="math_toolkit.dist_ref.dists.extreme_dist.non_member_accessors"></a></span><a class="link" href="extreme_dist.html#math_toolkit.dist_ref.dists.extreme_dist.non_member_accessors">Non-member
126          Accessors</a>
127        </h5>
128<p>
129          All the <a class="link" href="../nmp.html" title="Non-Member Properties">usual non-member accessor
130          functions</a> that are generic to all distributions are supported:
131          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.cdf">Cumulative Distribution Function</a>,
132          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.pdf">Probability Density Function</a>,
133          <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>,
134          <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>,
135          <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>,
136          <a class="link" href="../nmp.html#math_toolkit.dist_ref.nmp.sd">standard deviation</a>,
137          <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>,
138          <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>.
139        </p>
140<p>
141          The domain of the random parameter is [-∞, +∞].
142        </p>
143<h5>
144<a name="math_toolkit.dist_ref.dists.extreme_dist.h2"></a>
145          <span class="phrase"><a name="math_toolkit.dist_ref.dists.extreme_dist.accuracy"></a></span><a class="link" href="extreme_dist.html#math_toolkit.dist_ref.dists.extreme_dist.accuracy">Accuracy</a>
146        </h5>
147<p>
148          The extreme value distribution is implemented in terms of the standard
149          library <code class="computeroutput"><span class="identifier">exp</span></code> and <code class="computeroutput"><span class="identifier">log</span></code> functions and as such should have
150          very low error rates.
151        </p>
152<h5>
153<a name="math_toolkit.dist_ref.dists.extreme_dist.h3"></a>
154          <span class="phrase"><a name="math_toolkit.dist_ref.dists.extreme_dist.implementation"></a></span><a class="link" href="extreme_dist.html#math_toolkit.dist_ref.dists.extreme_dist.implementation">Implementation</a>
155        </h5>
156<p>
157          In the following table: <span class="emphasis"><em>a</em></span> is the location parameter,
158          <span class="emphasis"><em>b</em></span> is the scale parameter, <span class="emphasis"><em>x</em></span> is
159          the random variate, <span class="emphasis"><em>p</em></span> is the probability and <span class="emphasis"><em>q
160          = 1-p</em></span>.
161        </p>
162<div class="informaltable"><table class="table">
163<colgroup>
164<col>
165<col>
166</colgroup>
167<thead><tr>
168<th>
169                  <p>
170                    Function
171                  </p>
172                </th>
173<th>
174                  <p>
175                    Implementation Notes
176                  </p>
177                </th>
178</tr></thead>
179<tbody>
180<tr>
181<td>
182                  <p>
183                    pdf
184                  </p>
185                </td>
186<td>
187                  <p>
188                    Using the relation: pdf = exp((a-x)/b) * exp(-exp((a-x)/b)) /
189                    b
190                  </p>
191                </td>
192</tr>
193<tr>
194<td>
195                  <p>
196                    cdf
197                  </p>
198                </td>
199<td>
200                  <p>
201                    Using the relation: p = exp(-exp((a-x)/b))
202                  </p>
203                </td>
204</tr>
205<tr>
206<td>
207                  <p>
208                    cdf complement
209                  </p>
210                </td>
211<td>
212                  <p>
213                    Using the relation: q = -expm1(-exp((a-x)/b))
214                  </p>
215                </td>
216</tr>
217<tr>
218<td>
219                  <p>
220                    quantile
221                  </p>
222                </td>
223<td>
224                  <p>
225                    Using the relation: a - log(-log(p)) * b
226                  </p>
227                </td>
228</tr>
229<tr>
230<td>
231                  <p>
232                    quantile from the complement
233                  </p>
234                </td>
235<td>
236                  <p>
237                    Using the relation: a - log(-log1p(-q)) * b
238                  </p>
239                </td>
240</tr>
241<tr>
242<td>
243                  <p>
244                    mean
245                  </p>
246                </td>
247<td>
248                  <p>
249                    a + <a href="http://en.wikipedia.org/wiki/Euler-Mascheroni_constant" target="_top">Euler-Mascheroni-constant</a>
250                    * b
251                  </p>
252                </td>
253</tr>
254<tr>
255<td>
256                  <p>
257                    standard deviation
258                  </p>
259                </td>
260<td>
261                  <p>
262                    pi * b / sqrt(6)
263                  </p>
264                </td>
265</tr>
266<tr>
267<td>
268                  <p>
269                    mode
270                  </p>
271                </td>
272<td>
273                  <p>
274                    The same as the location parameter <span class="emphasis"><em>a</em></span>.
275                  </p>
276                </td>
277</tr>
278<tr>
279<td>
280                  <p>
281                    skewness
282                  </p>
283                </td>
284<td>
285                  <p>
286                    12 * sqrt(6) * zeta(3) / pi<sup>3</sup>
287                  </p>
288                </td>
289</tr>
290<tr>
291<td>
292                  <p>
293                    kurtosis
294                  </p>
295                </td>
296<td>
297                  <p>
298                    27 / 5
299                  </p>
300                </td>
301</tr>
302<tr>
303<td>
304                  <p>
305                    kurtosis excess
306                  </p>
307                </td>
308<td>
309                  <p>
310                    kurtosis - 3 or 12 / 5
311                  </p>
312                </td>
313</tr>
314</tbody>
315</table></div>
316</div>
317<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
318<td align="left"></td>
319<td align="right"><div class="copyright-footer">Copyright © 2006-2019 Nikhar
320      Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos,
321      Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan
322      Råde, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg,
323      Daryle Walker and Xiaogang Zhang<p>
324        Distributed under the Boost Software License, Version 1.0. (See accompanying
325        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>)
326      </p>
327</div></td>
328</tr></table>
329<hr>
330<div class="spirit-nav">
331<a accesskey="p" href="exp_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="f_dist.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
332</div>
333</body>
334</html>
335