読書:島田 直希「時系列解析: 自己回帰型モデル・状態空間モデル・異常検知 (Advanced Python 1)」(2019)

2024年3月13日

アマゾンへのリンク

時系列解析という分野は興味があったのだがあまり触れる機会がなかったので、このちょっと暇な時期に勉強してみました。

2019年の本ということで、5年というのは古いのか、新しいのか、微妙なところですが、使われているライブラリのいくつかは今では古くなっていて、サンプルプログラムはそのままでは動かないものが多かったですね。

とくに自己回帰モデルのARはクラス名やらパラメタ名やら、いろいろと仕様が変わっていました。

さて、大枠の内容ですが、最初に時系列解析についての説明があってから、2章では線形の回帰かつ誤差が正規分布である場合に適用できる「自己回帰モデル」について扱います。このあたりはAR(自己回帰)に始まって、ARMA(自己回帰移動平均)、ARIMA(自己回帰和分移動平均)などの略語が多いので、基本的な言葉の定義を押さえておくにはよいです。ただし、1つ1つの数学的な説明は必要最低限という感じです。とりあえずPythonでそれぞれのモデルを動かして予測などをさせてみよう、という入門には良い本だと思いました。

3章では、もっと一般の関数形や誤差の分布関数がより一般的な形の場合に対応できる「ベイズ型統計モデル」を扱います。ベイズ型のモデルは、回帰係数だけでなく、分布のパラメタ(平均や分散など)、あるいは分布の形までも推定できる強みがあります。また、サンプリングされたパラメタの集合が得られるので信用区間が計算できるのも強みです。ただし、設定次第では解が不安定だったり計算がうまくいかないこともあると思います。

4章は異常検知がテーマです。2章と3章では、「時系列データの変化パターン」を抽出して予測することがテーマでしたが、異常検知は「パターンあるいは予測からの逸脱」として定義できます。また、その方法も自己回帰モデルを用いた方法と、ベイズ型統計モデルでの「パラメタが変化した確率」として異常(変化)を捉えるやり方、最後にはDeepLearningを用いた方法までと、一通りの考え方を学ぶことができます。

時系列解析の理論的な部分をきちんと学ぶには記述が薄いとは思いますが、どのような考え方があって、どういった場合に使えるのか、その全体像をざっと把握するにはとてもよい入門書だと思いました。

時間があれば、これのサンプルプログラムをいまのライブラリで動くように修正する方法についても記事にしたいと思います。

読書

Posted by KayTea