Unpivot「縦持ち→横持ち」→散布図、回帰分析、相関分析、クラスタ分析

投稿者:

データを愛する皆さん、こんにちは。

「Data Processing with Tableau on my Mind(Tableauを意識したデータ加工)」をシリーズでお届けします。

今回は、データを「縦持ち→横持ち」に変換し(Unpivot)、変数間の関係性の分析あるいは、分類につなげる方法を紹介します。

Tableauのデータ接続設定画面ではPivotは可能ですが、Unpivotはできません。そこで、カスタムSQLによりUnpivot処理を行います。

まず、変数間の関係性の可視化・分析の代表的手法には、

  • 散布図
  • 回帰分析
  • 相関分析

があり、分類の代表的手法は、

  • クラスタ分析

があり、一人一人の顧客といったケースの分類に役立ちます。

上記の手法はいずれも、複数の数値項目(メジャー)を必要とします。

購入金額や購入回数などの、元々異なるメジャーであれば、問題ありませんが、購入金額を商品軸から分解していく(カテゴリーAの購入金額、カテゴリーBの購入金額、etc.)にはデータ加工が必要となります。

では、具体例を見ていきましょう。↓が元データです。

典型的な販売実績のデータ構造となっており、1つのオーダーで複数の商品が購入されているときは、商品毎に行がわかれます。categoryという列が各行の商品カテゴリを示しており、Furniture、Office Suppliesなどのカテゴリが存在します。

↑元データをUnpivotすると、↓のようなデータとなります。

この変換するために、Tableauのデータ接続設定で、「カスタムSQL」を使用します。

アクセスをはじめとする、データベースに対してカスタムSQLを設定することが可能です。 接続先データベースのテーブル一覧の下に「新しいカスタムSQL」があります。それをキャンバスにドラッグ&ドロップし、SQL文を記載します。

select customer_id,
sum(CASE WHEN category = ‘Furniture’ THEN sales END) AS Furniture,
sum(CASE WHEN category = ‘Technology’ THEN sales END) AS Technology,
sum(CASE WHEN category = ‘Office Supplies’ THEN sales END) AS Office_Supplies
FROM order_t
GROUP BY customer_id

上記の例はUnpivotする際の典型的なSQLです。ここでは、

  1. カテゴリ(category)の値別に、売上(sales)を別々のメジャーとして横持ちに持ち替え
  2. 横持ちされたメジャーを顧客(customer_id)別に合計

しています。

これにより、Furnitureの売上、Office Suppliesの売上が異なる列(メジャー)に切り出され、冒頭に上げた4つの可視化・分析手法が可能となります。

読み込んでいるデータは変換済みのTableau抽出ファイルですが、作成例をTableau Publicにパブリッシュしておりますので、併せてご覧ください。

Unpivotからの散布図_回帰分析_相関分析_クラスタ分析

ご参考になれば、大変うれしいです。

ロックンロール!

Tableau小口

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です