Previous: mmbucket 多次元均等化バケット分割 Up: コマンドリファレンス Next: mmvsim 移動窓の類似度計算 MCMD2
MCMD2 : コマンドリファレンス : mmvavg 移動平均の算出

3.29 mmvavg 移動平均の算出

移動平均(moving average)を算出する。 移動平均としては、単純移動平均($SMA$)、線形荷重移動平均($WMA$)、指数平滑移動平均($EMA$)の3種類の移動平均が計算可能である。

ある時$t$における値を$x_ t$で表したとき、$m$期の各種移動平均は式(3.1,3.2,3.3)で定義される。

  $\displaystyle  SMA_ t=\frac{1}{m} \sum _{i=0}^{m-1} x_{t-i} \label{eq:sma}  $   (3.1)
  $\displaystyle  WMA_ t=\sum _{i=0}^{m-1} \frac{m-i}{S} x_{t-i},\  \  S=\sum _{i=1}^ m i \label{eq:wma}  $   (3.2)
  $\displaystyle  EMA_ t=\alpha x_ t + (1-\alpha )EMA_{t-1} \label{eq:ema}  $   (3.3)

書式

mmvavg [s=] [k=] [n=] f= [t=] [-exp|-w] [alpha=] [skip=] [i=] [o=] [-assert_diffSize] [-assert_nullkey] [-assert_nullin] [-assert_nullout] [-nfn] [-nfno] [-x] [-q] [tmpPath=] [precision=] [--help] [--helpl] [--version]

パラメータ

s=

ここで指定した項目(複数項目指定可)で並べ替えられた後、移動平均が計算される。

 

-qオプションを指定しないとき、s=パラメータは必須。

k=

ここで指定された項目(複数項目指定可)を単位として集計する。

f=

移動平均を求める項目名リスト(複数項目指定可)を指定する。

t=

期間数を1以上の整数で指定する。

 

-exp指定時にalpha=を指定すればt=は指定できない。

-w

線形加重移動平均を求める。

-exp

指数平滑移動平均を求める。

alpha=

-expが指定された時の平滑化係数を実数値で与える。

 

省略時はalpha=2/(t=の値+1)。

skip=

出力を抑制する最初の行数。

 

デフォルト値: skip=(t=の値-1), -expが指定された場合はskip=0

利用例

例1: 基本例

最初の行は期数に満たないため出力されない。

$ more dat1.csv
id,value
1,5
2,1
3,3
4,4
5,4
6,6
7,1
8,4
9,7
$ mmvavg s=id f=value t=2 i=dat1.csv o=rsl1.csv
#END# kgmvavg f=value i=dat1.csv o=rsl1.csv s=id t=2
$ more rsl1.csv
id%0,value
2,3
3,2
4,3.5
5,4
6,5
7,3.5
8,2.5
9,5.5

例2: 基本例2

最初の行は期数に満たないため出力されない。

$ mmvavg s=id f=value t=2 -w i=dat1.csv o=rsl2.csv
#END# kgmvavg -w f=value i=dat1.csv o=rsl2.csv s=id t=2
$ more rsl2.csv
id%0,value
2,2.333333333
3,2.333333333
4,3.666666667
5,4
6,5.333333333
7,2.666666667
8,3
9,6

例3: 基本例3

指数平滑移動平均(-exp)の場合は最初の行から出力される。

$ mmvavg s=id f=value t=2 -exp i=dat1.csv o=rsl3.csv
#END# kgmvavg -exp f=value i=dat1.csv o=rsl3.csv s=id t=2
$ more rsl3.csv
id%0,value
1,5
2,2.333333333
3,2.777777778
4,3.592592593
5,3.864197531
6,5.288065844
7,2.429355281
8,3.47645176
9,5.82548392

例4: キーを指定する例

$ more dat2.csv
id,key,value
1,a,5
2,a,1
3,a,3
4,a,4
5,a,4
6,b,6
7,b,1
8,b,4
9,b,7
$ mmvavg s=key,id k=key f=value t=2 i=dat2.csv o=rsl4.csv
#END# kgmvavg f=value i=dat2.csv k=key o=rsl4.csv s=key,id t=2
$ more rsl4.csv
id,key,value
2,a,3
3,a,2
4,a,3.5
5,a,4
7,b,3.5
8,b,2.5
9,b,5.5

例5: 指定した期に満たなくても出力する例

$ more dat3.csv
key,value
a,1
a,2
a,3
a,4
a,5
b,6
b,1
b,4
b,7
$ mmvavg -q k=key f=value t=2 skip=0 i=dat3.csv o=rsl5.csv
#END# kgmvavg -q f=value i=dat3.csv k=key o=rsl5.csv skip=0 t=2
$ more rsl5.csv
key,value
a,1
a,1.5
a,2.5
a,3.5
a,4.5
b,6
b,3.5
b,2.5
b,5.5

関連コマンド

mmvstats : 平均だけでなく、各種統計量を指定可能。

mmvsim : 2変量の統計量を計算する。

mwindow : 動窓のデータを作成するので、そのデータを使えばmmvstatsで計算できない統計量も計算可能。

Previous: mmbucket 多次元均等化バケット分割 Up: コマンドリファレンス Next: mmvsim 移動窓の類似度計算 MCMD2