📄 dist_reference.qbk
字号:
[section:dist_ref Statistical Distributions Reference][include distributions/non_members.qbk][section:dists Distributions][include distributions/bernoulli.qbk][include distributions/beta.qbk][include distributions/binomial.qbk][include distributions/cauchy.qbk][include distributions/chi_squared.qbk][include distributions/exponential.qbk][include distributions/extreme_value.qbk][include distributions/fisher.qbk][include distributions/gamma.qbk][include distributions/lognormal.qbk][include distributions/negative_binomial.qbk][include distributions/nc_beta.qbk][include distributions/nc_chi_squared.qbk][include distributions/nc_f.qbk][include distributions/nc_t.qbk][include distributions/normal.qbk][include distributions/pareto.qbk][include distributions/poisson.qbk][include distributions/rayleigh.qbk][include distributions/students_t.qbk][include distributions/triangular.qbk][include distributions/weibull.qbk][include distributions/uniform.qbk][endsect][/section:dists Distributions][include dist_algorithms.qbk][endsect][/section:dist_ref Statistical Distributions and Functions Reference][section:future Extras/Future Directions][h4 Adding Additional Location and Scale Parameters] In some modelling applications we require a distribution with a specific location and scale:often this equates to a specific mean and standard deviation, although for manydistributions the relationship between these properties and the location and scale parameters are non-trivial. See [@http://www.itl.nist.gov/div898/handbook/eda/section3/eda364.htm http://www.itl.nist.gov/div898/handbook/eda/section3/eda364.htm] for moreinformation.The obvious way to handle this is via an adapter template: template <class Dist> class scaled_distribution { scaled_distribution( const Dist dist, typename Dist::value_type location, typename Dist::value_type scale = 0); };Which would then have its own set of overloads for the non-member accessor functions.[h4 An "any_distribution" class]It would be fairly trivial to add a distribution object that virtualisesthe actual type of the distribution, and can therefore hold "any" objectthat conforms to the conceptual requirements of a distribution: template <class RealType> class any_distribution { public: template <class Distribution> any_distribution(const Distribution& d); }; // Get the cdf of the underlying distribution: template <class RealType> RealType cdf(const any_distribution<RealType>& d, RealType x); // etc.... Such a class would facilitate the writing of non-template code that can function with any distribution type. It's not clear yet whether there is acompelling use case though. Possibly tests for goodness of fit might provide such a use case: this needs more investigation.[h4 Higher Level Hypothesis Tests]Higher-level tests roughly corresponding to the[@http://documents.wolfram.com/mathematica/Add-onsLinks/StandardPackages/Statistics/HypothesisTests.html Mathematica Hypothesis Tests]package could be added reasonably easily, for example: template <class InputIterator> typename std::iterator_traits<InputIterator>::value_type test_equal_mean( InputIterator a, InputIterator b, typename std::iterator_traits<InputIterator>::value_type expected_mean);Returns the probability that the data in the sequence [a,b) has the mean/expected_mean/.[h4 Integration With Statistical Accumulators][@http://boost-sandbox.sourceforge.net/libs/accumulators/doc/html/index.htmlEric Niebler's accumulator framework] - also work in progress - provides the meansto calculate various statistical properties from experimental data. There is anopportunity to integrate the statistical tests with this framework at some later date: // Define an accumulator, all required statistics to calculate the test // are calculated automatically: accumulator_set<double, features<tag::test_expected_mean> > acc(expected_mean=4); // Pass our data to the accumulator: acc = std::for_each(mydata.begin(), mydata.end(), acc); // Extract the result: double p = probability(acc);[endsect][/section:future Extras Future Directions][/ dist_reference.qbk Copyright 2006 John Maddock and Paul A. Bristow. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt).]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -