К разделу 'Математика' сайта AlgoList.

Домой Оглавление

Предисловие


  Терминология и обозначения


Пусть дана случайная величина X с областью значений RX (иногда ее называют спектром). Здесь рассматриваются лишь два типа спектров:

Когда спектром случайной величины является подмножество действительных чисел, ее называют непрерывной. Если же спектр – подмножество целых чисел, случайная величина дискретна.

Функция распределения F случайной величины X определяется равенством

F(x) = Pr{X < x}, где xbelongsRX, F(x)belongs[0,1].

Легко убедиться в том, что F(x) не убывает. Как правило, функцию распределения непрерывной случайной величины саму называют непрерывной, то же и для дискретной.

Функции распределений всех непрерывных случайных величин, встречающихся в стандартных статистических моделях, непрерывно дифференцируемы. Производная f(x), если она существует, называется плотностью вероятности. Дискретная случайная величина принимает дискретные значения x с вероятностями f(x). Функция f(x) в этом случае называется функцией вероятности, а иногда – функцией массы.

Значение x, для которого F(x) = p, называется p-квантилем (впрочем, для этого термина используется и женский род). Функция G(p), ставящая в соответствие каждому p из [0,1] квантиль x из RX, называется обратной функцией распределения. Обратите внимание на некоторые трудности, возникающие при вычислении квантилей дискретных случайный величин; лично я предпочитаю в подобных случаях самое правое из тех x, для которых F(x) = p. Кроме того, квантили дискретных функций распределения существуют не для всех p, что вызывает известные трудности при построении критериев проверки статистических гипотез.


  Содержание


В этом справочнике рассмотрены наиболее часто встречающиеся одномерные распределения: для каждого приведено определение, а также среднее и дисперсия, если они выражаются через элементарные функции. Во всех сколько-нибудь нетривиальных случаях указывается также способ вычисления самой функции распределения и ее квантилей. Кроме того, приводятся способы генерации (псевдо)случайных чисел, подчиняющихся рассматриваемым распределениям.

В справочнике используется единая терминология, согласованная с глоссарием статистических терминов.

Отдельно следует сказать о приводимых кодах на С++. Прежде всего, эти коды принимает MSVC v.6; я надеюсь, что их без проблем «сглотнут» и другие компиляторы. Реализованные методы вычисления я довольно давно использую в своей статистической практике; во всех задачах, с которыми я сталкивался, они оказались работоспособными. Тем не менее, коды предназначены служить лишь как иллюстрацией того, как можно реализовать вычисления. В «боевой» обстановке следует использовать специальные библиотеки, тщательно спланированные и адекватно тестированные. Приведу здесь лишь две ссылки:

  • библиотека CEPHES специальных математических функций (в том числе, функций распределения). Впервые она описана в книге Stephen L. Moshier, Methods and Programs for Mathematical Functions, Prentice-Hall, 1989; с тех пор вышло довольного ее версий. Библиотека содержит большое количество тщательно проверенных функций на Си, для каждой из которых приводится точность вычислений, оцененная в плавающей арифметике с 144 битами (43 десятичных знака). Библиотека разработана так, чтобы в возможно меньшей степени зависеть от используемого компилятора и/или платформы. Например, числовые константы задаются в виде целых массивов – это позволяет избежать потерь точности при преобразовании констант во время компиляции. Поскольку, однако, адреса в Интернете часто меняются, я помещаю копию библиотеки здесь, хотя она и занимает более 1800 Кб;


  • библиотека DCDFLIB, содержащая функции на Си, которые предназначены для вычисления основных функций распределения и их квантилей. И снова, я помещаю здесь копию библиотеки.

Неисчерпаемым источником идей и методов генерации случайных чисел является глава "Получисленные алгоритмы" из второго тома великой работы Д.Кнута "Искусство программирования для ЭВМ" (D.E.Knuth, The Art of Computer Programming, v.2, ch.3: "Seminumerical Algorithms").

Конечно, имеется достаточно много специализированных библиотек с функциями, генерирующими случайные числа, проверяющими их и т.д. и т.п. Примером может служить библиотека randlib, содержащая генераторы случайных чисел для основных распределений, имеется в двух версиях - на Си и на Фортране. Довольно старомодные коды, которые зато дают довольно хорошие числа. «До кучи» помещаю версию 1.3 этой библиотеку здесь, в пределах досягаемости.


  Источники


Должно быть ясно, что подобный справочник непременно компилятивен. Здесь я с удовольствием перечислю книжки, использованные чаще других.

Н.Хастингс, Дж.Пикок. Справочник по статистическим распределениям. М.: Статистика, 1980.

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

Л.Н.Большев, Н.В.Смирнов. Таблицы математической статистики. Вычислительный центр АН СССР. М. 1968.

Помимо собственно таблиц содержит удивительно много разнообразной информации, изложенной удивительно емко. Классический труд!

М.Абрамовиц, И.Стиган. Справочник по специальным функциям. М.: Наука, 1979.

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

Без всякого удовольствия считаю себя обязанным предостеречь от некритического использования методов, описываемых в широко известной книжке W.H.Press и др. “Numerical Recipes in C”. Все описанные в ней методы, которые я исследовал, оказались плохими или неработоспособными. Скажем, предложенные приемы вычисления цепных дробей неизменно приводили в моих экспериментах к переполнению, либо к результатам, далеко уклоняющимся от верных. Мнение специалистов в других областях см., например, в статье Why not use Numerical Recipes?.

Дата последней модификации: 10 октяб000 г.