Wolfram 语言

时间序列处理

用数据仓存储时间序列

PoissonProcess 的到达时间是独立的并且遵循 ExponentialDistribution. 可以通过按一个模拟指数分布所指定的时间间隔发送信号到 Databin 来模拟 PoissonProcess 的路径.

In[1]:=
Click for copyable input
SeedRandom["11"]; \[Lambda] = 0.5; times = RandomVariate[ExponentialDistribution[\[Lambda]], 30];

创建一个 Databin.

In[2]:=
Click for copyable input
bin = CreateDatabin[]
Out[2]=

使用模拟的时间在各时间间隔内发送 1 到数据仓.

In[3]:=
Click for copyable input
Table[DatabinAdd[bin, <|"arrivals" -> 1|>]; Pause[t], {t, times}];

所记录的带有时间戳的信号.

In[4]:=
Click for copyable input
TimeSeries[bin]
Out[4]=

提取 TimeSeries 对象.

In[5]:=
Click for copyable input
ts1 = TimeSeries[bin]["arrivals"]
Out[5]=

此时间序列是不规则采样的.

In[6]:=
Click for copyable input
RegularlySampledQ[ts1]
Out[6]=

假定 TemporalRegularity,因而 Accumulate 将不用插值方法对时间序列按最小时间增量重新采样.

In[7]:=
Click for copyable input
ts2 = Accumulate[TimeSeries[ts1, TemporalRegularity -> True]]
Out[7]=
In[8]:=
Click for copyable input
DateListStepPlot[ts2, Joined -> False, PlotTheme -> "Detailed"]
Out[8]=

根据信号估计 PoissonProcess 的参数,并与用于模拟时间戳的 ExponentialDistribution 的参数比较.

In[9]:=
Click for copyable input
{FindProcessParameters[ts2, PoissonProcess[\[Mu]]], \[Lambda]}
Out[9]=

相关范例

de en es fr ja ko pt-br ru