用数据仓存储时间序列
PoissonProcess 的到达时间是独立的并且遵循 ExponentialDistribution. 可以通过按一个模拟指数分布所指定的时间间隔发送信号到 Databin 来模拟 PoissonProcess 的路径.
In[1]:=
SeedRandom["11"];
\[Lambda] = 0.5;
times = RandomVariate[ExponentialDistribution[\[Lambda]], 30];
创建一个 Databin.
In[2]:=
bin = CreateDatabin[]
使用模拟的时间在各时间间隔内发送 1 到数据仓.
In[3]:=
Table[DatabinAdd[bin, <|"arrivals" -> 1|>]; Pause[t], {t, times}];
所记录的带有时间戳的信号.
In[4]:=
TimeSeries[bin]
Out[4]=
提取 TimeSeries 对象.
In[5]:=
ts1 = TimeSeries[bin]["arrivals"]
Out[5]=
此时间序列是不规则采样的.
In[6]:=
RegularlySampledQ[ts1]
Out[6]=
假定 TemporalRegularity,因而 Accumulate 将不用插值方法对时间序列按最小时间增量重新采样.
In[7]:=
ts2 = Accumulate[TimeSeries[ts1, TemporalRegularity -> True]]
Out[7]=
In[8]:=
DateListStepPlot[ts2, Joined -> False, PlotTheme -> "Detailed"]
Out[8]=
根据信号估计 PoissonProcess 的参数,并与用于模拟时间戳的 ExponentialDistribution 的参数比较.
In[9]:=
{FindProcessParameters[ts2, PoissonProcess[\[Mu]]], \[Lambda]}
Out[9]=