見出し画像

LOD計算を自分が一番分かる形でまとめてみた(EXCLUDE)

こんにちは、momoです。

LOD計算シリーズの最終回は「EXCLUDE計算」です。

「自分が一番分かる形」にするまで
いちばん時間がかかりました。

というのも
EXCLUDE計算の動きは理解できても
なんでEXCLUDE計算である必要があるのか
しっくりくる具体例になかなか出会えずにおりました。

何とか、よし、と思えたものを書き残します。

■利用シーン
サンプルスーパーストアの注文情報を探索しています。
一番気になる指標 [売上(合計)] を
[サブカテゴリ] ごとに見てみます。

そして、[カテゴリ] ごとの平均線を加えて
[売上(合計)] と比較してみると
平均を超えている/超えていないサブカテゴリが分かりました。

画像1

でもこれだけでは、平均と加えて
どれだけプラス/マイナスなのか分かりません。

ここで力を発揮するのが「EXCLUDE計算」です。

■アウトプットイメージ

画像9

[サブカテゴリ] ごとの売上合計と
[カテゴリ]ごとの売上平均の差を表示しています。

最初に見たビューの
平均線と棒グラフの差分ということになります。

~ポイント~
・比較対象となる売上合計は [サブカテゴリ] の粒度で計算していること
・平均は [カテゴリ] の粒度で計算していること
・ビューの粒度は [サブカテゴリ]であること

■やること①
平均の対象となる
[サブカテゴリ] ごとの売上合計を求めます。

画像9


なぜFIXED計算を使う必要があるのかは
このあとを見ると分かります。

■やること②
①で求めた [サブカテゴリ別の売上合計] の
[カテゴリ] (VizLOD) ごとの平均を求めます。

ビューの粒度は [カテゴリ] と [サブカテゴリ]ですが
平均を求めるのに使うのは [カテゴリ] だけなので
ここでは[サブカテゴリ] を無視します。

画像9


~やること②を踏まえて~

[サブカテゴリ] を無視して平均を求めたい
一方で、平均のもととなる売上合計は
[サブカテゴリ] ごとに求めたい

この一見矛盾することを実現してくれるのが
「FIXED計算」です。

このような理由で
やること①の[サブカテゴリ] ごとの売上平均には
FIXED計算を使いました。

■やること③
[サブカテゴリ] (VizLOD) ごとの売上合計と
②で求めた[サブカテゴリ別売上合計の平均] の差を求めます。

画像9

集計同士の引き算にするために
EXCLUDE計算を集計関数(ここではATTR)で括っています。

■やること④
③で求めた [カテゴリ別平均売上との差] を
[サブカテゴリ] (VizLOD)ごとに表示します。

画像9

■完成!
[サブカテゴリ] ごとの売上合計と
[カテゴリ] ごとの売上平均の差を表示することができました。

画像9


■まとめ
EXCLUDE計算を使うと
(ビューにある粒度) - (EXCLUDEで指定したディメンション粒度)
で集計することができます。

ビューより粗い粒度で計算した結果が
ビューの粒度(VizLOD)にのせられるイメージ。

画像9

形式上「集計」としているものの

「粗い粒度のものを、細かい粒度に」なので
個人的には「のせる」という言葉が
イメージしやすく、この言葉を使っています。

この背景を踏まえると
通常はメジャーをプロットすると
デフォルトが「SUM」になる一方で

EXCLUDE計算のメジャーをプロットすると
デフォルトが「ATTR」になる理由も

なんとなく理解できる気がします。

「のせる」に対して
SUMやAVGよりはATTRを用いるほうが
違和感がない、と私の中では納得しました。

最後は、本シリーズの前半に書かせていただいた
おさらいのおさらいで締めくくりたいと思います。

FIXED計算:VizLODとは別に、LODを新たに定義して計算
INCLUDE計算:VizLODに、別の切り口を追加して計算
EXCLUDE計算:VizLODの、特定の切り口を無視して計算

~イメージ~

画像9


「自分が一番分かる形」での
ゆるりとしたまとめではありましたが

もし他の方の理解にも
お力添えできていましたら幸いです。

おしまい。


<参考> がねこ師匠のお教え
特に、元データ・VizLOD計算・LOD計算の
レイヤーを分けた考え方を参考にさせて頂きました。
分かりやすく、丁寧なご説明をありがとうございます。


この記事が気に入ったらサポートをしてみませんか?