「大人の教養・知識・気付き」を伸ばすブログ

一流の大人(ビジネスマン、政治家、リーダー…)として知っておきたい、教養・社会動向を意外なところから取り上げ学ぶことで“気付く力”を伸ばすブログです。現在、コンサルタントの雛になるべく、少しずつ勉強中です(※2024年12月10日改訂)。

MENU

時系列データ解析(1/X)

1. 時系列

1.1 時系列とは

  • 時系列(データ)とは、「時間とともに変動する現象の記録」(P.2)である。
  • 時系列は、①連続・離散、②単変量・多変量、③定常・非定常*1で分類できる。
  • 時系列解析とは、「時系列(データ)から何らかの知見を得ること」(P.7)である。

      ・記述(description):視覚的に時系列の特徴を表現すること

      ・モデリング(modeling):データの背後にある時系列の確率的構造をモデルで表現し、その構造を解析すること

      ・予測(prediction):現在までの情報から将来の変動を予測すること

1.2 時系列プロット

  • 時系列解析でまず行うべきことは、データを図示すること。
  • これにより、特徴を掴む。

1.3 時系列データの前処理と変動分解

  • 時系列データ\left\{y_1,\cdots,y_n\right\}が、不規則な現象であっても、その構造が時間的に変化せずに一定の確率モデルからの実現値と見なすことができる場合、その時系列を定常時系列という。
  • 「時系列データは、傾向変動(トレンド)、循環変動(サイクル)、季節変動(シーズナル)、不規則変動(ノイズ)の四つの変動に分解することができる。このように分解した変動から非定常部分を除去することで、定常時系列を取り出すことができる。」(P.11)
  • 「状態空間モデルの場合、非定常時系列のままでモデリングや予測が可能となる」(P.11)
1.3.1 時系列データの前処理
  • 「原系列\{y_t\}が非定常系列であっても、ある変換を施した系列\{z_t\}が定常時系列に見えることがある」(P.11)
  • 対数変換:z_t=\log y_t
  • ロジット変換:z_t=\log\left(\displaystyle{\frac{y_t}{1-y_t}}\right)
  • \mathrm{Box}-\mathrm{Cox}変換:z_t=\left\{\begin{array}{ll}\lambda^{-1}\left({y_t}^{\lambda}-1\right) & (\lambda\neq0) \\\log y_t & (\lambda=0)\end{array} \right.
  • 差分:z_t=y_t-y_{t-1}
  • 前期比:z_t=\displaystyle{\frac{y_t}{y_{t-p}}},\ p\in\mathbb{N},p\gt0
1.3.2 時系列データの変動分解
  • y_t=Y_tであるような時系列\{y_t\}は、4つの成分に分解して解析する方法が伝統的にある。

    \begin{aligned}Y_t=T_t+C_t+S_t+I_t\end{aligned}
  • 傾向変動T_t:トレンドともいい、上昇または下降などの比較的単調ないし滑らかな長期的傾向。
  • 循環変動C_t:トレンドのまわりで上下する秋季が定まっていない循環的変動。
  • 季節変動S_t:季節によって左右される、1年を周期として規則的に繰り返される変動*2
  • 不規則変動I_t:上記以外の説明がつかない突発的な変動や不規則活短期間の上下に起こる小変動。
  • 上記の加法モデル以外にも、乗法モデルY_t=T_tC_tS_tI_tがある。また、傾向変動T_t,循環変動C_tを分解する必要が小さければ、これらを組み合わせたトレンド・循環変動TC_tを考えた、Y_t=TC_t+S_t+I_tを考えることもある。
  • データから3成分への分解結果を推定する方法を考える。トレンド・循環変動を除去するには、移動平均法がある:時点tでのTCの値を、k時点前からk時点後までの2k+1個のy_tの値y_{t-k},y_{t-k+1},\cdots,y_{t+k-1},y_{t+k}を用いて、

    \begin{aligned}\hat{TC_t}=\displaystyle{\frac{1}{2k+1}\sum_{j=-k}^{k}y_{t+j}}\end{aligned}

    により推定する。このようにして得られた\left\{\hat{TC_t}\right\}2k+1移動平均という。
  • \left\{\hat{TC_t}\right\}2k移動平均も存在する:

    \begin{aligned}\hat{TC_t}=\displaystyle{\frac{1}{2k}\left(\frac{1}{2}y_{t-k}+\sum_{j=-k}^{k}y_{t+j}+\frac{1}{2}y_{t+k}\right)}\end{aligned}

  • 一般に、m移動平均を用いると、周期をmとする循環成分が除去される。またmを大きくすれば、不規則変動が除去される(ただし、意味のある傾向変動も除去される恐れがある。)。
  • 原系列から移動平均を控除した\left\{w_t=y_t-\hat{TC_t}\right\}は、季節変動と不規則変動を含む。次に、季節変動を除去することを考える。
  • 季節成分は、単位時数ごと(たとえば、月ごと、四半期ごと)に平均を取り、それぞれから全体の平均を除去したものを季節変動成分\hat{S}_tとする:たとえば、月ごとの季節成分を考え、n年分のデータを基にjm月のデータを考えれば、

    \begin{aligned}\hat{S}_t&=\left\{\begin{array}{ll}\bar{\tilde{w}}^{(1)}-\bar{w},\ &\left(t-\displaystyle{\lfloor\frac{t}{12}\rfloor}\times12=t\mod12=1\right),\\\vdots\\\bar{\tilde{w}}^{(12)}-\bar{w},\ &\left(t-\lfloor\displaystyle{\frac{t}{12}}\rfloor\times12=t\mod12=0\right),\end{array}\right.\\\bar{\tilde{w}}^{(m)}&=\displaystyle{\frac{1}{n}\sum_{j=1}^{n}\tilde{w}_j^{(m)}},\ m=1,\cdots,12,\\\bar{w}&=\displaystyle{\frac{1}{12n}\sum_{t=1}^{12n}w_t}\end{aligned}

    を計算する。
  • こうして求めた\left\{\hat{S}_t\right\}を系列\left\{w_t\right\}から除去した\left\{\hat{I}_t\right\}がを不規則変動の推定量とする。
#############################
### UKgasを用いた変動分解 ###
#############################

data(UKgas)

plot(UKgas, main = "原系列")

# Class
class(UKgas)

# 周期性の確認
acf(UKgas, main = "自己相関係数")
pacf(UKgas, main = "偏自己相関係数")
spec.pgram(UKgas, main = "スペクトル分析")

# 単位根検定
obj <- PP.test(UKgas)
(obj$p.value > 0.05)

# 変動分解
UKgas.stl <- stats::stl(UKgas,s.window="periodic")

plot(UKgas.stl, main = "3変動分解")

*1:周辺分布が時間によらないか否か

*2:状況によっては1年を周期としないで、ある固定的な変動を取る場合もある。

プライバシーポリシー お問い合わせ