1
九州大学大学院システム情報科学研究院
データサイエンス実践特別講座
データサイエンス概論第一
第5回 時系列データの解析
システム情報科学研究院情報知能工学部門
内田誠一
2
データサイエンス概論第一の内容
 データとは
 データのベクトル表現と集合
 平均と分散
 データ間の距離
 データ間の類似度
 データのクラスタリング
(グルーピング)
 線形代数に基づくデータ解析の基礎
 主成分分析と因子分析
 回帰分析
 相関・頻度・ヒストグラム
 確率と確率分布
 信頼区間と統計的検定
 時系列データの解析
 異常検出
3
フーリエ解析
ベクトルの分解と合成がわかっていれば,恐れるに足らず!
時系列データもベクトル.同様に分解合成できるんです.
44
【再掲】時々刻々と得られる系列データ
=時系列データ
 動画像
 行動,ジェスチャ,歩行,ゲーム操作
 音声信号.対話系列
 心拍数変化,呼気量変化
 環境中のNOx濃度変化,気温変化
 10年ごとに測定した世界人口
時間
姿勢(左手高さ)
5
周波数=繰り返し周期の逆数
周波数低い
周波数高い
6
驚きの事実:時系列データは,
周波数の異なるsin波・cos波の和に分解可能!
=
+
+
+
...
時間 t
t
t
t
どんなに
不規則そうな
時系列データでも
規則的な成分に
完全に分解できる!
7
思い出そう...
材料セット
𝒆1, … , 𝒆𝑖, … , 𝒆 𝑑
カレー𝒙
𝛼𝑖 = 𝒙 ∙ 𝒆𝑖 ⋮
→ 𝛼1 グラム
→ 𝛼𝑖 グラム
⋮
→ 𝛼 𝑑 グラム
レシピ(分析結果)
𝛼𝑖 𝒆𝑖
あの味を完璧に再現できた!
8
全く同じ話です
材料セット
𝒆1, … , 𝒆𝑖, … , 𝒆 𝑑
時系列カレー𝒙
𝛼𝑖 = 𝒙 ∙ 𝒆𝑖 ⋮
→ 𝛼1 グラム
→ 𝛼𝑖 グラム
⋮
→ 𝛼 𝑑 グラム
レシピ(分析結果)
𝛼𝑖 𝒆𝑖
あの時系列カレーを完璧に
再現できた!
時間 t
9
要するにこれがレシピです
9
低周波数 高周波数
10
レシピをいじって「味」の調節:
グラフィックイコライザー
10
Modified from Rodrigo César@ Wikimedia “Stereo graphic equalizer”
⋮
→ 𝛼1 グラム
→ 𝛼𝑖 グラム
⋮
→ 𝛼 𝑑 グラム
レシピ(分析結果)
ちょっと増やす
ちょっと減らす
かなり減らす
11
特定周波数成分の抽出
=ベクトルの分解と同じく「内積」
同じ時刻同士で
掛け合わせたものを
足し合わせる!
𝑥 𝑡 cos 𝜔𝑡 𝑑𝑡
cos 𝜔𝑡
𝑥 𝑡
𝑡
時刻𝑡を変えながら全部足す
12
参考:フーリエ変換
𝑥 𝑡 と cos 𝜔𝑡 の内積 𝑥 𝑡 と sin 𝜔𝑡 の内積
𝑋 𝜔 = 𝑥 𝑡 cos 𝜔𝑡 − 𝑗 sin 𝜔𝑡 𝑑𝑡
= 𝑥 𝑡 cos 𝜔𝑡 𝑑𝑡 − 𝑗 𝑥 𝑡 sin 𝜔𝑡 𝑑𝑡
𝑑𝑡 ↔ 時刻𝑡を変えながら全部足す
13
参考:フーリエ逆変換
分量(レシピ) 各材料
𝑥 𝑡 = 𝑋 𝜔 cos 𝜔𝑡 + 𝑗 sin 𝜔𝑡 𝑑𝜔
𝑑𝜔 ↔ 材料𝜔を変えながら全部足す
1414
参考:フーリエ基底
cos/sin関数に分解して戻る
=cos/sin関数は「完備正規直交基底」
フーリエ基底とも呼ばれます
他にもいろいろな完備正規直交基底が存在
以前見た以下のものは2次元離散cos関数
http://www.matsusaka-u.ac.jp/~okumura/compression/dct.html
15
時系列データ間の距離
時系列データもベクトル.だから距離が測れる.
ただし長さが違う2データの距離を測るには,ちょっと一工夫必要
16
時系列データ間の距離を測る(1/3)
時間
時系列データ𝑌
時系列データ𝑋
ユークリッド距離などで差異・類似度を定量化可能
17
時系列データ間の距離を測る(2/3)
非線形伸縮
時間
データ長の違い
× × × ×
時系列データ𝑌
時系列データ𝑋
通常の距離尺度は利用できない!
18
時系列データ間の距離を測る(3/3)
適切な時刻対応が得られれば
長さが異なっても距離が測れる!
時間
時系列データ𝑌
時系列データ𝑋
1919
【再掲】距離がわかると何に使えるか?
実は超便利! (1/2)
データ間の比較が定量的にできる
「𝒙と𝒚は全然違う/結構似ている」 「𝒙と𝒚は28ぐらい違う」
「𝒙にとっては,𝒚よりも𝒛のほうが似ている」
データ集合のグルーピングができる
似たものとどおしでグループを作る
データの異常度が測れる
他に似たデータがたくさんあれば正常,
一つもなければ異常
[Goldstein, Uchida, PLoSONE, 2016]
2020
【再掲】距離がわかると何に使えるか?
実は超便利! (2/2)
データの「認識」ができる
登録されている画像データ中で, 画像𝒙に最も似ているものは「リン
ゴ」だった
→ 「画像 𝒙 はリンゴ」と判断
近似精度が測れる
データ 𝒙を 𝒚で近似(代用)した時の誤差 → 𝒙 と 𝒚の距離に等し
い
... and more!
21
Ex. 時系列データのクラスタリング
すべての2系列間
の類似度を求める
いくつのクラスタが形成
されるかも重要な知見
22
適切な時刻対応はどうやったら見つかるか?
適切な時刻対応が得られれば
長さが異なっても距離が測れる!
時間
時系列データ𝑌
時系列データ𝑋
23
適切な時刻対応はどうやったら見つかるか?
以下のような格子面を考えてみる
Y
時間
時間
X
24
Y
時間
時間
X
適切な時刻対応はどうやったら見つかるか?
時刻対応が「経路」としてあらわされる
𝑋と𝑌の間の時刻対応
X
Y
25
Y
時間
時間
X
適切な時刻対応はどうやったら見つかるか?
時刻対応が「経路」としてあらわされる
別の時刻対応
X
Y
別の経路
26
適切な時刻対応はどうやったら見つかるか?
「適切な時刻対応」=「低コストな経路」
X
Y
27
Y
時間
X
適切な時刻対応はどうやったら見つかるか?
「適切な時刻対応」=「低コストな経路」
経路上のコストの総和
=時系列𝑋, 𝑌間の距離
これを最小にする経路
=ベスト!
28
時間
すべての経路を総当たり?
ナンセンス!
𝑋の長さ=𝑌の長さ = 10でも,1010
通りの経路
(実際にはもっと少ないが,それでも相当の選択肢)
29
最適経路は簡単に求まる:
動的計画法
29
5 5 5 1 5
2 2 0 5 0
0 0 2 5 2
2 2 0 5 0
0
End
Start
5
i
j
30
5 5 1 5
2 0 5 0
0 2 5 2
2 0 5 0
0
最適経路は簡単に求まる:
動的計画法
30
5+∞
2+∞
0+0
2+∞
i
j
31
0
最適経路は簡単に求まる:
動的計画法
31
5 5 1 5
2 0 5 0
0 2 5 2
2 0 5 0∞
∞
∞
0
i
j
32
0
最適経路は簡単に求まる:
動的計画法
32
5+0 5 1 5
2+0 0 5 0
0+0 2 5 2
2+∞ 0 5 0∞
∞
∞
0
i
j
33
0
最適経路は簡単に求まる:
動的計画法
33
5 5 1 5
2 0 5 0
0 2 5 2
∞ 0 5 0∞
∞
∞
0
i
j
34
0
最適経路は簡単に求まる:
動的計画法
34
5 5+0 1 5
2 0+0 5 0
0 2+0 5 2
∞ 0+2 5 0∞
∞
∞
0
i
j
35
0
最適経路は簡単に求まる:
動的計画法
35
5 5 1 5
2 0 5 0
0 2 5 2
∞ 2 5 0∞
∞
∞
0
i
j
36
0
最適経路は簡単に求まる:
動的計画法
36
5 5 1+0 5
2 0 5+0 0
0 2 5+2 2
∞ 2 5+0 0∞
∞
∞
0
i
j
37
0
最適経路は簡単に求まる:
動的計画法
37
5 5 1 5
2 0 5 0
0 2 7 2
∞ 2 5 0∞
∞
∞
0
i
j
38
0
最適経路は簡単に求まる:
動的計画法
38
5 5 1 5+1
2 0 5 0+5
0 2 7 2+7
∞ 2 5 0+1∞
∞
∞
0
i
j
39
0
最適経路は簡単に求まる:
動的計画法
39
5 5 1 6
2 0 5 5
0 2 7 9
∞ 2 5 1∞
∞
∞
0
i
j
40
0
最適経路は簡単に求まる:
動的計画法
40
5 5 1 6
2 0 5 5
0 2 7 9
∞ 2 5 1∞
∞
∞
0
i
j
1
最小
コスト
41
6
5
9
5
7
5
5
2
2
0
最適経路は簡単に求まる:
動的計画法
41
1
0
0
5
2
∞ 1∞
∞
∞
0
i
j
1
最小コスト
=𝑋, 𝑌間の
距離
最適経路
42
適切な時刻対応が求まった
=時間変動が求まった
時間
時系列データ𝑌
時系列データ𝑋
𝑌に比べて速度半分
4343
2点の補足
以上の方法は,分野によって色々な呼ばれ方をします
Dynamic time warping (DTW)
編集距離 (edit distance)
非線形マッチング (nonlinear matching)
弾性マッチング (elastic matching)
アライメント (alignment)
DPマッチング(Dynamic programming matching)
「時系列」ではない一般的な「系列データ」にも使えます
文字列や記号列にも
DNAの塩基配列にも

データサイエンス概論第一 5 時系列データの解析