8 8 8 8 8 8 8 8 8 8 8 8 8 8
8
8
|
|
Гамма-распределение - Программирование от RIN.RU
Гамма-распределение
Полезные свойства
Если ~, i=1,2, то ~.
Если ~, i=1,2, то ~.
Генерация случайных чисел
Если 0 < a <1, возьмем три независимых случайных числа r1, r2, r3, равномерно распределенных на отрезке [0,1]. Положим , . Если s1+s2>1, то возьмем вместо r1, r2 другую пару таких же случайных чисел. Так будем поступать до тех пор, пока не получим . В этом случае зададим y, x1 и x2 следующими соотношениями: y=s1/(s1+s2), x1 = -y ln(r3), x2 = -(1-y) ln(r3).
Случайные числа x1 и x2 независимы и распределены как и соответственно.
Для значений параметра, больших единицы, можно дополнить этот метод, воспользовавшись свойством аддитивности.
Вычисление функции распределения и ее квантилей
Легко получить степенные ряды, позволяющие вычислять гамма-распределение (cм. Абрамовиц, Стиган [6.5.29]):
, .
Как обычно, второй ряд - из-за положительности членов - ведет себя с вычислительной точки зрения лучше первого. Но с ростом x скорость сходимости степенного ряда довольно быстро падает. Зато с ростом x растет скорость сходимости цепной дроби (cм. Абрамовиц, Стиган [6.5.31]):
И снова подпоследовательность ее четных подходящих дробей монотонно сходится к нужному значению.
Численные эксперименты показывают, что для x, меньших a, лучше использовать степенной ряд, а для больших - цепную дробь. Оказывается, когда x примерно равняется a, требуется просуммировать около членов ряда, причем с уменьшением x число требуемых членов ряда быстро убывает. Аналогично ведет себя цепная дробь при .
В большинстве статистических пакетов (в частности, в широко распространенных в России пакетах Statistica и SPSS) функция гамма-распределения зависит от двух параметров, которые принято называть форма (shape) и масштаб (scale). Пусть a - параметр формы, b - параметр масштаба; для функции гамма-распределения будем использовать обозначение . Формула для плотности выглядит в этом случае следующим образом:
Внимание: иногда в качестве параметра формы используется .
В приведенных ниже кодах предлагается именно этот вариант, ставший де-факто стандартом в прикладной статистике. По умолчанию параметр масштаба равен 1, этот случай соответствует рассмотренному в "основном" тексте. Приводимые коды следует, естественно, рассматривать лишь как иллюстрацию, хотя и работоспособную во всех статистических задачах, с которым я сталкивался.
Для работы с этими кодами необходимо уметь вычислять гамма-функцию (см. Приложение А и файлы loggamma.h и loggamma.cpp).
1 2
8 8 8
| |
|
|