Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Beta Distribution

Boost , Math Toolkit 2.5.0 , Distributions

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
#include <boost/math/distributions/beta.hpp>
namespace boost{ namespace math{
 template <class RealType = double,
           class Policy   = policies::policy<> >
class beta_distribution;
// typedef beta_distribution<double> beta;
// Note that this is deliberately NOT provided,
// to avoid a clash with the function name beta.
template <class RealType, class Policy>
class beta_distribution
{
public:
   typedef RealType  value_type;
   typedef Policy    policy_type;
   // Constructor from two shape parameters, alpha & beta:
   beta_distribution(RealType a, RealType b);
   // Parameter accessors:
   RealType alpha() const;
   RealType beta() const;
   // Parameter estimators of alpha or beta from mean and variance.
   static RealType find_alpha(
     RealType mean, // Expected value of mean.
     RealType variance); // Expected value of variance.
   static RealType find_beta(
     RealType mean, // Expected value of mean.
     RealType variance); // Expected value of variance.
   // Parameter estimators from
   // either alpha or beta, and x and probability.
   static RealType find_alpha(
     RealType beta, // from beta.
     RealType x, //  x.
     RealType probability); // cdf
   static RealType find_beta(
     RealType alpha, // alpha.
     RealType x, // probability x.
     RealType probability); // probability cdf.
};
}} // namespaces

Тип класса<beta_distribution>представляет собойбетаФункция распределения вероятностей.

бета-распределениеиспользуется какпредварительное распределениедля биномиальных пропорций вбайесовском анализе.

См. также:бета-распределениеиБайесовская статистика.

Как используется бета-распределение длябайесовского анализа одной модели параметров, обсуждает Джефф Гринависки.

Функция плотности вероятностиPDFдлябета-распределения, определенного на интервале [0,1], задается:

f(x;α,β) = xα - 1(1 - x)β -1/ B(α, β);

где B(α, β) — этобета-функция, реализованная в этой библиотеке какбета. Разделение по бета-функции гарантирует нормализацию pdf до нулевого диапазона к единице.

Следующий график иллюстрирует примеры pdf для различных значений параметров формы. Обратите внимание, что α = β = 2 (синяя линия) имеет куполообразную форму и может быть аппроксимирована симметричным треугольным распределением.

Если α = β = 1, то это __пространстворавномерное распределение, равное единице во всем интервале x = 0 к 1. Если α __space и β __space являются< 1, то pdf имеет U-образную форму. Если α != β то форма асимметрична и может быть аппроксимирована треугольником, вершина которого находится вдали от центра (где x = половина).

Member Functions
Constructor
beta_distribution(RealType alpha, RealType beta);

Построение бета-распределения с параметрами формыальфаибета.

Требуется alpha,beta >0, иначеdomain_errorназывается. Обратите внимание, что технически бета-распределение определено для альфа-, бета- и gt; = 0, но неясно, может ли какая-либо программа на самом деле использовать эту широту или сколько функций, не являющихся членами, может быть полезно определено в этом случае. Поэтому пока мы рассматриваем это как ошибку, если альфа или бета равны нулю.

Например:

beta_distribution<> mybeta(2, 5);

Построено бета-распределение с альфа=2 и бета=5 (показано желтым на графике выше).

Parameter Accessors
RealType alpha() const;

Возвращает параметральфа, из которого было построено это распределение.

RealType beta() const;

Возвращает параметральфа, из которого было построено это распределение.

Например:

beta_distribution<> mybeta(2, 5);
assert(mybeta.alpha() == 2.);  // mybeta.alpha() returns 2
assert(mybeta.beta() == 5.);   // mybeta.beta()  returns 5
Parameter Estimators

Предусмотрены две пары оценок параметров.

Один оценивает либо α __space, либо β __space из предполагаемо известного среднего значения и дисперсии.

Другая пара оценивает либо α __space, либо β __space из cdf и x.

Также можно оценить α __space и β __space из «известного» режима & quantile. Например, калькуляторы предоставляются калькуляторомPooled Prevalence CalculatorиBeta Buster, но это еще не реализовано здесь.

static RealType find_alpha(
  RealType mean, // Expected value of mean.
  RealType variance); // Expected value of variance.

Возвращает уникальное значение α   которое соответствует бета-распределению со среднимсредними дисперсиейдисперсией.

static RealType find_beta(
  RealType mean, // Expected value of mean.
  RealType variance); // Expected value of variance.

Возвращает уникальное значение β   что соответствует бета-распределению со среднимсредними дисперсиейдисперсией.

static RealType find_alpha(
  RealType beta, // from beta.
  RealType x, //  x.
  RealType probability); // probability cdf

Возвращает значение α   что дает:<cdf(beta_distribution<RealType>(alpha,beta),x)==probability>.

static RealType find_beta(
  RealType alpha, // alpha.
  RealType x, // probability x.
  RealType probability); // probability cdf.

Возвращает значение α   что дает:<cdf(beta_distribution<RealType>(alpha,beta),x)==probability>.

Non-member Accessor Functions

Поддерживаются всеобычные функции доступа, не являющиеся членами, которые являются общими для всех распределений:Кумулятивная функция распределения,Функция плотности вероятности,Количественная,Функция опасности,Кумулятивная функция опасности,среднее,медианное,режим,дисперсия,стандартное отклонение,перекос,куртоз,куртоз_избыток,диапазониподдержка.

Формулы для их вычисления приведены в таблице ниже и вWolfram Mathworld.

Applications

Бета-распределение может использоваться для моделирования событий, ограниченных интервалом, определенным минимальным и максимальным значением: поэтому оно используется в системах управления проектами.

Он также широко используется вбайесовском статистическом выводе.

Related distributions

Бета-распределение с α __space и β = 1 следует заравномерным распределением.

Треугольникиспользуется, когда имеется менее точная информация.

биномиальное распределениетесно связано, когда α __space и β __space являются целыми числами.

При целочисленных значениях α __space и β __space распределение B(i, j) является распределением j-й самой высокой из выборки i + j + 1 независимых случайных величин, равномерно распределенных между 0 и 1. Таким образом, кумулятивная вероятность от 0 до x - это вероятность того, что j-е наибольшее значение меньше x. Или это вероятность того, что по меньшей мере i случайных переменных меньше x, вероятность, данная суммированиемБиномиального распределенияс его параметром p, установленным на x.

Accuracy

Это распределение реализуется с использованиембета-функцийбетаинеполных бета-функцийibetaиibetac; пожалуйста, обратитесь к этим функциям для получения информации о точности.

Implementation

В следующей таблицеaиbявляются параметрами α   и βxявляется случайной величиной,pявляется вероятностью иq = 1-p.

Функция

Записки об осуществлении

pdf

f(x;α,β) = xα - 1(1 - x)β -1/ B(α, β)

Реализуется с использованиемibeta_derivative(a, b, x).

cdf

Использование неполной бета-функцииibeta(a, b, x)

cdf

ибетак(a, b, x)

квантиль

Использование обратной неполной бета-функцииibeta_inv(a, b, p)

квантиль от дополнения

ibetac_inv(a, b, q)

означает

<a/(a+b)>

Разница

<a* b/ (a+b)^2*(a+ b+ 1)>

Режим

<(a-1)/ (a +b -2)>

Искажение

<2(b-a) sqrt(a+b+1)/(a+b+2)*sqrt(a *b)>

Избыток куртоза

Куртоз

<kurtosis+ 3>

оценка параметров

альфа

от среднего значения и отклонения

<mean* (((mean* (1 -mean))/ variance)- 1)>

бета

от среднего значения и дисперсии

<(1 -mean)* (((mean *(1-mean)) /variance)-1)>

Функции члена<find_alpha>и<find_beta>

от cdf и вероятности x

илибо<alpha>, либо<beta>

Реализуется с точки зрения обратных неполных бета-функций

ibeta_invaиibeta_invbсоответственно.

<find_alpha>

<ibeta_inva(beta, x, probability)>

<find_beta>

<ibeta_invb(alpha, x, probability)>

References

Бета-дистрибутив Википедии

Исследователь NIST Анализ данных

Wolfram MathWorld


PrevUpHomeNext

Статья Beta Distribution раздела Math Toolkit 2.5.0 Distributions может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Distributions ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:09:57/0.0063819885253906/0