データビンを使って時系列を保存する
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]=