【技術本】実践・時系列解析―統計と機械学習による予測
https://amzn.to/4lx9dxu
【技術本】実践・時系列解析―統計と機械学習による予測
へポスト
時系列解析とはなにか。歴史的背景の解説から、データの前処理整形方法、データのシミュレーション、機械学習を想定した前処理(特徴量生成)、ディープラーニングへの適用。それを踏まえて、ヘルスケア関連、金融関連へのディプラーニングを使用した時系列解析までをコードを踏まえて紹介してくれている。
時系列解析に使える統計モデル、状態空間モデルなども概要をざっくり紹介していくれているが、具体的にどういった特性があり、どういったデータ項目による実践的な時系列解析の局面で活用できるか、それらを証明し紐づける詳細解説までは言及されていない。そのため、別途、時系列解析や統計関連の書籍で各種モデルの知識を補完する必要がある。また、そういったモデル選定においても明示的なセオリーがあるわけでもなく、ある程度自分で解析観点を自分で目標設定して演習で感覚と経験をつかむ必要がある。したがって、時系列解析は初心者であるが、統計関連の知識はある程度前提を備えた読者が想定されている著作だと感じた。
統計の知識はある程度あって、時系列解析の初心者〜中級者で全般概要を知りたい人に価値が出てくる著作。
-----------
以下、内容メモ
1章:時系列の概論と簡単な歴史
時系列問題としての医学
正式な記録管理用のインフラが今までなかった
医師が統計的思考法の訓練を受けていたとしても、結論を引き出すのに十分なデータがなかった。
グラント:保険数理表>医学の問題に時系列の考えを適用した最初の結果の一つ
生命表: 17 世紀
年齢区間の死亡率と区間開始時の生存率
0-6, 6-16 17-26, 27-36
心電図、脳波計、各種時系列データ
従来は患者のみから取得
近年は健康な人、患者両方から良質で長期的なデータ収集を行う
>個人別にカスタマイズされた、遺伝子情報を用いたデータ駆動型医療へ
気象予測
物理法則と、実証済みの経験則を組み合わせ>現代の気象予測モデル
経済予測
天文学
時系列解析が可能になる技術の下地
・ウェアラブルデバイスから、大量のデータ取得
・機械学習技術
・GPUの進歩
----
2章:時系列データの見つけ方と前処理
UCI機械学習レオジトリ:80の時系列データを用意
発掘した時系列データ:
時系列解析用に配慮された記録でないが、時系列を構成するに足りる情報を持つ
欠損値を埋めてデータ整形する。
データのクリーニング
・欠損値
・時系列の頻度の変更
・データの平滑化
移動平均を用いれば、測定のスパイクや誤差などを除去できる
指数平滑法:時間が意識されており、最近の点ほど大きな重みを持つ
>長期トレンドがあるばあいは相性が良くない
ホルト法、ホルト-ウィニターズ法:トレンドと季節性があるデータに有効な指数平滑>法
・データの季節性の処理
散布図では季節性が視覚化しにくい>折れ線グラフにしてみて確認
・意図しない先読みの回避
ダウンサンプリング:データ頻度を減らす
アップサンプリング:データ頻度を増やす
-----
3章:時系列の探索的データ解析
・よく使われるデータの時系列への適用方法
探索的調査
・列の間に強い相関があるか
・注目している変数の全体的な平均値と分散はいくつか
>プロット描画、要約統計量の算出、ヒストグラムの適用、対象を絞った散布図の使用
時系列に向けた調査
・今見えている値の範囲はどのくらいか。範囲は期間や分析の他の論理単位とともに変化
するか
・データには整合性があり均質に即手されたように見えるか。それとも測定か挙動のどちらかに時間的変化があるように見えるか
>ヒストグラム、散布図、要約統計量などの手法に時間軸を織り込む必要あり
グループ化演算:
時系列データにも非時系列データ同様にグループが存在する
例:横断面データでは、年齢、性別、地区などのグループ平均をとる場合あり
月平均値や、週の中央値の計算などの探索的なグループ化演算が役に立つ場合あり
時間的グループと、非時間的グループの結合もできる。
>母集団における、性別ごとの月平均カロリー摂取量や、年齢別グループごとの入院患者の週の睡眠時間の中央値などが、その例。
データをグループ化することで、時間軸と、データにアルタの関連性を結びつける
ウィンドウ関数
ローリングウィンドウ:移動平均平滑化
>ノイズの多いデータのトレンドを探したり、線型的な挙動から外れた挙動が調べる
に値するかを判断するのに利用できる。
------------
4章:時系列データのシミュレーション
・ヒューリスティックシミュレション
我々が、世界がどう動くべきかを決め、整合性を確保し、規則を一つずつコード化
>非営利団体の怪異のメー開封と寄付行動の数年間のシミュレーション
我々の宇宙に、特定の規則で動く個々のファクターを作り、アクターを動作させて宇宙が
時間とともにどう変化するか様子を見る
・離散事象シミュレーション
>シフトが様々で集客頻度が時間帯に依存する1000台のタクシー群の1日の間の事象>のシミュレーション
・物理シミュレーション
物理法則を適用して、系の時間発展の様子を見る
>ある磁性個体の、特定の温度と大きさにおける段階的な状態変化のシミュレーション
・気象学、量子化学、プラブマ物理学:挙動の基本原則はわかっているが、方て式が複雑
なので、起こりうるすべてのことを考慮するのが難しい
・金融学、疫学:予測変数を全て知ることは不可能
def texi_id_number(num_taxis)
//被らない数列をnum_taxis分生成
//それをシャッフル
for i in ragnge(num_taxis)
yield arr[i]
//yieldで返答を遅延させ、num_taxis回数分呼び出したらStopIteration例外で停止する
//関数呼び出し(メイン処理)
ids = taxi_id_number(10)
print(next(ids))
print(next(ids))
....
----------
5章:時間データの保管
・SQLデータベース
・NoSQLデータベース
・フラットファイル形式
Numpy
pandas
Xarray
時系列に特化したDB
InfluxDB
Prometheus
各種必要なデータ項目のみクレンジングしたり、集約する手法の紹介
データベース:時系列データの保管にも優れている
時系列データ:データをまとめて時系列に書き出す>書き込むデータのクラスタ率も高くなる。読み込むより書き込む方が多い>NoSQLと相性が良い
-------
6章:時系列に使える統計モデル
・自己回帰モデル
・移動平均モデル
・自己回帰和文移動平均
・ベクトル自己回帰
・階層モデル
--------
7章:時系列に使える状態空間モデル
長所:
状態空間モデルは、決定論的モデルと確率論的モデルの両方に利用でき、連続的にサンプリングしたデータと離散的にサンプリングしたデータのどちらも適用可能
モデル化の工程で因果性のモデルを導入することで、そもそも何がその過程を生み出しているのか説明する。
短所:
柔軟性が高いため、パラメータが多く、状態空間モデルが取りうる形がたくさんある
>自分のモデルの性能や誤りなどを知りたくても、同じモデルが滅多になく、確実性が低い領域に踏み込みがち
パラメータ数が多いため、計算負荷が高い場合がある。
また、特にデータが少ない場合に過剰適合に弱くなる。
--------
8章:特徴量の生成と選択
時系列解析の機械学習の適用準備としての特徴量生成
先週の朝昼夜の気温:計21回計測
>以下のように圧縮
日時もしくは周期的
上昇トレンド、傾きを計算してより定量的に
朝、昼、夜それぞれの平均値
>こうすることで、21点の時系列を2から5個の数に要約できる。
特徴量の計算で一般に考慮すべきこと
・役立ちそうな特徴量の候補を挙げておく
>その時系列のラベルづけや予測に役立ち指標は何か、と発展的に考えられる
>背景知識や、以降の分析で試したい作業仮説も考慮
・定常性:多くの時系列特徴量は定常性を仮定している。
定常性は、全ての部分サンプルの平均値と分散が等しいことが要求される
・時系列の長さ:特徴量は定常時系列で意味をなすが、時系列の長さが伸びることで不安定になることがある。
・領域知識:領域知識によって何らかの洞察がもたらされる場合は、時系列特徴量生成の核とすべきもの
要約統計量
・平均値と分散
・最大値と最小値
・最後と最初の値の差
特徴量を視覚的に特定する
・極大と極小の値
・時系列の滑らかさ
・時系列の周期性と自己相関
時系列系特徴量生成ライブラリ:オープンソース
python : tsfreshモジュール
時系列解析のプラットフォーム:cesium
Rのtsfeaturesパッケージ
------
9章:機械学習による時系列解析
脳波時系列の生データを特徴量に変換する例
cesiumを使って特徴量抽出
特徴量はエルゴード的であるべき
クラスタリング
時系列クラスタリングは、分類と予測の両方に使える。
------
10章:ディープラーニングによる時系列解析
時間指向のニューラルネットワーク:RNN recurrent neural network
*画像処理の畳み込みニューラルネットワーク(CNN)ほど発展していない
人気のフレームワーク
・TensorFlow:Google
・MXNet:Amazon
・Torch:Facebook
活性化関数:非線形関数の紹介
・tanh
・ReLU
・SoftMAX
ニューラルネットワークの紹介
・CNN
・RNN
-------
11章:誤差の測定
シミュレーションを行ってモデルの不確実性の推定
複数タイムステップ先の予測
------
12章:時系列モデルの当てはめと提供の性能に関する考慮事項
より一般的なユースケース向けのツールを使って作業
・横断面データ用に構築されたモデルは、サンプルを超えてデータを共有しない
データ保存形式の長所と短所
・CVSなどのファイル形式より、バイナリ形式で保存
コンピュータが理解できるよういデータ変換不要:入出力処理高速化
手持ちの全データを使うことが必ずしも良いとは限らない
・ダウンサンプリング
・最近んおデータのみで訓練
複雑な解析モデルが複雑さに見合うほど成績が良いわけではない。
------
13章:ヘルスケア分野への適用
インフルエンザ予測
季節性ARIMAモデルの当てはめ
血糖値の予測
-----
14章:金融分野への適用
ディープラーニング用の金融データの前処理
RNNの構築と訓練
-----
15章:政府機関が公表する時系列
入手先について
-----
16章:時系列パッケージ
大規模予測について
Googleの予測ツール情報
FaceBookのオープンソースProphetパッケージ
Twitterのオープンソース異常値検出パッケージ
-----
17章:予測の予測
統計学と機械学習手法の組み合わせの増加について
以上。
へポスト
