詳細レベル表現について
Tableau は、快適な操作でデータ分析を行えるようにすることを目標にしています。 Tableau を使ったデータ分析に夢中になると、製品の使用方法について考えなくなり、ただデータに問いかけることが楽しくなってしまうという声をよく聞きます。 私たちはこの状態をフロー (流れ) と呼んでいます。作業に夢中になって没頭している状態のことです。
問題を解決するためにツールの使用方法を考えるようになると、フローの状態が壊れてしまいます。
このようなことが起きる原因の1つに、異なる詳細レベルで集計されたデータで作業しなければならないという点があります。 このような場合、質問を考えるのは簡単でも、答えを見つけるのが難しいということがよくあります。 たとえば、次のような質問が考えられます。
こういったタイプの質問を処理するために、Tableau 9.0 には詳細レベル (Level of Detail, LOD) 表現と呼ばれる構文が新たに導入されました。 この新しい構文により、詳細レベルが関わる質問を直接処理できるようになるため、Tableau の計算言語が簡略化されるとともに、その機能も拡張されます。
LOD 表現を使えば、複数レベルの粒度を1つのビジュアライゼーションにまとめることができ、洗練された方法で高度な分析にも対応できます。
データを分析するうえで重要になってくるのが、ソースとなるデータの構造を理解することです。 たとえば、レストランの調査データがあるとします。このデータで最も粒度の高い(最も詳細な) 情報は住所です。 そのデータを集計し、郵便番号、都市、州、さらには国別のプロパティを表示するとします。
通常、Tableau でこのような作業を行う場合は、関心のあるディメンション (City (都市)、State (州) など) をビューにドロップします。 ビューに追加するディメンションに応じて、データが適切に集計されます。この時に集計されるレベルが「Viz 詳細レベル」 (略して Viz LOD) です。
ディメンションをページ、フィルター、ツールヒントに配置しても Viz LOD には追加されない。 これらのシェルフに配置したディメンションは、ビュー内のデータの修正に使用されるが、ビューに表示されることはない。
ここで重要なのは、 LOD 表現を使用すると、これらのディメンションをビジュアライゼーションにドロップしなくても、計算で使用する詳細レベル (ディメンションなど) を決定できるということです。 つまり、Viz LOD とは関係なく、計算を実行する詳細レベルを定義できます。次の例では (レストランの調査データを使用)、ビューにCity (都市) とState (州)]の2つのディメンションが追加されています。
ビュー内のデータは Viz LOD (この場合は City (都市)とState (州)で構成される)に基づいて集計され、参照元のデータソースよりも集約度が高く集計されています。 画像内で選択されたポイントには、エディンバラのニューブリッジにあるすべてのレストランのファンの平均人数が表示されています。より粒度の高い (細かい) ディメンションをビューに追加すると、集約度の低い Viz LOD となります。 たとえば、各レストランのファンの平均人数を表示するには、Business ID (ビジネス ID)をビジュアライゼーションに追加 (詳細シェルフにドロップ) します。 これでビジュアライゼーションが変更され、 マップには、それぞれのビジネス ID が表すレストランごとの円が表示されます。 しかし、ビジュアライゼーションを変更したくない場合はどうすればよいでしょう? レストラン、つまりビジネス ID ごとのファンの合計数と、その合計の平均値を都市ごとに計算して円で表示するにはどうすればよいでしょう? 各都市のレストランのファンの平均人数を確認するにはどうすればよいでしょう?
このような場合は、ディメンションをビジュアライゼーションにドラッグせずに、ビューにそのディメンションを追加する必要があります。 これには LOD 表現を使用します。
Fans per Business (レストランごとのファン)という名前の新しい計算フィールドを作成
します。 構文を簡単に説明します。
この表現では、Viz で使用されているその他のディメンションに関係なく、Business IDごとに集計を行います。Business IDごとのUser Fans (ファン)の合計を計算するには、LOD 表現を使用します。 この新しいフィールドをビューにドラッグしたら、都市ごとの平均値を求めることができます。
LOD 表現に FIXED 演算子を使用することで、どの都市で、レストランのファンの平均人数が多いのかを確認できます。 より濃い青色で表示された都市には人気が高いレストランが多いことを意味します (あるいは、レストランの数が多くなれば、レストランのファンの合計数も多くなります)。
LOD 表現のキーワードには、`EXCLUDE`、`INCLUDE`、`FIXED`の3つがあり、これによって LOD 表現のスコープを変更します。
この例では、標準的な営業データベース (Tableau に付属している Superstore データベース) を見ていきます。 ここでは、各行が特定のアイテムの売上を表しています。 注文には複数のアイテムが含まれ、複数の行にまたがることがあります。 言い換えると、このデータベースで最も深い詳細レベルは一意のアイテムになります。
このデータベースのスナップショットでは、Bush Somerset の本棚を2つ購入したデータが最初の行に表示されています。 次の2番目の行には、Hon スタッキングチェアを3つ購入したデータが表示されています。 この2つの行は、注文 ID (Order ID) が CA-2013-152156という1つの注文を構成します。地域ごとの売上成績を分析し、注文の平均金額が最も大きい (または小さい) 地域を調べることにします。
そのためには、各注文サイズを計算 (Order ID ごとの売上を合計) してから、地域ごとの平均値を求める必要があります。業務においてはこのような質問をよく尋ねられますが、新しい LOD 表現の構文を使用すれば、Tableau で簡単に回答することができます。 新しい構文の詳細は次のとおりです。
北米と中央アジアの平均注文サイズ (Order Size) が $737 と $733 で、最も高いことが
分かります。 これは、注文 ID (Order ID) がビジュアライゼーションに表示されていない
場合でも判断できます (以前のバージョンでは、Order ID をビューに追加しなければこ
れらの値を計算できませんでした)。
図の右側の棒グラフにあるように、Region に対して AVG(Sales) をプロットすると、地
域 (Region) ごとのすべての項目 (行) の平均が表示されます (ここで求めている結果で
はありませんが)。 これに対して、Order Size の LOD 表現を使用すると、最初に注文
ごとのサイズを求め
(該当する注文内のすべての項目の売上の合計)、次に Region ごとの注文の平均を
計算して、Region ごとの平均 Order Size を求めることができます。
これで最も大きな平均注文サイズを求めることができました。では、より複雑な次の質問に
答えてみましょう。 「最も大きな取引」を成約させた営業担当者がいるのは、売上データベ
ース内のどの国でしょうか?また平均ではどうなるでしょうか? 手順は次のとおりです。
1. 各営業担当者がこれまでに成約させた中で最も大きな取引 (最大取引) を見つける
2. 「最も大きな取引」の平均値を求める
この質問には複数のレベルで集計が必要ですが、LOD 表現を使用すれば簡単に答え
ることができます。
この質問に対して、1つの表現 `AVG({INCLUDE Sales Rep (営業担当者) : MAX(Sales(売上))})` で答えていることに注目してください。 実際に、ビューにディメンションを追加すれば、計算が更新され、データに関する別の質問を尋ねることもできます。 たとえば、分析にYear を追加してみましょう。
計算に INCLUDE キーワードを使用すると、Sales Rep (営業担当者) フィールドが計算に明示的に含まれますが、ビジュアライゼーションに配置されている他のディメンション (この場合は Country (国) と Year (年)) も同じように処理されます。 Year (年) をビューに追加することで、より詳細な分析を行えるようになります。ここでは、 バーレーンの 2012年の「最も大きな取引」の平均が $4,069 で、最も大きくなっていることが分かります。次のフロー図は、Tableau で LOD 表現 INCLUDE がどのように処理されるかを示しています。
INCLUDE キーワードによって、Viz LOD よりも集約度の低い集計 (つまり、粒度がより
高い集計) の表現が作成されます。 指定したディメンションが Viz LOD に最初に追加さ
れてから計算が実行されます。
集計されたメジャーとして、INCLUDE がビューで使用されます。 実際に、ビューに配置
すると、すべての INCLUDE がメジャーまたは集計されたメジャーのいずかとして使用さ
れます。
次のシナリオを考えてみましょう。月ごとの Sales (売上) の合計と、 Region (地域)ごとの売上合計を表示します。 これを行うには、次の手順を行います。
前述の売上データベースを使用して、別の例を見ていきましょう。
上記の Viz では、Region (地域) を 列 シェルフに配置することで、Region (地域)、
Month(Order Date (注文日)) の Viz LOD が影響を受けています。 EXCLUDE を使用
すると、内訳となる地域の売上を表示しながら、(すべての地域にまたがる) 売上合計を計
算できます。 Viz LOD より集約度が高い (粒度が低い) LOD 表現はこのようにして作成
されています。
EXCLUDE キーワードでは次の点に注意します。 Tableau は最初に除外されたディメンシ
ョンを Viz LOD から削除し、そのディメンションがないものとして計算を実行します。 その
後、結果が視覚的に表示されます。 次のフロー図は、Tableau で LOD 表現 EXCLUDE
がどのように処理されるかを示しています。
表現 {EXCLUDE Region : SUM(Sales)} により、Tableau は Region (地域) ディメン
ションを除く Viz で使用されているすべてのディメンションを使用して売上の合計を計算し
ます。 つまり、最終的には、すべての地域にまたがる売上合計を表す1つの値が月ごとに
表示されます。
これで、SUM 集計を使用した、Sales (売上) と Sales by Region (地域別の売上)
の両方の合計がビューに表示されました。
さらに、集計を混在させることもできます。 たとえば、LOD 表現を変更し、地域別の合計
を表示したままで、月ごとの平均 Sales (売上) を表示させます。
INCLUDE と同じように、ビューに配置すると、すべての EXCLUDE がメジャーまたは集
計されたメジャーのいずかとして使用されます。 これらのタイプの表現は、「合計に対す
る割合」や「全体の平均からの差の基準」の計算に使用すると便利です。
LOD 表現では、Viz LOD から完全に独立した集計レベルを作成できます。以前であれ
ば、これは、カスタム SQL を使用した場合でしか作成できませんでした。
例として、次のようなシナリオを考えてみます。 YELP データを分析して、ビジネスが初
めてレビューされた年ごとのコホートを確認してみましょう。 コホートごとに同じレビュー
傾向があるでしょうか?
LOD 表現を使用すると、次のように厳密な詳細レベルでコホートを指定できます。
このフィールドを Viz で使用すると、計算のスコープがその表現内に黙示的に定義されま
す。 下に示すように First Review Year (最初のレビュー年) を各 [Business ID (ビジネ
ス ID)] に記録すると、コホートを調査することでより詳細な分析が可能になります
FIXED キーワードにより、計算の集計レベルを具体的に定義できます。 INCLUDE や
EXCLUDE と異なり、ビジュアライゼーションで使用されているディメンションから独立し
て処理されます。
FIXED によって作成されるビジュアライゼーションは、FIXED ディメンションと Viz LOD
の間の関係に応じて、Viz LOD よりも大雑把なものになることもあれば、より詳細なもの
になることもあります。
次に、First Review Year (最初のレビュー年) をフィルターとして使用してみます。
年ごとのコホートには個別の「ビン」が指定されています。つまり、このビューではディメン
ションとして First Review Year (最初のレビュー年) が使用されています。 FIXED はデ
ィメンションまたはメジャーとして使用できます。 データ型に応じて、Tableau は計算結果
をディメンションまたはメジャーとして配置します。
INCLUDE/EXCLUDE と FIXED は主に次に示すフィルター階層として区別されます。
FIXED はディメンションフィルターの前、コンテキストフィルターの後に計算されます。 こ
れによりさまざまな使用が可能になります