見出し画像

TableauのLOD計算を立体的にイメージしてみる。

こんにちは。
今回は、TableauのLOD計算について俯瞰的に理解することを目指し、記事を書かせて頂きます。Exclude、Include、Fixedに分け、Tableauの中でどのような事が行われているかを、図解でイメージしてみたいと思います。

なお、TableauのLOD計算に関しては、既に多くの方が有益な資料をまとめて下さっています。残念ながら、その全てをご紹介することは出来ませんが、この記事の最後にまとめております。

また、今回の記事を書くうえで、下記4点の資料を図解や用語の参考にさせて頂きました。御礼申し上げます。

Tableauから始めるデータサイエンス さんLOD計算関連 Tweet
https://twitter.com/datarockstartky/status/1262023515105947648
https://twitter.com/datarockstartky/status/1263494934545358848

Data viz labo 's Blog produced by Path

Yoshi's Tableau Noteより、以下2記事https://www.yarakawa.com/post/lod_calculations
https://www.yarakawa.com/post/nested-lod-calculation

画像12

=============================================

繰り返しになりますが、今回の記事は、LOD計算を利用している際に感じる「データがどこでどう集計されているのか良く分からない。」という疑問に対し、Tableau内での処理をイメージで理解することを目的としています。

そのため、データソース内の細かい数字やフィールド名などは、あえて記述しません。ざっくりとイメージで書かせて頂きます。

データソース内のディメンションを使った粒度(LOD)を表現する際は、色と線で描きます。

例えば、こんな感じです。
「サンプルスーパーストアデータを、ディメンション [カテゴリ] 毎に分け、メジャー [売上] を集計した。」
この事を、次のように表現します。
「データソースを、ディメンション「青」の粒度(LOD)で分け、集計した。」
図にすると、下図のようになります。

画像4


では、ここから本題に入ります。

今、あるデータソースを「青」「オレンジ」の粒度で分け、集計しています。

画像4

ちょうど、データソースからデータが流れてきて、ディメンション[青]と[オレンジ]の線によって区切られた箱に分けられている、そんなイメージです。これら一つ一つの箱の中のレコードのメジャーが集計されています。

この、「青」「オレンジ」の粒度、つまりこのVizで利用されている粒度を、他の記事(Path社 Blog)に習い「Viz LOD」と呼ぶことにしましょう。

次に、LOD計算のExcludeを利用した計算式を考えてみます。

オレンジのディメンションをExcludeした計算式、名付けて
「Exclude オレンジ」
です。

画像6

「Exclude オレンジ」計算は、ディメンション「オレンジ」を粒度から外しています。つまり、Viz LODの粒度よりも粗い粒度になり、その中で集計を行っています。

この「Exclude オレンジ」を、Vizに利用したイメージが下図になります。

画像5

「Exclude オレンジ」計算を、Viz LODに反映させるため、集計が必要になります。しかしながら、Exclude計算の結果は常にViz LODより粗い粒度で計算されているので、そのままViz LODに反映させることが可能です。言い換えれが、合計しても、平均をとっても、最大値をとっても、最小値をとっても、どれも結果は同じです。どんな集計をしても結果は同じですので、Tableauは、Exclude計算についてはデフォルトで「属性」を集計方法としています。
そのため、Exclude計算を利用した計算式を、列や行、マークカードに持って行ったときに「属性(・・)」となるのです。
(補足:TableauのHelpページによると「属性」と表示はするが、実際には集計計算を行っていない旨、書かれています。本noteではこの挙動も含めてシンプルに理解するために、「属性」で集計している、と記載しました。)


次は、Include計算です。

今度は、緑のディメンションをIncludeした計算式、名付けて
「Include 緑」
です。

画像14

「Include 緑」計算は、Viz LODにディメンション「緑」を粒度をして追加しています。そして、この細かくなった粒度の中で、集計が行われています。(補足:この「Include 緑」は、他の資料において「中間テーブル」と表現されているものを、格子状に示したものと考えて頂いても大丈夫です。)


では、この「Include 緑」をVizに使ってみましょう。

画像8

上図のように、「Include 緑」をViz LODに反映させるとき、Viz LODの一つの箱に対応する「Include 緑」の値が2つあります。
「Exclude オレンジ」の時のように「属性」集計を使い、そのまま値を利用することは出来ません。合計、平均、最大値、最小値など、なんらかの集計方法を指定してあげる必要があります。なお、Tableauのデフォルトでは、これらの集計方法のうち「合計」が選ばれるようになっています。


最後は、Fixed計算の例です。

作った計算式は、青と紫のディメンションでのFixed計算式、名付けて
「Fixed 青、紫」
です。

画像13

ポイントは、ExcludeやIncludeとは違い、Viz LODとは関係なく粒度が決まり集計が行われている点です。
図の中でも、左側にViz LOD、右側に「Fixed 青、紫」と、離して描いてみました。

また、「Fixed計算はディメンションフィルターの前に計算される。よってディメンションフィルターはFixed計算にはかからない。」という事実がありますが、上図のように、そもそもViz LODとは別の場所で計算されていると考えると、イメージがつきやすいかもしれません。

さて、では、この「Fixed 青、紫」をVizに使ってみましょう。

画像13

ちょっと、複雑な図になりました。
Fixed計算の結果をViz LODに反映させる際、もう一度集計が必要かどうかは、Fixed計算の粒度とViz LODの関係によって決まります。なので、時と場合によって変わります。
上図の例で「Fixed 青、紫」の計算結果を、Viz LODに反映する場合、「Fixed 青、紫」の2つの箱の値の何らかの方法でもう一度集計し、その結果を、Viz LODの3つの箱にそれぞれ反映させることになります。
Fixed計算の結果を集計する方法としても、Tableauはデフォルトで「合計」を選ぶようになっています。

以上が、Exclude、Include、Fixed、それぞれのLOD計算を俯瞰的にとらえるイメージでした。
LOD計算の中にLOD計算を使うような「ネストされたLOD計算」、他の集計計算に複数のLOD計算を利用するといった場面でも、本質的には同イメージのことが行われていると考えて良いと思います。

以上、LOD計算を理解する何らかの助けになれば幸いです。

ここからは、おまけになります。

ここまでは、Exclude、Include、Fixed計算を、Vizに持ってくる、あるいは他の集計計算に利用するといった場合のイメージでした。

実は、Exclude、Include、Fixed計算は、行レベル計算式の中に利用することも可能です。

この時のイメージは、上記で紹介したイメージとは少し異なるので参考として載せておきます。

Exclude

画像11

Include

画像12

Fixed

画像13


Exclude、Include、Fixed計算の結果を行レベル計算式に利用する場合、行レベルは最も細かい粒度ですので、あたらめて再度集計を行う必要はありません。
「Exclude オレンジ」「Include 緑」「Fixed 青、紫」、それぞれの粒度の箱の中に含まれる全てのレコード(行レベル)に、そのまま、対応する各LOD計算の結果が反映されることになります。

特に、Fixed計算についてはViz LODに関わらず、全てのレコード(行レベル)に反映される値が決定されています。このことは、Fixed計算のみビンを作成できることと関係していると思います。


以上、大変長くなりましたが、LOD計算を俯瞰的にイメージでとらえる事を意識し、書かせていただきました。

ここまで、読んでいただき誠にありがとうございます。

ritz_Tableau
Twitter : @ritz_Tableau


参考:LODに関するWebページ
あわせて、こちらもご参考下さい。

Yasushi Ishikawaさん LOD計算解説
(本記事執筆後追加)
「LOD calculation を自分だったらどう説明するのか考えてみた」


Tableau ホワイトペーパー「詳細レベル(LOD)表現について」「LOD 表現トップ15]


エクスチュア社 Blog


Tabjo Note
https://note.com/tabjo/n/nc4632b784274
https://note.com/tabjo/n/ne70ebb8460e9

画像13



By ritz_Tableau
Tableau Zen Master | Tableau Public Ambassador |
Tableau Certified Professional | Data Saber
Twitter : @ritz_Tableau



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