データ分析関連のまとめ

データ分析・機械学習周りのもくもく会LTやイベント参加をまとめていきます

State Space Models for Forecasting Water Quality Variables

State Space Models for Forecasting Water Quality Variables(KDD2018 Applied Track Papers)を読んでまとめました。
解釈間違い等ある時がありますので、その場合指摘いただけると助かります。

目次

背景と概要

  • クルマエビの養殖のような水産養殖において、水質は生産量や品質に非常に重要な要素となっており、その正しい推定は重要。
    • 溶存酸素(DO)は主要な要素であり、その低下により生育が不十分になる等の影響を受ける事がある。
      • 光合成等の影響を受けるので、昼多い・夜少ない等といった状況になる
  • 実際のデータはセンサーによるノイズの乗ったものであるため、その要素を考慮した値の推定が必要となる
  • 従来のアプローチとして、ecosystem-based modelやneural network等を用いたdata-driven modelがあるが、今回のものはそれらとは異なる新しいアプローチ
  • 今回のモデルでは線形ガウスモデルと非線形ガウスモデル両方で検証されており、その推定にKalman Filterやunscened Kalman Filterが用いられている

Model formulation

  • 論文で考えているものは、下図のようなDOの推移。

    f:id:yhiss:20200222141916p:plain
    時間毎のDOの推移

  • データは以下より構成されている

    • oscillatory function
      • 日次で起こる振動
    • stochastic offset
      • 様々な要因からの影響
        • 藻類の濃度
        • 外部からの入力(水の入れ替え等)
  • 一般式は正弦曲線を用いて以下で表される
 y_t = {\alpha}_t sin({\omega}t) + {\gamma}_t\ \ \ \ (1) 
 y_t:モデルの出力
 {\alpha}_t:振幅
 {\gamma}_t: offset\ model
  • 酸素濃度はセンサーを用いて測られている。そのため各々の時刻tにおいて、ノイズの乗ったセンサーによる測定結果が出力されている。
  • 上記の変数 y_tは計測されず、計測される v_tにより表現される。
    →これらの変数はlatent vector h_tで統合される
  • 今回は線形ガウスモデルと非線形ガウスモデルを用いて検証を行っていた。

線形ガウスモデル

  • state noise processおよびmeasurement noiseがガウス分布に従う場合に(1)式は以下のように書ける。
  • 今回は振幅が時間変化していない仮定となっている。
 x_1 = {\gamma}_t\ , x_2 = {\alpha}_t sin({\omega}t) 
 {\alpha}_t:定数と仮定

latent vectorは状態空間形式において、x_1およびx_2の1階および2階時間微分を使って以下のように表される

 \dot{h_t} = {\Phi}h_t 
 
\left(
    \begin{array}{ccc}
      \dot{x_1} \\
      \ddot{x_1}\\
      \dot{x_2} \\
      \ddot{x_2}
    \end{array}
  \right)

 = \left(
    \begin{array}{ccc}
      0 & 1& 0& 0 \\
      0 & 0& 0& 0 \\
      0 & 0& 0& 0 \\
      0 & 0& -{\omega}^2& 0
    \end{array}
  \right)

\left(
    \begin{array}{ccc}
      {x_1} \\
      \dot{x_1}\\
      {x_2} \\
      \dot{x_2}
    \end{array}
  \right)
\ \ \ \ (2)

v_tは以下のようになり、(2)および(3)の推定にKalman Filterが使われている。

 v_t = Bh_t + {\eta}^v 
 (y_t) = (1\ 0\ 1\ 0)\left(
    \begin{array}{ccc}
      {x_{1t}} \\
      \dot{x_{1t}}\\
      {x_{2t}} \\
      \dot{x_{2t}}
    \end{array}
  \right)
+{\eta}^v
\ \ \ (3)

非線形ガウスモデル

線形ガウスモデルでは定数と扱われていた {\alpha}_tが時間変化する場合、以下のように表し、推定にunscened Kalman Filterが用いられている。

 x_1 = {\gamma}_t\ , x_3 = {\alpha}_t\ , x_4 =  sin({\omega}t) 
 v_t = b(h_t)+ {\eta}^v 
 y_t = x_{1t} + x_{3t}x_{4t}+ {\eta}^v

結果

データセット

  • 15分毎に取得した45日間分のDOおよびpHデータを2種類(4320サンプル)
    • 0.18haの大きいgrow-out pond(一部データ点が無い)
    • 0.022haの小さいnursey pond(外れ値が一部存在)

f:id:yhiss:20200222161725p:plain
grow-out pond(データに一部欠損がある)

f:id:yhiss:20200222161801p:plain
nursey pond(外れ値が存在)

  • 今回は最後の5日を学習に使わず、推定されている。

結果

  • MAPEより、本論文では線形ガウスモデルの方が良いパフォーマンスを出していると結論付けている。
    • 考察:ただ、そんなに大きな差ではない?

f:id:yhiss:20200222163705p:plain
Kalman filterの結果

f:id:yhiss:20200222163808p:plain
unscented Kalman filterの結果
f:id:yhiss:20200222163911p:plain
Kalman filterの結果をOffset model等各モデルに分解した結果(UKFと書いてあるが、恐らくKF))
f:id:yhiss:20200222164136p:plain
unscented Kalman filterの結果をOffset model等各モデルに分解した結果

f:id:yhiss:20200222164316p:plain
線形ガウスモデルのMAPEの結果

f:id:yhiss:20200222164426p:plain
非線形ガウスモデルのMAPE

まとめと考察

  • 酸素濃度等、周期性を持つ時系列データに対して状態空間モデルを適用。
  • oscillatory functionとstochastic offsetの成分に分け式を定義
    • oscillatory functionの仮定に基づいて、モデルを使い分け結果の比較を行っている
  • MAPEから線形ガウスモデルの方がパフォーマンスが良いと結論付けられている
    • 差があまり大きくない印象だった
    • 非線形ガウスモデルでは振幅の時間変化成分まで切り出せているので、解釈自体はしやすくなる(と思った)

参考文献

State Space Models for Forecasting Water Quality Variables

https://www.kdd.org/kdd2018/accepted-papers/view/state-space-models-for-forecasting-water-quality-variables-an-application-i