Tableau Desktopで実践BI(ビジネスインテリジェンス):バスケット分析

2014.01.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

これまでは概要であったり、各種データソースへの接続をメインにエントリを投下してきましたが、Tableauの機能自身、機能やグラフの使い方についても少しずつご紹介して行こうと思います。当エントリで紹介するのは『バスケット分析』です。

目次

バスケット分析(Market Basket Analysis)とは

バスケット分析(マーケットバスケット分析)とは、データマイニングで用いられる分析手法の1つで、良く一緒に買われる商品を見つけるための分析手法です。

「おむつを買った人はビールを買う傾向がある」という事例も、バスケット分析では良く語られるネタではありますね。

Tableauでは、顧客の購買行動から傾向や特徴を発見し理解する為に『バスケット分析』を行う事が出来ます。例えば以下の様なケースです。

  • どの位の人が商品Aと商品Bの両方を購入したのか?
  • 商品Aを買った人は、他にどの商品を購入しているのか?
  • コースAに在籍する学生は他のどのコースに在籍しているのか?

このエントリでは、サンプルデータを用いてデータソースを設定し、バスケット分析を行う為の幾つかの手法、ビューの表示を行ってみたいと思います。

環境準備

Tableau Desktopは以下公式サイトダウンロードページから入手。インストーラを起動しウィザードに従ってインストールを完了させておいてください。

この後使う事になるサンプルデータ『Sample - Superstore Sales (Excel).xls』も、以下公式サイト内のフォーラムから入手出来ます。Tableau Desktopと共に入手しておいてください。

自己結合(self-join)の作成

ここでは、ユニークかつ重複マッチが排除された自己結合(self-join)データを構築して行きます。その際、まずはユニークなデータとするフィールドを定め(例:顧客名や学生ID等。サンプルデータでは顧客名を使っています)、その後マーケットバスケット分析をしたいフィールドを選定(例:製品カテゴリまたはコース件数等)します。

self-joinは以下の条件を満たすように構成します。

  • 一意の識別子同士が一致(Unique identifier = Unique identifier) 且つ
  • 分析対象のフィールドが異なる(Category in question <> Category in question)

新しいワークブックを開き、ダウンロードしたファイルを選択して接続します。

tableau-basket-analyze-01

tableau-basket-analyze-02

tableau-basket-analyze-03

tableau-basket-analyze-04

tableau-basket-analyze-05

接続先となる[データ]を右クリックし、[表の編集]を選択。

tableau-basket-analyze-06

[表]ダイアログにて、[表の追加]を選択。

tableau-basket-analyze-07

[表の追加]ダイアログが表示されるので[Orders]テーブルを選択。

tableau-basket-analyze-08

[結合]タブを選択し、以下ステップを実施。

  • Customer Nameがイコールとなるように条件を追加
  • Product Categoryが異なるように条件を追加

tableau-basket-analyze-09

[OK]を押下。

tableau-basket-analyze-10

こんな感じで要素が追加されます。

tableau-basket-analyze-11

テーブルビューを作成するには、テーブルから分析したいフィールドを Columns(列)にドラッグします。そして、同じフィールドをRows(行)に追加して行きます。そして[メジャー]から、レコード数を[マーク]内のTextにドラッグ&ドロップ。

tableau-basket-analyze-12

ビューはこんな感じになります。テーブルでは、それぞれの数字は対応する各軸に示したカテゴリから何らかの商品を購入している(必ずしも同時では無いですが)人の数を表しています。例えば、下記画像では279人が"BookCases(書棚)"と"Binders and Binder Accessories(バインダーとバインダーアクセサリー"の両方から商品を購入しています。対角軸に沿って互いが反映され、同じ2つのカテゴリが表現されている点に注目してください。

tableau-basket-analyze-13

追記:Tableau 8.2での挙動について

Tableau 8.2では接続編集の部分が『データウインドウ』としてUIを含めて変更となりましたが、EXCELでこの操作を行おうとすると『<>』等の演算子が表示されません。同じファイル(SuperStore Sample.xlsx)をAmazon Redshiftに投入して同一操作を試してみたところこちらは上手く表示されています。この辺りは関連する公式ドキュメントの以下部分が影響しているのかもしれません。

注: 結合できる表と使用できる別の結合タイプは、ワークブックが接続されているデータベースまたはファイルによって異なります。

EXCELファイルで接続時: table-connection-edit-01

Amazon Redshiftで接続時: table-connection-edit-03

ヒートマップ(Heat Map)ビューの作成

上記状態から数ステップ処理を加える事で、ヒートマップのビューを作成する事が出来ます。

  • [メジャー]内のレコード数を[マーク]内の色、サイズにそれぞれドラッグアンドドロップ。
  • tableau-basket-analyze-14
  • [マーク]内のサイズをクリックし、サイズ規模の調整を行う。
  • tableau-basket-analyze-15

その他色調整などを行う事で、以下の様なヒートマップを作成する事が出来ました。どの組み合わせが件数が多いのか、これで一目瞭然ですね。

tableau-basket-analyze-16

まとめ

以上、当エントリではTableau上で分析手法の1つ『バスケット分析』を行う方法についてざっくり解説してみました。この他の使い方や分析手法、または先日ご紹介した『表示形式』ついてもちょいちょいご紹介して行こうと思います。

参考情報