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"><</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">></span></pre> 31<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</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<></a> <span class="special">></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"><></span> <span class="identifier">extreme_value</span><span class="special">;</span> 36 37<span class="keyword">template</span> <span class="special"><</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">></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 & 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">></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