
178
12 章 時系列分析
12.4
移動平均
ほとんどの時系列解析は、観察された時系列が次の
3
成分によってモデル化された
ものという仮定に基づいています。
傾向
永続的な変化を捕捉した滑らかな関数。
季節変動
周期的な変動で、日ごと、週ごと、月ごと、年ごとのサイクルを含む。
ノイズ
長期傾向に対するランダムな変動。
回帰は、前節で見たように時系列から傾向を抽出する
1
つの方法です。しかし、
傾向が単純な関数でなかったら、その代わりとして適切なのは移動平均(
moving
average
)です。移動平均は、時系列をウィンドウと呼ぶ互いに重なる領域に分割して、
各ウィンドウでの値の平均を計算します。
最も単純な移動平均の
1
つが、ローリング平均(
rolling mean
)で、各ウィンドウ
で値の平均を計算します。例えば、ウィンドウのサイズが
3
なら、ローリング平均は、
0
番から
2
番、
1
番から
3
番、
2
番から
4
番というようなデータ部分列の平均を計算
していきます。
pandas
には
rolling_mean
があり、時系列
Series
とウィンドウサイズを引数にとっ
て、新たな
Series
を返します。
>>> series = np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> pandas.rolling_mean(series, 3)
array([ nan, nan, 1, 2, 3, 4, 5, 6, 7, 8])
この最初の
2
つの値は
nan
†
で、その次が最初の
3
要素、
0, ...