この記事では、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入門 サンプル集
コメント