はじめMath! Javaでコンピュータ数学

第58回 統計の数学 移動平均

この記事を読むのに必要な時間:およそ 3 分

バスケットボールでは,相手のフェイントに惑わされぬよう腰に注目します。どんなに激しく動いても,腰が動く先が相手の動く先だからです。柔道では釣り手(相手の襟をつかんだ手)の感覚に注意を払います。釣り手を通して伝わって来る相手の体(たい)の動きが,相手の技の全てを表しているからです。

とかく細かな動きにとらわれると,本質をとらえることが難しくなってしまいます。今回学習するのは,データの細かな変動を緩和し,生のデータからでは得られなかった傾向をつかむための便利な手段です。

図58.1 子細に惑わず本質を感じよ!

図58.1 子細に惑わず本質を感じよ!

移動平均

移動平均※1とは,細かな変動を含むデータをスムーズにする(平滑化する)方法です。

平均をとるというと,100個のデータの総計を,データの個数100で割って1つの値を得ることですが,これではデータ全体が増加傾向・減少傾向を持つのか,それともあるピークを持っている山形・谷型の分布を示すのかといった貴重な情報が失われてしまいます。

移動平均は,細かなギザギザを持つグラフになるデータを,なめらかな曲線のグラフになるデータに変換します。

ノイズの多い信号データを受け取った場合に,移動平均をとれば,ノイズの緩和されたデータに出来ます。

株価の細かな変動を平滑化して,ある区間での平均的な株価を得る場合にも利用されます。

図58.2に移動平均の取り方を示します。連続するデータのひとつDiに注目し,自分を含む周囲のデータの平均値をとります。この計算を次々と実行していった結果,グラフの形は凹凸の少ないものになります。

図58.2 移動平均とは

図58.2 移動平均とは

例えば時系列に並んだ100個のデータがあるとします。平均をとる範囲を5とすると,10番目のデータD10の値は,次の式で移動平均値に換算されます※2)。

先頭から順番にデータを処理する場合には,D8やD9の値に「移動平均をとる以前の値」を用いるように注意してください。また,別法として,「注目するデータの位置を含む前方(過去)範囲の平均を取る」ことも出来ます。こちらの方がアルゴリズムが単純です。

※1)
Moving Average
※2)
株価の世界では,直近10日間の移動平均値を用いるようです。この場合の移動平均値は本日を含めて過去10日間の値の平均です。

著者プロフィール

平田敦(ひらたあつし)

地方都市の公立工業高等学校教諭。趣味はプログラミングと日本の端っこ踏破旅行。2010年のLotYはRuby。結城浩氏のような仕事をしたいと妄想する30代後半♂。

コメント

コメントの記入