差分変換を活用して時系列データを解析するためには

 2019/09/23    時系列分析    


この記事では、pythonで時系列解析・分析を行っていくうえでの基礎知識として、差分変換を活用して時系列データを解析する方法について説明します。平均・分散、正規分布などの統計学の初歩の知識を前提とした初心者向け入門記事です。
以降、時点\(t\)での時系列の値・確率変数を共に \(yt\) と表しています。

差分変換による解析が有効な時系列データの特徴

平均に関して非定常な系列を定常にし得る手段として、差分変換があります。 この記事では、どのような性質をもつ系列なら差分変換により定常にできるのか、ということを考えます。

単位根

原系列が非定常であり、その差分系列が定常であるような時系列を単位根過程または1次和分過程といいます。 またこれを一般化し、 \(d−1\) 階差分が非定常で、 \(d\) 階差分が定常であるような時系列を \(d\) 次和分過程といいます。 つまり、時系列が和分過程であれば、差分変換によって定常にすることができます。

ランダムウォーク

単位根過程の代表的な例として、ランダムウォークを紹介します。 時系列 \(yt\) が次式で表されるとき、その時系列をランダムウォークといいます。 \(c\) は定数です。
$$
y_t = c + y_{t-1}+\varepsilon_t,~\varepsilon_t\sim N(0, \sigma^2).
$$
ランダムウォークの一階差分をかんがえると、 \(yt−1\) を移項して \(Δyt=yt−yt−1=c+εt \)であり、(定数)+(ホワイトノイズ)の定常な時系列に変換でき、単位根過程であることがわかります。

また、定義からわかるように、ランダムウォークは次々と
\begin{align}
y_t &= c + y_{t-1}+\varepsilon_t\\
&=2c + y_{t-2}+\varepsilon_t + \varepsilon_{t-1}\\
&=\cdots\\
&=ct + y_0 + \sum_{\tau=1}^t \varepsilon_\tau
\end{align}
と書き下すことができ、初期値を \(y0=0\) とすると、(時間に比例するトレンド)+(ホワイトノイズの累積和)であることがわかります。 つまり、単位根過程は時間に比例する(線形な)トレンドを記述することができます。 詳細は割愛しますが、同様にして二次式のトレンドは二階差分で、 \(d\) 次式のトレンドは \(d\) 階差分で取り除くことができます。 \(d−1\) 階差分系列は非定常であり \(d\) 階差分系列が定常になるような時系列を \(d\) 次和分過程 (Integrated Process) とよばれます。

Pythonで累積和を取る方法

こちらの記事で作成したホワイトノイズの累積和を取ることで、ランダムウォーク系列を作成してみましょう。 Pythonでリストの累積和を取るには、numpy.cumsum()を使用します。 出力結果のように、ランダムウォークは明らかに非定常な時系列であることがわかります。 また、挙動が株価などの値動きに似通っていることから、その最も単純なモデルとして使用されることがあります。

randomwalk = np.cumsum(whitenoise)
plt.plot(randomwalk);

まとめ

時系列が和分過程であれば、差分変換によって定常にすることができるということについて解説しました。

こちらの記事もぜひ参考にしてみてください。
時系列分析の単位根過程、ランダムウォークとは?

  • 人気の投稿とページ

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です