Pythonではじめる時系列分析入門

馬場真哉・著
シリーズ:
実践Data Scienceシリーズ

Pythonではじめる時系列分析入門

発行
2024/09/18
サイズ
B5変
ページ数
448
ISBN
978-4-06-536982-1
定価
4,180円(税込)
在庫
在庫あり

書籍を購入する

定価
4,180円(税込)

内容紹介

理論とPython実装をバランスよく学べる、初学者向け入門書。古典的な技術から、比較的新しい手法までを丁寧に解説。また、実践的な実装技術や分析におけるTipsについても解説。数学に明るくなくても大丈夫!

目次

第1部 時系列分析の基本

第1章 時系列分析をはじめよう
1.1 時系列データとは
1.2 時系列データを集計するときの注意点
1.3 時系列でないデータを用いた推測
1.4 単純ランダムサンプリングからの乖離
1.5 時系列データの推測における問題
1.6 データ生成過程と時系列モデル
1.7 時系列データへの回帰分析の問題
1.8 時系列モデルの作成

第2章 時系列データの構造
2.1 時系列データの構造
2.2 自己相関
2.3 トレンド
2.4 季節性
2.5 外因性
2.6 ノイズ

第3章 データ生成過程の基本
3.1 表記法
3.2 分析が楽なデータ生成過程
3.3 自己共分散と自己相関
3.4 定常過程
3.5 ホワイトノイズと正規ホワイトノイズ
3.6 ランダムウォーク
3.7 確定的トレンドと確率的トレンド


第2部 Pythonによる時系列分析の基本

第1章 環境構築
1.1 Pythonのインストール 
1.2 コマンドプロンプト上での簡単な計算
1.3 venvを用いた仮想環境の構築
1.4 ライブラリのインストール
1.5 Jupyter NotebookとJupyterLabの利用
1.6 仮想環境の終了

第2章 Pythonの基本
2.1 JupyterLabの起動と終了
2.2 基本的な演算
2.3 文字列
2.4 変数
2.5 関数
2.6 type関数とdir関数の利用
2.7 list
2.8 dict
2.9 for構文
2.10 if構文
2.11 numpyの利用
2.12 pandasの利用 

第3章 Pythonによる統計分析の基本
3.1 分析に用いるライブラリ
3.2 分析の準備
3.3 1変量データの分析
3.4 2変量データの分析(数量×カテゴリ)
3.5 2変量データの分析(数量×数量)
3.6 サンプルデータの利用

第4章 pandasによる日付処理の基本
4.1 日付インデックスの利用
4.2 分析の準備
4.3 pandasを用いたTimestampの作成 
4.4 Timestampからの日付情報の取得
4.5 pandasを用いたDatetimeIndexの作成
4.6 SeriesやDataFrameへのindexの付与
4.7 時系列データの読み込み
4.8 日時を指定したデータの抽出
4.9 日時を用いたデータの集計
4.10 PeriodIndexの作成と利用

第5章 Pythonによる時系列分析の基本
5.1 分析の準備
5.2 飛行機乗客数データの読み込み
5.3 時系列折れ線グラフの作成
5.4 データのシフト(ラグ)
5.5 増減量と差分系列
5.6 前年差と季節差分系列
5.7 対数系列
5.8 増減率と対数差分系列
5.9 自己相関係数とコレログラム
5.10 移動平均
5.11 偶数個の移動平均の注意点
5.12 月単位の気温データの分析例
5.13 データの取得頻度の変更

第6章 時系列データのシミュレーションと見せかけの回帰
6.1 分析の準備
6.2 正規ホワイトノイズ系列のシミュレーション
6.3 ランダムウォーク系列のシミュレーション
6.4 正規ホワイトノイズ系列への回帰分析
6.5 ランダムウォーク系列への回帰分析
6.6 回帰係数のばらつき
6.7 Durbin-Watson統計量
6.8 Durbin-Watson統計量の実装


第3部 基本的な時系列分析の手法

第1章 単純な時系列予測の手法
1.1 単純な予測手法を学ぶ意義
1.2 分析の準備 
1.3 データの分割
1.4 持続予測(ナイーブ予測)
1.5 季節ナイーブ予測
1.6 平均値予測
1.7 移動平均予測
1.8 ドリフト予測
1.9 予測手法の比較
1.10 MAE
1.11 MSE
1.12 RMSE
1.13 MAPE
1.14 MASE
1.15 まとめ

第2章 季節調整とトレンド除去
2.1 分析の準備
2.2 季節調整とトレンド除去の考え方
2.3 移動平均法による加法型の季節調整
2.4 加法型の季節調整の効率的な実装
2.5 移動平均法による乗法型の季節調整 
2.6 乗法型の季節調整の効率的な実装
2.7 回帰分析によるトレンド除去
2.8 差分による季節調整とトレンド除去

第3章 sktimeの使い方
3.1 sktimeの利用
3.2 分析の準備
3.3 PeriodIndexを持つデータの可視化
3.4 sktimeを用いた予測の流れ
3.5 データの分割と予測期間の指定
3.6 sktimeによる予測
3.7 時系列データに対する交差検証法
3.8 sktimeによる交差検証法
3.9 パイプラインの利用
3.10 ハイパーパラメータのチューニング
3.11 分析手法の半自動選択

第4章 指数平滑化法とその周辺
4.1 分析の準備
4.2 単純指数平滑化法
4.3 単純指数平滑化法の実装
4.4 単純指数平滑化法の別の表現
4.5 単純指数平滑化法の効率的な実装
4.6 Holt法
4.7 damped trendのモデル化
4.8 Holt-Winters法
4.9 sktimeによる効率的な実装 


第4部 Box-Jenkins法とその周辺

第1章 Box-Jenkins法から自動予測アプローチへ
1.1 ARMA過程とその発展
1.2 Box-Jenkins法
1.3 自動予測アプローチの活用
1.4 第4部で学ぶこと

第2章 ARIMAモデル
2.1 分析の準備
2.2 AR過程
2.3 MA過程
2.4 最小2乗法を用いたARモデルの推定
2.5 状態空間モデルを用いたARモデルの推定
2.6 状態空間モデルを用いたMAモデルの推定
2.7 ARモデルによる予測
2.8 MAモデルによる予測
2.9 ARMA 過程
2.10 和分過程と単位根過程
2.11 ARIMA過程
2.12 ARIMAモデルの推定と予測

第3章 SARIMAXモデル
3.1 分析の準備
3.2 SARIMAXモデルの概要
3.3 季節和分過程
3.4 ラグ演算子
3.5 SARIMA過程
3.6 SARIMAモデルの推定と予測
3.7 SARIMAXモデルとSARIMA Errorモデル
3.8 SARIMAXモデルの推定と予測

第4章 モデル選択
4.1 分析の準備
4.2 モデル選択の手続き
4.3 単位根検定:DF検定とADF検定
4.4 単位根検定:KPSS検定
4.5 季節単位根検定:DHF検定
4.6 季節単位根検定:OCSB検定
4.7 情報量規準の利用
4.8 残差診断と残差の可視化
4.9 単位根検定の実装
4.10 自動予測アプローチの実装
4.11 モデルの診断
4.12 sktimeを利用する方法


第5部 線形ガウス状態空間モデル

第1章 状態空間モデルの概要
1.1 状態空間モデルのイメージ
1.2 状態と観測値に分けるメリット
1.3 状態空間モデルによくある勘違い
1.4 モデルの構造とモデルの名前の対応関係
1.5 状態の成分
1.6 線形ガウス状態空間モデル
1.7 さまざまな状態空間モデル

第2章 ローカルレベルモデルの基本
2.1 分析の準備
2.2 ローカルレベルモデル
2.3 ローカルレベルモデルのシミュレーション
2.4 ローカルレベルモデルの予測
2.5 推定方法の概要
2.6 カルマンフィルタのイメージ
2.7 カルマンゲインとカルマンフィルタの計算式 
2.8 ローカルレベルモデルにおけるカルマンフィルタ
2.9 状態の初期値
2.10 数値例
2.11 最尤法によるパラメータ推定 
2.12 状態の平滑化

第3章 ローカルレベルモデルの実装
3.1 分析の準備
3.2 シミュレーションデータの生成
3.3 ローカルレベルモデルを推定するクラスの作成
3.4 カルマンフィルタの実行
3.5 パラメータを変えた場合の挙動
3.6 最尤法によるパラメータの推定 
3.7 statsmodelsの利用

第4章 ローカルレベルモデルの数理
4.1 ローカルレベルモデルとカルマンフィルタの復習
4.2 最良線形不偏推定量(BLUE)
4.3 カルマンフィルタの導出
4.4 散漫カルマンフィルタ
4.5 statsmodelsを用いた散漫カルマンフィルタの実装

第5章 基本構造時系列モデル
5.1 分析の準備
5.2 確定的トレンドと確率的トレンド
5.3 forループを用いたローカルレベルモデルのシミュレーション
5.4 平滑化トレンドモデル(2階差分のモデル)
5.5 平滑化トレンドモデルのシミュレーション
5.6 平滑化トレンドモデルの推定
5.7 ローカル線形トレンドモデル
5.8 ローカル線形トレンドモデルのシミュレーション
5.9 ローカル線形トレンドモデルの推定
5.10 ダミー変数を用いた季節成分
5.11 三角関数を用いた季節成分
5.12 基本構造時系列モデルのシミュレーション
5.13 基本構造時系列モデルの推定
5.14 三角関数を用いた季節成分を有するモデルの推定
5.15 状態空間モデルの残差診断
5.16 状態空間モデルによる予測
5.17 行列を用いた状態空間モデルの表現 
5.18 一般的なカルマンフィルタ

第6章 状態空間モデルの分析事例
6.1 分析の準備
6.2 日単位売り上げデータの読み込み
6.3 探索的データ分析
6.4 特徴量エンジニアリング
6.5 単純な基本構造時系列モデルの推定
6.6 短期・長期変動の追加
6.7 sktimeの利用


第6部 機械学習法

第1章 LightGBM
1.1 時系列分析における機械学習法の利用
1.2 回帰木
1.3 勾配ブースティング木
1.4 LightGBM
1.5 LightGBMによるオオヤマネコ個体数予測
1.6 sktimeを用いた効率的な実装
1.7 ハイパーパラメータのチューニング
1.8 LightGBMによる飛行機乗客数予測
1.9 前処理による予測精度の改善
1.10 周期性を表現する特徴量の利用

第2章 ニューラルネットワークと深層学習
2.1 ニューラルネットワーク
2.2 パラメータ推定における工夫
2.3 ニューラルネットワークによる飛行機乗客数予測
2.4 深層学習と時系列分析
2.5 リカレントニューラルネットワーク(RNN)
2.6 LSTM
2.7 dartsライブラリを利用する準備
2.8 深層学習による飛行機乗客数予測


第7部 時系列予測の実践的技術

第1章 モデルの保存と読み込み
1.1 状態空間モデルの保存と読み込みに関する注意点
1.2 状態空間モデルの推定と予測 
1.3 状態空間モデルの保存と読み込み
1.4 新しいデータを用いたフィルタリングと予測
1.5 appendメソッドを用いたデータの追加
1.6 複数の系列への分析事例

第2章 時系列分析の実践におけるTipsと注意点
2.1 時系列データの補間
2.2 状態空間モデルによる補間
2.3 日付の抜け漏れ
2.4 単純な補間が問題をもたらす事例
2.5 データのリークに注意
2.6 予測精度の評価におけるナイーブ予測の利用
2.7 利用するデータの期間