#各本の立ち位置について
どんな軸で立ち位置を説明しようか悩みますが、今回は「対象読者レベル」と「時系列との関係」についての二軸で「独断と偏見」で位置づけしてみました。
#はじめに
仕事でデータ分析に関して種々のデータに色々な手法を使ったりするのですが、分析していると時系列のデータが意外と多い。
数値予測や異常検知などは時刻と共に記録されていることが多いです。
この時系列データに関する知識を付けるために網羅的に本を読んで、知識を付けようと思いました。
今回はその中で、「どの本にどんな事が書いてあって、他の本との関係性は?」を書評にすることで、皆さんの本の購入の手助けになればと思っています。
「この本の立ち位置も調べて」
「時系列本ならこの本入れなアカン」
などあれば教えてください。
時系列分析のためのブックガイドと同じようなコンセプトの記事です。
#時系列データに対する「python,Rどっちがいいの?」
- pythonもRもデータ分析のライブラリ・パッケージが豊富で論文から実装までの速度も速い
- pythonもRも可視化や関数のできる事は似たようなものが多い
- 深層学習はpythonが有利
- 機械学習は優秀なscikit-learnがあるpythonがリードしている
- Rもtidymodels,recipesなど魅力的な補助ライブラリが出てきている
- Rは検定や可視化の「実行しやすさ」は、やはり「統計用言語」だけあってリード
- MCMCのためのstanはRでもpythonでも利用できる
- 時系列モデリングはRがリードしている
以上のことから、時系列を学ぶならばR言語の選択をオススメします。
#本のタイトルとザックリ概要
11冊-2020年4月時点
amazonに飛びますが私に広告収入とか入らないのでお気軽に参照ください。
インデックス | タイトル | 説明 | コード | 著者・出版 |
---|---|---|---|---|
1冊目 | Rで学ぶVAR実証分析 | 時系列モデルと特にベクトル自己回帰(VAR)をRのVAR関数など使って理解する本 | R | 村尾 博:オーム社 |
2冊目 | ファイナンス機械学習 | pythonで関数を実装しながら金融・ファイナンスに関わる分析方法や考え方を説明してくれる良書 | python | マルコス・ロペス・デ・プラド:金融財政事情研究会 |
3冊目 | 計量経済学 | 時系列分析・モデリングだけでなく、駆け出しのデータサイエンスにも優しいように、図と数式で丁寧に説明してくれる「データ分析のためのノウハウ辞典」に「時系列モデリング」を併せた本 | なし | 西山慶彦:有斐閣 |
4冊目 | 時系列分析と状態空間モデルの基礎 | Rとstanを使いながら状態空間モデルを学習する。一番簡単なモデルに始まり、step by stepでVAR,状態空間モデルまで学習できる本。コード付きで分かりやすい統計・時系列のブログ「logics of blue」の著者の本 | R | 馬場 真哉:プレアデス出版 |
5冊目 | 経済・ファイナンスデータの計量時系列分析 | 理論強めの本。最初の一冊にこの本を選んだが絶望した。時系列モデリングの導入本で学習してから、理論の補填を行うために使うのがいい。 | なし | 沖本 竜義:朝倉書店 |
6冊目 | 現場ですぐ使える時系列データ分析 | Rを使ったシンプル・基本的な時系列モデリングの手法を学習できる本。シンプル故に、他の時系列本でカバーできてしまう感は否めない。 | R | 横内大介:技術評論社 |
7冊目 | 点過程の時系列解析 | 時系列解析に使われる確率分布や一部モデリングの本。辞書的に参照する使い方がいいかもしれない。優先度は低い。 | なし | 近江 崇宏:共立出版 |
8冊目 | Rによる計量経済分析 | Rの操作に始まり、自己回帰系のモデルをGARCHやVARまで紹介する本。枚数もすくないため、とりあえず時系列モデリングを扱ってみたい人にお勧め。 | R | 福地純一郎:朝倉書店 |
9冊目 | 実証分析のための計量経済学 | 他本は予測モデリングの内容を含むが、そもそもデータサイエンスって「効果があったのか?バイアスを含んでいるのでは?係数に意味はあるのか?」といった検証が大切だよね、ってことを思い出させてくれた本。実社会の問題を使いながら学習する、まさに「実証分析」。時系列モデリングではないがデータ分析初心者には勧めたい一冊。 | なし | 山本 勲:中央経済社 |
10冊目 | 基礎からわかる時系列分析 | サブタイトルにはフィルタやMCMCがついていることからもわかるように状態空間モデル特化本。自己回帰系モデリングは紹介程度。図やコードをふんだんに使い説明してくれる本。数式・理論を詰めるよりもまず手を動かすのに向いているかもしれない。 | R | 萩原 淳一郎:技術評論社 |
#時系列予測の手法・種類について
時系列モデリングを含め、時系列データの予測に使われる方法を(勝手に)大きく4つの手法群に分けて考えます。
- 自己回帰系
- 状態空間系
- 機械学習の回帰
- 深層学習
###1. 自己回帰系
AR, ARMA, ARIMA, SARIMA, ARIMAX, SARIMAX, ARCH, GARCH, VAR
古くからある時系列モデリング手法群であり、現代でも活用できるほど廃れがない。
時系列データとは、「傾向(トレンド)」「自己相関(周期)」「季節(定期的な周期)」「誤差」などいくつかの成分に分解することで、時系列データを関数として表現する方法。
↑こんな感じに分解する(図はprophetの出力)。
データをこれらの成分に分解するためには自己回帰・単位根検定・d階差・AICでモデル選択、などなどエンジニアリングが必要になります。
難しそうに感じるかもしれませんが、現代では自己回帰系のモデリングは基本的に自動化されているのでハードルは低いです。
ただし、モデリング結果の「理解・考察」のためには理論的な知識も必要です。
「どういう理論で計算しているか」を知っていなければ、
・自動決定で出てきた結果,モデルが間違っているか
・そもそも自己回帰でモデリングしてもいいデータなのか
など大切な部分を見落とすことになります。
(複数の本を読んでみて、機械学習の理論理解の大切さを改めて感じました。)
###2. 状態空間系
時系列データを「状態」という数値に「確率的に値が足された」ことで得られるという考え方でモデリングしていく。
「観測方程式」と「状態方程式」という二つの数式を考える。
日本の気温をモデル化しようとする場合まず、夏は暑く冬は寒い、という周期的な波形を考えることができる。
ただし、ある年の夏は雨が多く平均的な気温が低下していた。
周期的な波形を日本の気温モデルとして扱った場合、このような変化は予測ができないが、
「雨が降ったかどうか」という記録から波形を補正してやれば、気温の低下も反映させられるのでは?という考えの元にモデルを作っていく手法である。
ここで言う「雨が降ったか?」が「状態」を表す方程式として作られていく。
「状態」がデータに影響を与えていると考えられるので、「なぜその数値になったのか」を考察するときに状態の値を確認することで変化を説明しやすくなる、というメリットがある。
状態空間モデルで出てくる「フィルタ」という言葉は、「状態」を創り上げ・補正する時に使われるアルゴリズムのことを指す。
状態空間モデルを作る過程では事後確率に当たる確率密度関数が複雑になり、そのパラメータを推定するためにはMCMCによって乱数を発生させる必要が出てくるわけです。
###3. 機械学習の回帰
機械学習の手法には回帰モデルがあります。
時系列モデリングではなく、周辺の説明変数や過去の時点値などを使いながら数値を予測していく方法です。
古くはSVM(SVR)、最近ではGBDT系・LightGNMなどの手法がデータ分析のコンペティションなどで活躍しており、「分類問題も解ける・計算が早い・多変量を扱える」、など活用の幅が広いことで気軽に使われているように感じます。
時系列モデリングを知り、理論を知り、定式化しやすい場合は時系列モデリングを選択する。
多変量や、定式化しにくいと感じた場合は他の機械学習モデルで回帰してみる。
といったアプローチがいいのではないでしょうか?
時系列モデリングを選択すべきか判断できるようになるためにも、時系列本を読んでいきましょう。
機械学習(分類・回帰)について知りたい場合は以下の本を紹介しておきます。
インデックス | タイトル | 説明 | コード | 著者・出版 |
---|---|---|---|---|
11冊目 | Kaggleで勝つデータ分析の技術 | kaggleコンペで使われる手法の使い方についてまとまった一冊 | python | 門脇 大輔:技術評論社 |
###4. 深層学習
系列データに関してディープラーニングを使う場合RNN、より改良されたLSTMがよくつかわれる。
時に多変量の場合などは「3. 機械学習の回帰」でも紹介したような考え方から多層NNで回帰として解かれる場合もある。
深層学習によくある問題であるが、予測値の説明を求められた場合に困ったりする。
この辺りはまだ紹介できる本の知識がないので割愛させていただきます。
(巣籠さんとかの本がいいんでしょうか?本のオススメお待ちしてます)
#11冊読んでみて、最初の頃の自分にアドバイスするなら
今後、全くの初学者に時系列モデリング・分析を始める人に対してお勧めするのならば以下のようにする。
「機械学習モデルでの予測(回帰)」はここでは考えず、あくまでも「時系列モデリング」についての理解をするための道を考えてみた。
- 時系列分析と状態空間モデルの基礎(隼の表紙)
- 時系列・自己回帰モデルの基礎を簡単な数式と簡単に説明してくれる
- AR,ARMA,ARIMA,SARIMA,ARIMAX,SARIMAX,VAR(一部),状態空間,カルマンフィルタ,MCMC
- 単位根,ADF検定など基礎を一通り知ることができる
- ストーリ仕立てで読みやすい
- 個人的に文章が理解しやすかった(読みやすい)
- Rによる計量経済分析
- R言語を触る・操作方法説明もついている
- 隼本で理解した自己回帰系モデルや、ARCH,GARCHを知る
- 基礎からわかる時系列分析
- 状態空間の知識をさらに詰める
- カルマンフィルタ,粒子フィルタ,MCMC
- 時系列モデリングの道を進みたいならカルマンフィルタについて副読本を読む
- Rで学ぶVAR実証分析
- RでVAR関数を使う
- 多変量の時系列モデリング手法(VAR)を理解する
ここまでで十分に時系列モデリングの手法を使って戦える力はついていると思います。
#それ以上の進展・成長にむけて
- 経済・ファイナンスデータの計量時系列分析
- 時系列モデリングの数学的背景をしっかり理解する
#初心者から成長したい方針に向けて読むなら
- 計量経済学
- データ分析・統計・機械学習の考え方を基礎から理解する
- 金融・経済に進みたいなら「ファイナンス機械学習」
- 機械学習エンジニアとして磨きたいなら「kaggleで勝つ」
#以上
ここまでが時系列本を読んでみて、思った感想・書評・オススメです。
・「現場ですぐ使える時系列データ分析」は基礎向けで、古いためか時系列モデリングの手法紹介が少ないため優先度は低く感じる
・「Rによる計量経済分析」も古い本ではあるが扱う時系列モデリング手法が多く、基本的なRの操作方法も記載されており、吸収できることが多いと考えて優先度を少し高めにした
皆様の学習の助けになれば幸いです
#2020-06-10追記
インデックス | タイトル | 説明 | コード | 著者・出版 |
---|---|---|---|---|
12冊目 | 時系列解析: 自己回帰型モデル・状態空間モデル・異常検知 | pythonで書かれた時系列解析の基礎本 | python | 島田 直希:共立出版 |
図書館にあったのでコレ読んできました。
- 感想
- 隼本(時系列分析と状態空間モデルの基礎)のpython版という印象
- pythonの使い方は付録として解説付き
- 本文中でパッケージ(stats modelとか)の中の関数についても触れられるので公式ドキュメント読む手間は少し省ける
- やっぱり解説の流れや文章は隼本のほうが好き
- 説明文があってから数式、という流れは似ている
この本の尖っているところはやっぱり異常検知がついていることでしょうか。
異常検知については別記事で紹介予定。
#2020-10-23追記
インデックス | タイトル | 説明 | コード | 著者・出版 |
---|---|---|---|---|
13冊目 | ベイズ統計データ解析 (Rで学ぶデータサイエンス 3) | R,モンテカルロ,状態空間,ARモデル | R | 姜 興起:共立出版 |
- 感想
- 時系列とか全然匂わせないタイトルだったから見逃してたけど、ちゃんと時系列してた
- 数式やコードと一緒に図を使って説明してくれている
- ほんとに図がたくさんある。アリガタイ。
- ベイズの基礎からモンテカルロ、そしてサンプラーの問題点からの状態空間モデルは結構どの本でも見られる流れ
- 生産関数という名前は初めて聞いた。鉱業の時系列解析例などあって業務につながりそう。
最近Rで学ぶデータサイエンスが良い本だと再認識(2010年出版だから驚く)
もっと早く出会っていたかった。
揃えたいけど、今の自分にはまだお高い...
#2021-11-02追記
インデックス | タイトル | 説明 | コード | 著者・出版 |
---|---|---|---|---|
14冊目 | 実践 時系列解析 ―統計と機械学習による予測 |
- 感想
- いつもながらのオライリー語っぽい文章が散見されたが、内容は初心者むけの部類
- 細かいtipsがありがたいと感じた。実践と銘打った理由?
- 特徴量合成のテクニックポイント、あえてすべてのデータを使わない理由、不均衡サンプリング、等
- 自己回帰系から入って状態空間、最後のほうにニューラルネットをつかう
- UCIデータセットを使った紹介や、ヘルスケア分野・金融分野での適応方法などのドメイン適応の話もついている
- 隼本(上記4冊目)を読んでいたので重複は多いけれど、pythonユーザーと時系列解析の勉強会を開くならこれをテキストに使うかも
という所感です。