Ответ 1
Во-первых, если вы предполагаете, что частота возникновения событий сама по себе (или вас интересует только ее долгосрочная средняя), вы можете просто оценить ее как:
& lambda; * = N/(t & minus; t 0)
где t - текущее время, t 0 - начало наблюдений, N - количество событий, наблюдаемых с тех пор, как t 0 и & lambda; * - оценка истинная частота & lambda;.
На этом этапе полезно отметить, что приведенная выше формула оценки может быть переформулирована как интеграл:
& lambda; * = интеграл (& delta; event (& tau;) d & tau;)/интеграл (1 d & tau;)
где переменная интегрирования & tau; варьируется от t 0 до t и & delta; event (& tau;) = sum (& delta; (& tau; & plusmn; t i), я = 1.. N) представляет собой сумму N дельта-функции Дирака с одним дельта-пиком в момент времени t i каждого события i.
Конечно, это был бы совершенно бесполезный способ вычисления & lambda; *, но он оказался концептуально полезной формулировкой. В принципе, способ просмотра этой формулы состоит в том, что функция & delta; event (& tau;) измеряет мгновенную скорость, с которой число событий увеличивается во времени & tau;, тогда как второе подынтегральное выражение, которое просто константа 1, измеряет скорость, с которой время увеличивается со временем (что, конечно, составляет одну секунду в секунду).
ОК, но что, если частота & lambda; может со временем измениться, и вы хотите оценить его текущее значение или, по крайней мере, его среднее значение за последний период?
Используя приведенную выше формулу отношения интегралов, мы можем получить такую оценку просто путем взвешивания обоих подынтегральных выражений некоторой взвешивающей функцией w (& tau;), которая смещена в последнее время:
< recent= интеграл (& delta; event (& tau;) w (& tau;) d & tau;)/интеграл (w (& tau;) d & tau;)
Теперь остается только выбрать разумный w (& tau;), чтобы эти интегралы упростили к чему-то легкому вычислению. Как оказалось, если мы выберем экспоненциально убывающую функцию взвешивания вида w (& tau;) = exp (k (& tau; & minus; t)) для некоторой скорости распада k, то интегралы упростят до:
< recent= sum (exp (k (t i & minus; t)), я = 0.. N) k/(1 & minus; exp (k ( t 0 & minus; t)))
В пределе при t 0 → & Минус; & INFIN; (т.е. на практике, когда общее время наблюдения (t & min; t 0) намного больше, чем шкала времени распада веса 1/k), это еще больше упрощает:
< recent= k sum (exp (k (t i & minus; t)), я = 0.. N)
Увы, наивное применение этой формулы все равно потребует, чтобы мы помнили все время события t i. Однако мы можем использовать тот же трюк, что и для вычисления обычных экспоненциально взвешенных средних — учитывая средневзвешенную скорость события & lambda; * recent (t ') в некоторый более ранний момент времени t' и считая, что между t 'и t не произошло никаких новых событий, мы можем вычислить текущее средневзвешенное событие rate & lambda; * recent (t) просто как:
< недавний (t) = exp (k (t '& minus; t)) & lambda; * recent (t')
Кроме того, если мы теперь наблюдаем новое событие, происходящее ровно через время t, средневзвешенная скорость события сразу после события становится:
< recent (t) = k + exp (k (t '& minus; t)) & lambda; * recent (t')
Таким образом, мы получаем очень простое правило: все, что нам нужно сохранить, - это время t last предыдущего наблюдаемого события, а оценочная недавняя скорость события < * last сразу после указанного события. (Мы можем инициализировать их, например, t last= t 0 и & lambda; * last= 0; на самом деле, с & lambda; * last= 0, значение t last не имеет значения, хотя для ненулевой & lambda; * last).
Всякий раз, когда происходит новое событие (в момент времени t new), мы обновляем эти значения как:
& lambda; * last & larr; k + exp (k (t last & minus; t new)) & lambda; * last
t last & larr; т <суб > новыйсуб >
и всякий раз, когда мы хотим узнать последнее среднее значение скорости события в текущее время t, мы просто вычислим его как:
& lambda; * (t) = exp (k (t last & minus; t)) & lambda; * last
Ps. Чтобы исправить исходное смещение к (произвольному) начальному значению t last, мы можем добавить обратно 1/(1 & minus; exp (k (t 0 & minus; t))) поправочный член, который мы упростили ранее, когда мы предположили, что t & gg; т <суб > 0суб > . Для этого просто начинайте с t last= 0 при t = t 0, обновите t last, как указано выше, но вычислите оценочное недавнее событие средняя скорость в момент времени t как:
</sub> corr (t) = exp (k (t last & minus; t)) & lambda; * last/(1 & minus; exp (k (t 0 & minus; t)))
(Здесь t 0 обозначает время, в которое вы начинаете измерять события, а не появление первого события.)
Это позволит устранить начальное смещение к нулю за счет увеличения ранней дисперсии. Здесь примерный график, показывающий эффекты коррекции для k = 0,1 и истинной средней скорости события 2:
Красная линия показывает & l; * (t) без первоначальной коррекции смещения (начиная с & lambda; * (t 0) = 0), тогда как зеленая линия показывает скорректированную смещением оценку & l * суб > коррсуб > (т).
Pps. Как видно из приведенного выше графика, , как вычислено выше, не будет непрерывной функцией времени: он скачет к k всякий раз, когда происходит событие, и экспоненциально убывает к нулю когда события не происходят.
Если вы предпочтете более плавную оценку, вы можете вычислить экспоненциально убывающее среднее значение самого λ:
(t) = интеграл (& lambda; * (& tau;) exp (k 2 (& tau; & minus; t)) d & tau;)/интеграл (exp (k 2 (& tau; & minus; t)) d & tau;)
где & lambda; - экспоненциально убывающая средняя скорость события, рассчитанная выше, k 2 - это скорость затухания для второго среднего, а интегралы превышают & min; & infin; < &тау; & Ле; т.
Этот интеграл можно также вычислить пошаговым правилом обновления, как указано выше:
& lambda; ** last & larr; W (& Delta; t) & lambda; * last + exp (& minus; k 2 & Delta; t) & lambda; ** last
& lambda; * last & larr; k 1 + exp (& minus; k 1 & Delta; t) & lambda; * last
t last & larr; т <суб > новыйсуб >
где k 1 и k 2 - это скорости распада для первой и второй средних, & Delta; t = t new & minus; t last - это прошедшее время между событиями и:
W (& Delta; t) = k 2 (exp (& minus; k 2 & Delta; t) & minus; exp (& minus; k 1 & Delta; t))/(k 1 & minus; k 2)
если k 1 & ne; k 2, или
W (& delta; t) = k & Delta; t exp (& минус; k & Delta; t)
если k 1= k 2= k (последнее выражение, возникающее из первого как предел, когда (k 1 & minus; k 2) → 0).
Чтобы вычислить второе среднее для произвольной точки времени t, используйте ту же формулу:
(t) = W (& Delta; t) & lambda; * last + exp (& minus; k 2 & Delta; t) & lambda; ** последняясуб >
кроме & Delta; t = t & minus; т <суб > последняясуб > .
Как и выше, эту оценку можно также скорректировать смещением, применяя подходящий зависящий от времени масштабный коэффициент:
< </ > corr (t) = & lambda; ** (t)/(1 - S (t & minus; t 0))
где:
S (& Delta; t) = (k 1 exp (& minus; k 2 & Delta; t) & minus; k 2 exp (& minus; k 1 & Delta; t))/(k 1 & minus; k 2)
если k 1 & ne; k 2, или
S (& delta; t) = (1 + k & Delta; t) exp (& минус; k & Delta; t)
если k 1= k 2= k.
В приведенном ниже графике показаны эффекты этого сглаживания. Красные и зеленые линии показывают: * (t) и < l corr(t), как указано выше, тогда как желтая и синяя линии показывают: ** (t) и ** corr (t), рассчитанные с помощью k 1= 0,1 (как указано выше) и k 2= 0,2: