2017-12-29 85 views
1

私は変化している値の平均を計算しようとしています。以前の値をすべて配列に格納せずに反復処理したいと思います。これは正確な平均または指数移動平均式ですか?

Iこの式でnはvalueに対する変更の数である

avg = avg + (value - avg)/n 

を発見しました。

TL; DR

私の質問、この式は、それが異なる結果を与える可能性がある場合、または (私はそれらを比較するときであることをそれはそう)の平均を計算 の通常の方法と同じである場合であります特定の状況下で?

私はこの数式の正しい名前がわかりません - 「平均実行時間」、「平均移動時間」、「移動平均」などを見ました。その結果はまったく同じようですvalueを合計して合計し、nで割ったもの、つまり「通常の平均」で計算されます。

私は、過去の値のサブセットを使用して平均を計算します。他の人は、それがexponential moving average (see comment by Julia on OP)と答えています。

+0

移動平均を計算するには、平均を計算するウィンドウ内にある値の数を少なくとも格納する必要があります。これまでのすべての値の平均値は、すべての値を格納せずに計算できます。 – MrSmith42

答えて

2

この式は、平均を計算する通常の方法と同じですか?

avgが最初に0に設定されている場合、この式は実際には最初のn個のサンプルの合計を計算します。

n = 1の場合1つのサンプルの平均としてうまくいくので、それは明らかに真である:

より大きい値を
avg' = avg + (value - avg)/n 
    = 0 + (value - 0)/1 
    = value 

、それはN-1についても同様であると仮定する(すなわち、平均=(X [1] + .. + x [n-1])/(n-1))となる。そして

avg' = avg + (x[n] - avg)/n 
     = (n-1)*avg/n + x[n]/n 
     = (x[1]+...+x[n-1])/n + x[n]/n 
     = (x[1]+...+x[n])/n 

そこで平均の新しい値はまた、最初のn個のサンプルの平均に等しいです。

これは移動平均ですか?

通常、移動平均によって人々はsimple moving averageを参照しています。

この式は、実際にはcumulative moving averageとして知られています。