Использование бинирования данных для хранения временных рядов
Значения времени прибытия в PoissonProcess независимы друг от друга и представляют экспоненциальное распределение, ExponentialDistribution. Мы можем симулировать PoissonProcess с помощью Databin согласно временными интервалам, заданным в экспоненциальном распределении.
SeedRandom["11"];
\[Lambda] = 0.5;
times = RandomVariate[ExponentialDistribution[\[Lambda]], 30];
Создадим бин с данными, Databin.
bin = CreateDatabin[]
Будем отправлять 1 в бин с данными согласно заданным временным интервалам.
Table[DatabinAdd[bin, <|"arrivals" -> 1|>]; Pause[t], {t, times}];
Следующим образом выглядит сигнал с временными штампами.
TimeSeries[bin]
Извлечем временной ряд TimeSeries.
ts1 = TimeSeries[bin]["arrivals"]
Отметим, что данный временной ряд является нерегулярным.
RegularlySampledQ[ts1]
Предположим, что наша выборка данных регулярна, согласно функции TemporalRegularity, для того, чтобы функция Accumulate не осуществляла интерполяцию временного ряда относительно коэффициента минимального увеличения времени.
ts2 = Accumulate[TimeSeries[ts1, TemporalRegularity -> True]]
DateListStepPlot[ts2, Joined -> False, PlotTheme -> "Detailed"]
Рассчитаем параметр PoissonProcess и сравним его с параметром ExponentialDistribution, используемого для симуляции временных штампов.
{FindProcessParameters[ts2, PoissonProcess[\[Mu]]], \[Lambda]}