時系列解析初心者が始める時系列解析(1)

2022/12/19に公開約4,600字

Time Series Data を捉える

参照:https://elf-c.he.u-tokyo.ac.jp/courses/377

原系列データをまず可視化する

  • 定常性 or 非定常性を視覚的に確認してみる。
  • 分散がどういった間隔でどういった変化があるかで、その後のモデリングに作用する。
    • 例) 日経255データでは、下降トレンドがある間隔では、分散が大きくなる傾向。

時系列の分類

  • 連続時間時系列と離散時間時系列
    • 離散時系列には、等間隔 or 不等間隔がある。 --> 部分的にみると異なった性質として、見えることもある。
  • 1変量 or 多変量
  • 定常 or 非定常
    • 定常:性質が一定で時間的に変化がないもの
    • 非定常:性質が時間と共に変化するもの
  • 線形 or 非線形 <-- モデル化時に重要
  • ガウス型 or 非ガウス型 <-- 時系列の分布が正規分布に従うかどうか

上記の視野を据えることで、モデリングの参考になる。


前処理

-- > 他モデル同様、時系列においても精度に影響を与える。

変数変換:一般化

  • 基本は、線形・定常・正規性などを仮定したモデリングを容易にする
  • モデルにパラメータがある場合、変換をうまく実行できると、制約付きの最適化問題ではなく、制約なしの最適化問題として扱える。
具体例
  1. X\sim{f(x)}という確率分布に従うデータに対し、x = h(y)^{-1}という変数変換を行うと、Y\sim{g(y)}が得られる。

  2. ここで得られるY\sim{g(y)}が定常性を持つデータとすると、これを対象にすることで、モデリングが用意になる。

  3. モデリング後、Y\sim{g(y)}に対して、y=h(x)を施すことで、元のデータに再度変数変換することができる。
    実際の式はこちら --> 変数変換のため、ヤコビの行列(ヤコビアン)を用いる
    http://www.mi.u-tokyo.ac.jp/mds-oudan/lecture_document_2019_math7/時系列解析(1)_2019修正版.pdf
    g(y) = f(h(y)^{-1})\biggm\vert{\frac{dh^{-1}} {dy}}\biggm\vert
    f(x) = g(h(x))\biggm\vert{\frac{dh} {dx}}\biggm\vert


変数変換:対数変換


対数変換

y = h(x) = logx

正規分布

g(x)=\frac{1}{\sqrt{2\pi\sigma{^2}}} \exp{-\frac {(y - \mu)^2} {2\sigma{^2}}}

ヤコビアン

\frac{dh}{dx} = \frac{1}{x}

対数正規分布

f(x) = g(h(x))\biggm\vert{\frac{dh} {dx}}\biggm\vert = \frac{1}{\sqrt{2\pi\sigma{^2}}} \exp{-\frac {(\log{x} - \mu)^2} {2\sigma{^2}}} \frac{1}{x}
  • 正規分布に近づけてからモデリングを行うことができる。
  • 複数の成分に対して行う場合、対数変換したデータは加法モデルでも、元のデータは乗法モデルとなる。
  • 効果:分散一様化 / トレンド成分は消えない / 正値時系列の無制約化(0, ∞)-->(-∞, ∞)
    • 正値時系列の無制約化:元々、0以上の値をとる時系列データであったが、対数変換することで、負の値が生まれ、モデリング時に効果的になる場合がある。

変数変換:Box-Cox 変換


一般的な数式

y_{\lambda}= \begin{cases} \frac{x^{\lambda}-1}{\lambda} & \lambda \ne 0 \\ \log{x} & \lambda = 0 \end{cases}
  • \lambdaによって様々なべき乗型変換が得られる
  • データの分布を正規分布に近づけるために用いる
  • 最適な\lambdaを求めるために、変換後にどれだけ正規分布に近いかを情報量基準を用いて判断する。

変数変換:ロジット変換


一般的な数式

y = \log{\bigg(\frac{x}{1-x}\bigg)}
  • 比率データxをオッズx/(1-x)の自然対数に変換
  • (0, 1)で表されるデータを(-∞,∞)のデータに変換することができる。
  • 逆変換はシグモイド関数となる。
より一般的な式
  • y = \log{\bigg(\frac{x-a}{b-x}\bigg)}
  • (a,b) \Harr (-∞,∞)を行う。aとbはパラメータ。
その逆変換
  • x = \frac{a+be^y}{1+e^y}

階差(差分)


イメージ

  • 階差を取ることで、定常データとして扱えるようにしている。
  • 注意点として、一般的なデータにはノイズ項が含まれており、そういったデータに対して階差を取ると、ノイズ項が複雑化するという特性を持っている。

1階階差の場合(y_n = a + bnの時)

  • \Delta{y_{n}} = y_n - y_{n-1} = b
  • 式を実際に代入してみると、bだけが残る。
  • これは、傾きが見られるようなデータ、つまり、トレンド成分を削除したこととなる。

2階階差の場合(y_n = a+bn+cn^2の時)

  • 1階:\Delta{y_{n}} = y_n - y_{n-1} = (b-c)+2cn --> 放物線が直線式になったということ。
  • 2階:\Delta{y_{n}} = y_n - y_{n-1} = y_n - 2y_{n-1} + y_{n-2} = 2c --> 定数cだけのため、一定になったということ。

季節階差

  • \Delta{_s}{y_{n}} = y_n - y_{n-s} = (1 - B^s)y_n
  • s:季節(1周期)の長さ
  • 季節的変動とトレンドを一斉に除去したデータを作ることができる。

前期比


  • 経済分野では、x_n = y_n / y_{n-1} という形で今年のデータを前年のデータで割るということがある。
  • y_n = T_nとし、T_nT_{n-1}を用いて表すと、T_n = (1 + \alpha)T_{n-1}とおくことができる。
  • これを数式に当てはめると、下記のようになる。これは、今年のデータは昨年のデータから(1+\alpha)分変化したと捉えることができることを意味する。
    \begin{aligned} x_n &= \frac{T_n}{T_{n-1}} \\ &= \frac{(1+\alpha)T_{n-1}}{T_{n-1}} \\&=1+\alpha\end{aligned}
  • ただし、実際にはノイズ項が加わり、影響を受けるため、前期比を取ることで、複雑化してしまうという副作用もある。
    \begin{aligned} x_n &= \frac{T_n \cdot w_n}{T_{n-1} \cdot w_{n-1}} \\ &= \frac{(1+\alpha)T_{n-1} \cdot w_n}{T_{n-1} \cdot w_{n-1}} \\&=(1+\alpha) \frac{w_n}{w_{n-1}} \end{aligned}

前年同期比


  • 1周期前の値で割ること。x_t = y_t / y_{t-p}pは周期を表す。
  • 周期をSを用いて表すと、y_n = S_nとなり、y_{t-p} \cong S_{n-p}と表せる。\congはおよそ等しいの意味。
  • 上記を用いると、下記のように表すことができ、1に近いということは今年と前年とに誤差がないことを表す。つまり、周期性に乱れがないかを判断する指標となる。
    x_n = \frac{y_n}{y_{n-p}} = \frac{S_n}{S_{n-p}} \cong 1
  • また、この性質から、前年で上昇したり、減少したりしていたとしても、前年同期比を用いるとあたかも今年に変化があったように映ってしまう。

移動平均(フィルタ)


  • ある時点での時系列データy_nを移動平均フィルタを用いることで、t_nという滑らかなデータにすることができる。
  • 長所:滑らかな推定値を算出できる。短所:構造変化を正確に検出できない。異常値に敏感。
  • 下記はその式であり、ある時点nを基準として、k分までの平均を取るということを意味している。k=1なら、3つ分の時系列データの平均、k=2であれば、5つ分の時系列データの平均ということになる。
    t_n = \frac{1}{2k+1}(y_{n-k} + \cdots + y_n + \cdots + y_{n+k})
  • これらのメリットとしては、トレンド周りの分散を\frac{\sigma^2}{2k+1}とすることができるという点。
    • 前提:y_n=T_n+w_n, T_n = a + bn, w_n \sim{N(0,\sigma^2)}
    • また、この時の平均は不変であるという性質を持つ。
  • これらをより一般化した重みつき移動平均というものがある。各項に重み係数\alpha_{i}をかけるというもの。これらの重み係数を\frac{1}{2k+1}に一定にしたもので上記の式である。
    t_n = \alpha_{-k}y_{n-k} + \cdots + \alpha_{0}y_n + \cdots + \alpha_{k}y_{n+k}
  • この場合のトレンド周りの分散は\sigma^2 \sum_{j=-k}^{k}{\alpha^2}と表現することができる。
    • 前提および性質は、\frac{1}{2k+1}を用いたときと同様。

移動メディアン・フィルタ


  • 設定したkで対象となった時系列データから、平均値ではなく、中央値を求めて、それを用いる。
  • 長所:異常値、急激な構造変化に対応が可能。短所:各間隔での変動が大きい。
    t_n = median(y_{n-k}, \cdots , y_n, \cdots, y_{n+k})

Discussion

ログインするとコメントできます