【NumPy】移動平均の計算

この記事では、Python言語とNumPyを用いて、移動平均を計算する方法をソースコード付きで解説します。

移動平均の計算

移動平均とは、時系列データを決められた区間でずらしながら平均値を求めていく手法です。

【例】3点の移動平均線の場合
3点(前後1点ずつと中心点)の平均値を求めて、それを中心点の移動平均とします。

※株で使われている移動平均線は後ろの3点で計算

移動平均を作成すると、長期的な傾向を表す平滑化された曲線を求めることが出来ます。
株価予測などでよく用いられています。

PythonモジュールNumPyでは、numpy.convolveメソッドで移動平均を求めることが出来ます。

【書式】
numpy.convolve(ndaaray, karnel, mode)

引数 内容
ndaaray 時系列データ(配列)
karnel カーネル関数(何点で移動平均を求めるかで決定)
mode same:時系列データと同じ要素数で結果出力, valid:時系列データよりも短い要素数で結果出力

■返り値
移動平均の計算結果

ソースコード

サンプルプログラムのソースコードは下記の通りです。


mode=’valid’で計算したため、移動平均の結果は時系列よりも前1つ、後ろ1つ分少ない要素数で出力されています。
通常の移動平均は、前後の点を使います。
今回は3点の移動平均を計算しているので、時系列データの先頭・末尾だけは計算に必要なデータが不足するため、省略されています。
modeをsameにすると、バイアスをかけることで先頭・末尾の値も算出します。

【関連記事】
Python入門 サンプル集
NumPy入門 サンプル集

コメント