時系列データとは,音,電圧,センサ値,レーダー値,電波など,ある時間に対する状態や量を表すデータのことです.日常生活の中では,気温,株価など,時間によって変動する値が該当します.
研究で,センサ値のデータ分析を扱うことになったため,勉強した内容をまとめ,同じような分析を必要とする人に役立ててもらおうと思い書き始めることにしました.(このページに,書いた内容のリンクを次々貼っていき,最終的にシラバスのようにしたいと思います).
対象とする方
- 時系列データを扱う方
- 時系列データをもとにした異常検知などを行う方
- データが不足しており,機械学習モデルを構築するには膨大な時間がかかりそうな方
Contents
方針
巷に出回っている時系列データの本は,主に機械学習モデル,または統計モデルの専門的な内容に特化したものが多く,その手前で得られる基本的な統計量に関する情報・処理方法のノウハウに関する情報はあまりありません.
また,時系列データとタイトルにあるけれども,よく読むと文字列のことに特化していたりして,センサ値などの分析には使えない手法がまとまっていることがあります.
パフォーマンスのみを求める状況であれば,いきなり機械学習を使うのもいいとは思いますが,
- なぜそのような結果が得られたのか説明が必要になる場合
- データが十分に揃っていない分野で分析をしたい場合
は,初めて分析をする人でも実現できるレベルに落として,小さく始めて検証をしたいところです.
このブログでは,機械学習や統計モデルの手前に位置するような基本的な内容で,かつあまりまとめられていないものからはじめて,時系列信号の分析・利用方法をマスターしていく形にしようと思います.
取り上げる時系列データは,主にセンサ値を対象とし,株価や気温,収穫量など,各データの時間幅が広い例は示さない予定です.文字列のように,時間とは対応しないデータも対象外とします(自然言語処理の本は豊富にあるため).
使用する言語
- Python3
- MATLAB
記事一覧
更新したらここに記事のリンクを貼っていきます.予定は以下のとおりです.
- 時系列信号の基本統計量と使い方(時間領域)
- 時系列信号の周波数表示(スペクトラムの単位と,その違いについて)
- 時系列信号の基本統計量と使い方(周波数領域)
- 変動・ノイズ除去(移動平均・平滑化)
- 変動・ノイズ除去(周波数フィルタ編)
- しきい値の設定方法(固定値・ヒステリシスの利用)
- しきい値の設定方法(変動)
- 自己回帰モデル(ARモデル・MAモデル)
- 自己回帰モデル(ARMAモデル,ARIMAモデル)
- 状態空間モデル(マルコフモデル)
- 状態空間モデル(線形ガウスモデル)
- 状態空間モデル(カルマンフィルタ)
- 機械学習モデル(HMM・RNN・LSTM)
- 異常検知(ピーク検出・変化検出)
- 異常検知(自己回帰モデルの利用)
- パターンマッチング1(DTWのアルゴリズム)
- パターンマッチング2(DTWによるジェスチャー検知など)
- 予測(統計モデルを用いる方法)
- 予測(機械学習を用いる方法)
- 総まとめ
分類
時系列信号を扱う上で,データ分析の手法の分類方法について,あると便利だなと感じたものをまとめておきたいと思います.書いた記事には,以下の分類をはっきりさせながら書いていこうと思います.
どの時系列データにも適用できそうかどうか?
- General: どの時系列信号にも使えそうな手法
- Specific: 特定の時系列信号にしか意味がない(かもしれない)手法
データ分析の段階・目的による分類
- ノイズ除去・変動除去
- 特徴抽出
- 異常検知・変化検知
- 分類
- 推定
- 予測
特徴抽出をする方法による分類
- TIme(時間に関するもの)
- Frequency(周波数に関するもの)
- ML系(機械学習モデルを使うもの Auto Encoderなど)
しきい値の設定方法による分類
- 手動(固定)
- 手動(ヒステリシスを設ける方法)
- 自動
変動除去・ノイズ除去の方法による分類
- 統計Filter・移動平均・平滑化 を用いる方法(Mean Filter / Median Filter)
- 周波数FIlterを用いる方法(Low pass filter / Bandpass Filter / Highpass Filter)
異常検知・変化検知の手法による分類
- ピーク検出
- モデルの利用(自己回帰など)