Brian Silverman | 32ed54e | 2018-08-04 23:37:28 -0700 | [diff] [blame^] | 1 | [section:dist_algorithms Distribution Algorithms] |
| 2 | |
| 3 | [h4 Finding the Location and Scale for Normal and similar distributions] |
| 4 | |
| 5 | Two functions aid finding location and scale of random variable z |
| 6 | to give probability p (given a scale or location). |
| 7 | Only applies to distributions like normal, lognormal, extreme value, Cauchy, (and symmetrical triangular), |
| 8 | that have scale and location properties. |
| 9 | |
| 10 | These functions are useful to predict the mean and/or standard deviation that will be needed to meet a specified minimum weight or maximum dose. |
| 11 | |
| 12 | Complement versions are also provided, both with explicit and implicit (default) policy. |
| 13 | |
| 14 | using boost::math::policies::policy; // May be needed by users defining their own policies. |
| 15 | using boost::math::complement; // Will be needed by users who want to use complements. |
| 16 | |
| 17 | [h4 find_location function] |
| 18 | |
| 19 | ``#include <boost/math/distributions/find_location.hpp>`` |
| 20 | |
| 21 | namespace boost{ namespace math{ |
| 22 | |
| 23 | template <class Dist, class ``__Policy``> // explicit error handling policy |
| 24 | typename Dist::value_type find_location( // For example, normal mean. |
| 25 | typename Dist::value_type z, // location of random variable z to give probability, P(X > z) == p. |
| 26 | // For example, a nominal minimum acceptable z, so that p * 100 % are > z |
| 27 | typename Dist::value_type p, // probability value desired at x, say 0.95 for 95% > z. |
| 28 | typename Dist::value_type scale, // scale parameter, for example, normal standard deviation. |
| 29 | const ``__Policy``& pol); |
| 30 | |
| 31 | template <class Dist> // with default policy. |
| 32 | typename Dist::value_type find_location( // For example, normal mean. |
| 33 | typename Dist::value_type z, // location of random variable z to give probability, P(X > z) == p. |
| 34 | // For example, a nominal minimum acceptable z, so that p * 100 % are > z |
| 35 | typename Dist::value_type p, // probability value desired at x, say 0.95 for 95% > z. |
| 36 | typename Dist::value_type scale); // scale parameter, for example, normal standard deviation. |
| 37 | |
| 38 | }} // namespaces |
| 39 | |
| 40 | [h4 find_scale function] |
| 41 | |
| 42 | ``#include <boost/math/distributions/find_scale.hpp>`` |
| 43 | |
| 44 | namespace boost{ namespace math{ |
| 45 | |
| 46 | template <class Dist, class ``__Policy``> |
| 47 | typename Dist::value_type find_scale( // For example, normal mean. |
| 48 | typename Dist::value_type z, // location of random variable z to give probability, P(X > z) == p. |
| 49 | // For example, a nominal minimum acceptable weight z, so that p * 100 % are > z |
| 50 | typename Dist::value_type p, // probability value desired at x, say 0.95 for 95% > z. |
| 51 | typename Dist::value_type location, // location parameter, for example, normal distribution mean. |
| 52 | const ``__Policy``& pol); |
| 53 | |
| 54 | template <class Dist> // with default policy. |
| 55 | typename Dist::value_type find_scale( // For example, normal mean. |
| 56 | typename Dist::value_type z, // location of random variable z to give probability, P(X > z) == p. |
| 57 | // For example, a nominal minimum acceptable z, so that p * 100 % are > z |
| 58 | typename Dist::value_type p, // probability value desired at x, say 0.95 for 95% > z. |
| 59 | typename Dist::value_type location) // location parameter, for example, normal distribution mean. |
| 60 | }} // namespaces |
| 61 | |
| 62 | All argument must be finite, otherwise __domain_error is called. |
| 63 | |
| 64 | Probability arguments must be [0, 1], otherwise __domain_error is called. |
| 65 | |
| 66 | If the choice of arguments would give a negative scale, __domain_error is called, unless the policy is to ignore, when the negative (impossible) value of scale is returned. |
| 67 | |
| 68 | [link math_toolkit.stat_tut.weg.find_eg Find Mean and standard deviation examples] |
| 69 | gives simple examples of use of both find_scale and find_location, and a longer example finding means and standard deviations of normally distributed weights to meet a specification. |
| 70 | |
| 71 | [endsect] [/section:dist_algorithms dist_algorithms] |
| 72 | |
| 73 | [/ dist_algorithms.qbk |
| 74 | Copyright 2007 John Maddock and Paul A. Bristow. |
| 75 | Distributed under the Boost Software License, Version 1.0. |
| 76 | (See accompanying file LICENSE_1_0.txt or copy at |
| 77 | http://www.boost.org/LICENSE_1_0.txt). |
| 78 | ] |