Является ли random.expovariate эквивалентным пуассоновскому процессу - PullRequest
5 голосов
/ 21 декабря 2011

Я где-то читал, что функция библиотеки Python random.expovariate создает интервалы, эквивалентные событиям Пуассоновского процесса.
Это действительно так, или я должен наложить какую-то другую функцию на результаты?

Ответы [ 2 ]

7 голосов
/ 21 декабря 2011

При строгом чтении вашего вопроса, да, именно это и делает random.expovariate.

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

Однако есть два других способа, которыми я мог бы представить моделирование пуассоновских процессов

  1. Просто генерировать случайные числа, равномерно распределять и сортировать их.
  2. Генерировать целые числа, которые имеютРаспределение Пуассона (то есть они распределены как число событий в пределах фиксированного интервала в процессе Пуассона).Для этого используйте numpy.random.poisson.

Конечно, все три вещи совершенно разные.Правильный выбор зависит от вашей заявки.

2 голосов
/ 20 декабря 2015

https://stackoverflow.com/a/10250877/1587329 дает хорошее объяснение того, почему это работает (не только в Python), и некоторый код.Короче говоря

имитируют первые 10 событий в пуассоновском процессе со средней скоростью 15 поступлений в секунду, например:

import random
for i in range(1,10):
   print random.expovariate(15)
...