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

Skew Normal 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/skew_normal.hpp>
namespace boost{ namespace math{
template <class RealType = double,
          class Policy   = policies::policy<> >
class skew_normal_distribution;
typedef skew_normal_distribution<> normal;
template <class RealType, class Policy>
class skew_normal_distribution
{
public:
   typedef RealType value_type;
   typedef Policy   policy_type;
   // Constructor:
   skew_normal_distribution(RealType location = 0, RealType scale = 1, RealType shape = 0);
   // Accessors:
   RealType location()const; // mean if normal.
   RealType scale()const; // width, standard deviation if normal.
   RealType shape()const; // The distribution is right skewed if shape > 0 and is left skewed if shape < 0.
                          // The distribution is normal if shape is zero.
};
}} // namespaces

Нормальное распределение является вариантом наиболее известного статистического распределения Гаусса.

Нормальное распределение с нулевой формой напоминает Нормальное распределение , следовательно, последнее можно рассматривать как частный случай более общего нормального распределения.

Если стандартная (средняя = 0, шкала = 1) функция плотности вероятности нормального распределения

   

и кумулятивная функция распределения

   

тогда PDF нормального распределения перекоса с параметром формы α определяется О'Хаганом и Леонхардом (1976)

   

При наличии location ξ scale ω и shape α он может быть трансформирован в виде:

   

CDF:

   

где T(h,a) — функция Оуэна T, а Φ(x) — нормальное распределение.

Вариант PDF и CDF с его параметрами проиллюстрирован на следующих графиках:

Member Functions
skew_normal_distribution(RealType location = 0, RealType scale = 1, RealType shape = 0);

Построение skew_normal дистрибутива с местоположением ξ масштабом ω и формой α.

Требуется масштаб > 0, иначе называется domain_error.

RealType location()const;

возвращает местоположение ξ этого распределения,

RealType scale()const;

возвращает шкалу ω этого распределения,

RealType shape()const;

возвращает форму α этого распределения.

(Функция локации и масштабирования соответствует другим аналогичным распределениям, что позволяет использовать функции find_location и find_scale в общем виде).

[Note] Note

В то время как параметр формы может быть выбран произвольно (конечно), результирующая искаженность распределения фактически ограничена примерно (-1, 1); строго, интервал составляет (-0,9952717, 0,9952717).

Параметр δ связан с формой α by δ = α / (1 + α²); и используется в выражении для искажения

References
Non-member Accessors

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

Домен случайной переменной -[max_value], +[min_value]. Бесконечные ценности не поддерживаются.

Не существует выражения в закрытой форме , известного по модусу и медиане, но они вычисляются для

  • режим - путем нахождения максимума PDF.
  • медиана - посредством вычисления quantile(1/2).

Максимум PDF запрашивается путем поиска корня f'(x)=0.

Оба включают итеративные методы, которые будут иметь более низкую точность, чем другие оценки.

Testing

Проект R для статистических вычислений с использованием библиотеки(sn), описанной в Skew-Normal Probability Distribution, и в R skew-normal(sn) package.

Пакет sn предоставляет функции, связанные с распределением вероятностей skew-normal (SN) и skew-t (ST), как для одномерного, так и для многомерного случая, включая модели регрессии.

Wolfram Mathematica также использовалась для получения более точных данных точечных тестов.

Accuracy

Распределение skew_normal с формой = ноль реализовано как частный случай, эквивалентный нормальному распределению с точки зрения функции error, и поэтому должно иметь отличную точность.

PDF и среднее значение, дисперсия, перекос и куртоз также точно оцениваются с использованием аналитических выражений . CDF требует функции Owen's T, которая оценивается с использованием Boost C++. Оуэнс Т реализация алгоритмов М.Пейтфилда и Д.Тэнди, Journal of Statistical Software, 5(5), 1-25 (2000); сложная точность этой функции подробно обсуждается при Оуэнс Т.

Медиана и режим рассчитываются путем итеративного поиска корней, и оба будут менее точными.

Implementation

В следующей таблице: ξ расположение дистрибутива и ω его масштаб и α его форма.

Функция

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

pdf

Использование:

cdf

Использование:
, где T(h,a) является T-функцией Оуэна, а Φ(x) является нормальным распределением.

cdf

Использование: дополнение нормального распределения + 2 * Owens_t

квантиль

Максимум pdf ищется путем поиска корня f'(x)=0

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

-quantile(SN(-location ξ, scale ω, -shapeα), p)

расположение

местоположение и #958;

шкала

масштаб и #969;

форма

форма и #945;

медиана

квантиль (1/2)

означает

режим

Максимум pdf ищется путем поиска корня f'(x)=0

дисперсия

неровность

куртоз

куртоз избыток-3

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


PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 20:08:31/0.0080099105834961/0