ひるタブ23回目「ディメンションとメジャー、連続・不連続、集計・非集計とのつながり」
前回予告に基づいて、今回は「ディメンションとメジャー」を取り上げます。この2つ、とりあえず自分の皮膚感覚で理解するのはそれほど難しくはないのです。が、これをTableauでいじるとグラフにどう反映されるかとなると結構奥が深いです。
■ディメンションとは
Tableau のヘルプには
ディメンションには、定性的値 (名前、日付、理的データなど) が含まれます。ディメンションは、データの分類、区分、詳細の表示に利用できます。ディメンションはビューの詳細レベルに影響します。
とあります。
https://help.tableau.com/current/pro/desktop/ja-jp/datafields_typesandroles.htm
が、●●は、でなくて、●●にはというのは、外延的定義であり、文系っぽい記述で、多くの実例や要素から、結局何なのかは自分で考えてね。となり、わかりにくいと思うのです。
ディメンションというのは、次元に使ったり、DIM文のような配列を指したり(N次元配列とか)という事例がなじみがありますね。
私なりに理解で定義すると
「ディメンションとは、個々のデータが独立した値となっている集合」
これではさすがにわかりにくいですね。うんとグラフに寄りに書くと
「グラフを描くためのX軸の値」
何です。ただここまで言い切ると、いろいろ日常感覚に合わない例も出てくるかと思います。ディメンションの例は、ヘルプに上がった例の通りなんですが、
名前:順序性がない(50音順はあるけど)
日付:順序性はあるが、名前と逆に個別の日付は入れ替えることは可能(ソートするとか)
(理的データというのは多分誤訳だと思います。)
地名とか人名とか個々の値が独立して存在するデータだと思って進みましょう。数字のディメンションがその信じかけた心を揺らがします。
数字でも、連続と不連続でやったように、そのデータの隙間のあるなしで、隙間なく入れ替わるなら、連続のディメンションというのはあり得るのです。
■メジャーとは
同じくヘルプには
メジャーには、測定可能な数値と定量的な値が含まれます。メジャーはデフォルトで集計されます。メジャーをビューにドラッグしたとき、Tableau はそのピルに集計を適用しています。
これも、性質を述べているだけで定義をしていないですね。
私なりに定義をしてみると、
「メジャーはその値が数値としての意味を持ち、集計加工が可能な数値の集合」
メジャーはバイナリや文字列はメジャーにならないです。こちらも
「グラフのY軸」
ととりあえず理解してもいいかもしれません。
Tableuのワークシートは行が下でY軸を表し、列が上でX軸を表すので、XYを逆にすることが多いですよね。また、脱線ですね。
メジャーの強みは、集計と呼んでいる、加工・統計処理ができることです。
合計や最大・最小、差分等豊富な計算が可能です。
■連続・不連続との違い、活用方法について
もっとも多く理解しやすいのは今書いた
ディメンション不連続、メジャー連続
この基本を押さえましょう。
なのに、なんでこんなにまわりくどいかというと
つまり
Y=f(x)
になるものだけではないということです。
グラフが思った通りの形をしないときは、この3×2の組み合わせが適切でないからということが結構多いです。
能書きが大変長くなりましたが、典型的な例からスタートしていろいろいじってみましょう。

実は、日付型は、ディメンションなんですが、日付の加算をしたり連続的な使い方もできます。
まずはこのグラフをディメンションらしく、順番を入れ替えてみます。この前やったのと同じですね。

ですが、連続とすると時系列なグラフができます。

日付を連続にすると、順番を入れ替えることができません。不連続だと入れ替えをしたり、違う年の同じデータの合計を作ることができます。
日付をメジャーにするのは無理なので、メジャーをディメンションにするとどうなるかという例を示します。

この売上をディメンションにすると

売上の数値一つ一つが離散的な値になるので、各月のオーダごとの売上高がプロットされます。これは箱ひげ図のような要素の分布の時にも有効です。多少の不正確さに目をつむればこの横線グラフが非集計グラフになり、集計と非集計の接点がここに見えてくるのです。
なら、散布図はディメンション?という疑問が沸いたら大変いいクエスチョンです。散布図は詳細や色にデータを入れることで、データごとの不連続な状況を作り出しています。でも、値の入れ替えはできないので、ディメンションのような要素の独立性はありません。
もう少し、日付ではなくて、メジャーとディメンションの違いを例にできないかとおもったので、よくあるID番号を地域に振りました。製品IDは文字列でためなのです。今回は番号をちからずくで振ってます。数字のままなので、メジャーです

これをそのまま行に入れると

すると、ピルには合計と書かれます。地域番号の合計で、ある種の加重加算値ですが、意味はありません。ではそこに、売上を行に入れます。

散布図の失敗例です。
なんか、散布する基準がいるので、都道府県を入れます。

地域番号が合計になっているので、県ごとの地域番号×レコード数になってしまってます。これはへんなので、合計を平均にします。すると加重分がなくなります。

ここまで加工できれば、ディメンジョン化することもないのですが、ここで
地域番号をディメンション化してみます。

ここで、地域ごとの合計値にしたいので、ちょいと手を加えます。グラフの種類を棒にして、詳細を色に入れます。

積み上げ棒グラフになります。ここから、都道府県を両方ともとります。

ここで、元の地域名と入れ替えをしましょう。列に地域を入れます。両方ともディメンションなので、階層関係のグラフになるのですが、1対1なので何も変わりません。

そこで地域番号を抜くと

地域名の文字コード順になるので、あー残念ですが、ここでせっかく数値化されたデータがあるので、ディメンションをソートします。

軸の並び替えは、今のコード順しか選べないのですが、これだといろんな軸での並び替えができます。

この並べ替え自体は、特にディメンションだからというわけではないのですが、ようやく普通のグラフに戻ってきました。

メジャーからディメンションへ変換することの雰囲気が伝わったでしょうか。いっぱいグラフは上げましたが作業量は大したことないです。
なので、さらっと読んでくださった前提で、ディメンションをメジャー化するもっとも多いケースが、レコード数の数え上げです。
行に地域、列に顧客名を入れると例によってわけわかんない表ができます。ディメンション同士なので自動ではグラフにはなりません。

これで、顧客名のピルを右クリックして


ディメンションは外延的定義としての集合でそのままでは数値として扱えません。カウントするなどの数量化をしてメジャーに適用します。
最後にヒートマップで、ディメンションとメジャー(不連続、連続)での見え方の違いを例に挙げます。カテゴリと地域の顧客数ですが、顧客名をそのまま色に入れても、顧客名の要素が以下同文で並ぶだけです。

なので、色の顧客名をメジャーでカウント(個別)にします。

が、今は顧客数は連続になっています。では不連続にするとどういうグラフになるか、おまけですが。色を不連続にします。するとパレットはランダムに色を割り当ててしまい、都合がわるいです。そこで色メニューでブルーパレットを指定すると、数字が右側になったグラフができます。


なんで、連続と不連続でグラフの形が違いますが、ディメンション➡メジャー連続➡メジャー不連続 この違いでかなり違うグラフができます。
なので、前半で書き綴った、観念的な話は吹っ飛ばして、
グラフの表現が違ってくるということだけ理解してください。
また、今回はほとんど触れていませんが、売上をディメンションにしたグラフは実は集計と非集計の違いになります。集計はメジャーに寄り添い、非集計はディメンションに寄り添います。だからと言って常に一致しないのがまた奥が深いのです。
■追伸
ひるタブのスキル別のブログ、23回綴りました。思い付きで重ねたテーマで体系だってはいませんが、初心者が押さえておく範囲としてはまずは一巡りしたかなと思います。あとは、パスの描画とかより高度なグラフとかありありますが、もう初級者がハンズオンでできる範囲を超えるかなと思ってます。
次回以降のひるタブは、ブログを元に進めている勉強会の開催方法も見直しているので、それに合わせた形でのブログ掲載をしたいと思っています。
スピードメータやサンキーのような高度なグラフ、Tabpy、Prep使ってみた等色々体験したことも機会を見つけてまた書き記したいです。