Quantcast
Channel: 初心者タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 21085

時系列データ関連の本10冊読んだので書評書く。

$
0
0

各本の位置づけ

時系列初心者の私が時系列モデリング学習のために何冊か読んでみた各本の位置づけ

00001.png

図の詳細説明は一番下に。

はじめに

仕事でデータ分析に関して種々のデータに色々な手法を使ったりするのですが、分析していると時系列のデータが意外と多い。

数値予測や異常検知などは時刻と共に記録されていることが多いです。
この時系列データに関する知識を付けるために網羅的に本を読んで、知識を付けようと思いました。
今回はその中で、「どの本にどんな事が書いてあって、他の本との関係性は?」を書評にすることで、皆さんの本の購入の手助けになればと思っています。

「この本の立ち位置も調べて」
「時系列本ならこの本入れなアカン」
などあれば教えてください。

時系列分析のためのブックガイドと同じようなコンセプトの記事です。

時系列データに対する「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. 自己回帰系
  2. 状態空間系
  3. 機械学習の回帰
  4. 深層学習

1. 自己回帰系

AR, ARMA, ARIMA, SARIMA, ARIMAX, SARIMAX, ARCH, GARCH, VAR

古くからある時系列モデリング手法群であり、現代でも活用できるほど廃れがない。

時系列データとは、「傾向(トレンド)」「自己相関(周期)」「季節(定期的な周期)」「誤差」などいくつかの成分に分解することで、時系列データを関数として表現する方法。

image.png

↑こんな感じに分解する(図はprophetの出力)。

データをこれらの成分に分解するためには自己回帰・単位根検定・d階差・AICでモデル選択、などなどエンジニアリングが必要になります。

難しそうに感じるかもしれませんが、現代では自己回帰系のモデリングは基本的に自動化されているのでハードルは低いです。
ただし、モデリング結果の「理解・考察」のためには理論的な知識も必要です。

「どういう理論で計算しているか」を知っていなければ、
・自動決定で出てきた結果,モデルが間違っているか
・そもそも自己回帰でモデリングしてもいいデータなのか
など大切な部分を見落とすことになります。

(複数の本を読んでみて、機械学習の理論理解の大切さを改めて感じました。)

2. 状態空間系

時系列データを「状態」という数値に「確率的に値が足された」ことで得られるという考え方でモデリングしていく。
「観測方程式」と「状態方程式」という二つの数式を考える。
日本の気温をモデル化しようとする場合まず、夏は暑く冬は寒い、という周期的な波形を考えることができる。

ただし、ある年の夏は雨が多く平均的な気温が低下していた。

周期的な波形を日本の気温モデルとして扱った場合、このような変化は予測ができないが、
「雨が降ったかどうか」という記録から波形を補正してやれば、気温の低下も反映させられるのでは?という考えの元にモデルを作っていく手法である。

ここで言う「雨が降ったか?」が「状態」を表す方程式として作られていく。
「状態」がデータに影響を与えていると考えられるので、「なぜその数値になったのか」を考察するときに状態の値を確認することで変化を説明しやすくなる、というメリットがある。

状態空間モデルで出てくる「フィルタ」という言葉は、「状態」を創り上げ・補正する時に使われるアルゴリズムのことを指す。
状態空間モデルを作る過程では事後確率に当たる確率密度関数が複雑になり、そのパラメータを推定するためにはMCMCによって乱数を発生させる必要が出てくるわけです。

3. 機械学習の回帰

機械学習の手法には回帰モデルがあります。
時系列モデリングではなく、周辺の説明変数や過去の時点値などを使いながら数値を予測していく方法です。
古くはSVM(SVR)、最近ではGBDT系・LightGNMなどの手法がデータ分析のコンペティションなどで活躍しており、「分類問題も解ける・計算が早い・多変量を扱える」、など活用の幅が広いことで気軽に使われているように感じます。

時系列モデリングを知り、理論を知り、定式化しやすい場合は時系列モデリングを選択する。
多変量や、定式化しにくいと感じた場合は他の機械学習モデルで回帰してみる。

といったアプローチがいいのではないでしょうか?

時系列モデリングを選択すべきか判断できるようになるためにも、時系列本を読んでいきましょう。
機械学習(分類・回帰)について知りたい場合は以下の本を紹介しておきます。

インデックスタイトル説明コード著者・出版
11冊目Kaggleで勝つデータ分析の技術kaggleコンペで使われる手法の使い方についてまとまった一冊python門脇 大輔:技術評論社

4. 深層学習

系列データに関してディープラーニングを使う場合RNN、より改良されたLSTMがよくつかわれる。
時に多変量の場合などは「3. 機械学習の回帰」でも紹介したような考え方から多層NNで回帰として解かれる場合もある。
深層学習によくある問題であるが、予測値の説明を求められた場合に困ったりする。

この辺りはまだ紹介できる本の知識がないので割愛させていただきます。
(巣籠さんとかの本がいいんでしょうか?本のオススメお待ちしてます)

各本の立ち位置について

どんな軸で立ち位置を説明しようか悩みますが、今回は「対象読者レベル」と「時系列との関係」についての二軸で「独断と偏見」で位置づけしてみました。

image.png

11冊読んでみて、最初の頃の自分にアドバイスするなら

今後、全くの初学者に時系列モデリング・分析を始める人に対してお勧めするのならば以下のようにする。
「機械学習モデルでの予測(回帰)」はここでは考えず、あくまでも「時系列モデリング」についての理解をするための道を考えてみた。

  • 時系列分析と状態空間モデルの基礎(隼の表紙)
    • 時系列・自己回帰モデルの基礎を簡単な数式と簡単に説明してくれる
    • AR,ARMA,ARIMA,SARIMA,ARIMAX,SARIMAX,VAR(一部),状態空間,カルマンフィルタ,MCMC
    • 単位根,ADF検定など基礎を一通り知ることができる
    • ストーリ仕立てで読みやすい
    • 個人的に文章が理解しやすかった(読みやすい)
  • Rによる計量経済分析
    • R言語を触る・操作方法説明もついている
    • 隼本で理解した自己回帰系モデルや、ARCH,GARCHを知る
  • 基礎からわかる時系列分析
    • 状態空間の知識をさらに詰める
    • カルマンフィルタ,粒子フィルタ,MCMC
    • 時系列モデリングの道を進みたいならカルマンフィルタについて副読本を読む
  • Rで学ぶVAR実証分析
    • RでVAR関数を使う
    • 多変量の時系列モデリング手法(VAR)を理解する

ここまでで十分に時系列モデリングの手法を使って戦える力はついていると思います。

それ以上の進展・成長にむけて

  • 経済・ファイナンスデータの計量時系列分析
    • 時系列モデリングの数学的背景をしっかり理解する

初心者から成長したい方針に向けて読むなら

  • 計量経済学
    • データ分析・統計・機械学習の考え方を基礎から理解する
    • 金融・経済に進みたいなら「ファイナンス機械学習
    • 機械学習エンジニアとして磨きたいなら「kaggleで勝つ

以上

ここまでが時系列本を読んでみて、思った感想・書評・オススメです。

・「現場ですぐ使える時系列データ分析」は基礎向けで、古いためか時系列モデリングの手法紹介が少ないため優先度は低く感じる
・「Rによる計量経済分析」も古い本ではあるが扱う時系列モデリング手法が多く、基本的なRの操作方法も記載されており、吸収できることが多いと考えて優先度を少し高めにした

皆様の学習の助けになれば幸いです


Viewing all articles
Browse latest Browse all 21085

Trending Articles