0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Oracle Analytics Cloud:移動平均 PeriodRollingとMAvg

Posted at

はじめに

別の記事で、Oracle Analytics Cloud(OAC)に用意されているPeriondRolling関数で移動平均を求める方法を紹介しました。
そもそも、OACには移動平均を計算するためにMavg関数が用意されています。
PeriodRolling関数を使用した移動平均と、Mavg関数の挙動の違いを紹介します。

PeriodRolling関数

こちらの記事で紹介したように、検索に含まれる時間レベルを自動的に判定した上で、指定した開始期間から終了期間までを集計する関数です。

この関数は時間列(または時間階層)を必要とします。
PeriodRolling関数を使用して移動平均を求めることができます。

PERIODROLLING(Sales, -2, 0)/3

この例では、Salesメジャーを -2期間前から現在期間(つまり0)まで集計し、3で割り算しています。
期間の単位は、検索に含まれる時間レベルの最小単位を自動的に判定します。
「年」のみ含まれていれば、期間の単位も年となります。
現在年(現在行)が2024年だとすると、2024が0期間、2023が-1期間、2022が-2期間ということで、3年分となります。
なので、上記例では3で割っています。

検索に「年」と「四半期」が含まれていれば、四半期の方が時間レベルとしては詳細なので、期間の単位は四半期になります。
この場合は、現在行の四半期が2024年Q2だとすると、2024/Q2が0期間、2024/Q1が-1期間、2023/Q4が-2期間を表します。

MAvg関数

移動平均を求めるための関数です。
引数は、集計する列と整数値です。
現在行から整数値の行だけ遡った値の平均を計算します。
時間列は必要ありません。

MAVG(Sales, 3)

現在行を含め3行遡った分だけ集計します。

違いを見てみる

表で並べて表示してみると、最初の2行の値が違います。
3行目以降は同じ値になっています。
image.png

最初の2行に着目します。

Order Date (年) Order Date (四半期) Sales Sales移動平均 (3期間) MAVGによる移動平均
2013 四半期1 2013 407,535.70 135,845.23 407,535.70
2013 四半期2 2013 361,638.70 256,391.47 384,587.20

PERIODROLLING関数を使用して計算した最初の行は、135845.23 となっています。
これは、-2期間前と-1期間前の値がないため、現在期間である407,535.70を3で割った値です。
一方、MAVG関数で計算した最初の行は 407,535.70となっており、現在期間の値と同一です。
これは、前2期間の値がないので現在値をそのまま表示しています。

2行目を見てみます。
PERIODROLLING関数を使用した式では、-2期間前のデータは無いので-1期間前と0期間(すなわち現在期間)の集計をして3で割っています。
MAVG関数は、-2期間前のデータは無いので-1期間前と0期間(すなわち現在期間)の集計をして、期間数である2で割っています。

というわけで、3行目以降は同じ値になります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?