Parameter Actionを使ったMarket Basket Analysis(Tableau2019.2β)

こんにちは。林です。
Tableau2019.2のβが始まりました!
https://prerelease.tableau.com/home.html
目玉は何といってもParameter Actionですね。

ParameterActionを使用してマーケットバスケット分析をしてみて気づいた事を記載します。
使用するデータソースはSample – Superstoreです。

※β版のため製品時は仕様が異なる可能性があります。


Tableauでのマーケットバスケット分析について
「何と何の組み合わせの買い合わせが多いか」をTableau上で確認しようとするとself joinで頑張る以外難しいかと思います。
(データ数が乗数的に増えます。)
もしそれ以外でやり方をご存知の方がいらっしゃいましたらお知らせください・・・
「この商品と一緒に買われることの多い商品は何か」はself join無しでも可能です。

SetAction以前の方法
比較対象の入ったパラメータを作成し(ここでは”Analysis item”で中身はSub-category)
下記のような計算式を作ってフィルタに入れればOKです。
“{fixed[Order ID]:max(if [Sub-Category] = [Analysis item] then 1 else 0 END)}
= 1″
パラメータをプルダウンから選んで確認する事となり、比較対象が多かったりすると選択が大変で使いづらいものでした。
Set Actionでの方法について
基本的な考え方は以前のものと同様で、
Parameterを使って比較対象を選択していたところをSet Actionで指定したSetを使用する形です。
比較対象をセット化し、Set Actionで切り替わるようにします。(ここでは”item”)
下記のような計算式を作りフィルタに入れればOKです
{fixed [Order ID]:MAX(IIF([item],1,0))}=1

上記の場合と異なり、静的なパラメータではないので比較対象自体をダッシュボード上で替えるようにしたり、
画面上でわかりやすい選択によって比較対象を選択できます。
集計粒度を切り替えられるようにしたりしてお化粧したサンプルです。
Parameter Actionでの方法について
比較対象を格納するためのパラメータを作成して(ここではAnalysis item)
Set Action以前の方法と同様の計算式を入れればOKです。
“{fixed[Order ID]:max(if [Sub-Category] = [Analysis item] then 1 else 0 END)}
= 1″
ボタンでParameterが切り替わるようにしてみたりしてお化粧したサンプルです。

以前と異なり動的にパラメータに値が入るのでリストを用意する必要がない点がポイントです。
set actionと異なり、アクションを解除したときに値をNullにするオプションがないのがやや厄介です。(値が残り続ける)
ここはNullにするオプションが欲しいところ。(feedbackしておきます)

まとめ
おそらくParameter ActionでできることはSet Actionでも頑張ればできるケースが多いかと思います。
ただし、 Set ActionはSetのInとOut から判断して計算式を作らねばならず、
頭をひねって計算式を作らないと実現が難しいものがParameter Actionだとシンプルに実装できるケースが数多くあるかと思います。
また、 パラメータに値をセットしないといけないケース(サンプルのボタンのようなケース)も存在します。
Set Actionはあくまでデータに値をセットするのに対して、
パラメータに値をセットをするため複数データソースに接続しているときに
一括して適用しやすい点もポイントです。

使い方を覚えれば間違いなく強力な武器となりますので是非使いかたを身につけましょう(βに登録しましょう!)

今回のサンプルを添付します。(β版を入れていないと開けないので悪しからず。) Tableau_id執筆者:林 周作(Shuusaku Hayashi)