多変量データの可視化:複数の変数(次元)を一つの画面に可視化する方法

多変量データの可視化:複数の変数(次元)を一つの画面に可視化する方法

複雑なデータを可視化し、わかりやすく表現してくれるのが「FACET」の機能です。これを利用することでデータに潜むルールをわかりやすく表現して、新たな知見を発見しましょう。

このページでは、

データ視覚化、情報デザイン分野の傑出した学者である「Edward Tufte」は彼の著書「Envisioning Information」で「データの中に含まれる情報を正しく描くためには、平らな2次元(紙、画面)の束縛から脱却しなければならない。 なぜなら、私たちが理解しようとするすべての興味深いものは必然的に複数の変数で構成されているからだ」と述べています。

Escaping this flatland is the essential task of envisioning information — for all the interesting worlds (physical, biological, imaginary, human) that we seek to understand are inevitably and happily multivariate in nature.

一方、現代的な意味でのデータ可視化とEDA(探索的データ分析)の創始者として尊敬されるジョン・チューキ氏が「一つの数字がすべてを語ってくれると期待しないように、一つのチャートがすべてを示してくれると期待しないようにしよう」と語ったのは、複雑な現実を抽象化してその一面だけを見せるデータ可視化に対する境界だったはずです。

There is no more reason to expect one graph to “tell all” than to expect one number to do the same.‌‌ by John Tukey

二次元空間に置かれた一つの窓の中のチャートは、一つの事実、一つの側面(断面/Facet)についてのみ語らせるほうが正しいです。世界の複雑さを反映する意図で、あまりにも多くのカテゴリー(次元/Dimension)を一つの窓に表現すると、認知的過負荷(cognitive overload)が来ることがあるからです。

しかし、複雑な現実の反映であるデータは、一つのウィンドウの中に二つの次元(X,Y)を使って表現するにはあまりにも多くの変数を含みがちです。 今回の講義とブログでは、複数の次元を同時に使ってデータセットに含まれる変数間の複雑な関係を効果的に視覚化する方法を説明します。‌

上の図はAndrew Abelaが描いたChart Chooserという図です。見せたいもの(比較、関係、分布、構成)と変数の種類/数によってチャートを選択するguidelineをdecision tree形式で図式化しました。10年前に作成された図式であることを考慮しても、4つ以上の変数(次元)を視覚的に表現する方法は見つかりませんね。

複数の変数を(平面上に)可視化する方法

複数の変数を(平面上に)可視化して、データの中に含まれる秩序と関係を理解する方法は大きく2つあります。

  • 次元縮小:PCA(主成分分析)、t-SNEなどのアルゴリズムを使用してデータの構造と関係を最大限に保存し、高次元データを低次元データに変換する方法(縮小された次元に対する解釈が難しい)
  • Small Multiples, Facetなどの多次元視覚化技法を使用する方法。

この記事では、EDA(探索的データ分析)の文脈でFacetのような可視化技法を活用して、複数の変数を2次元平面に可視化する方法を説明します。

📍
下記の実習内容を直接やってみるには、HEARTCOUNTログイン(Googleアカウント使用)→キャンペーン作成→サンプルデータセットを使用→売上データセットを選択してください。

実習データセット (Superstore)

  • おそらく、おなじみのTableau社が公開した大型スーパー(SuperStore)の売上データです。
  • 数値型変数は売上、利益、数量、割引率この4つの変数が含まれていて、‌‌カテゴリ型変数は下の表のように構成されています。
SuperStoreデータセットプレビュー

X,Y軸ともに数値型変数の場合

2つの変数の可視化

  • まず、利益をY軸、売上をX軸に置いて視覚化してみます。
  • 売上が増加するにつれて利益も増加する傾向が見えますね。      

3つの変数を可視化

  • 製品群ごとに利益と売上の関係がどのように変わるかを比較するために、各点(レコード)を製品群ごとに異なる色で表示してみました。
  • より詳細な情報が表現されますが、レコードが重なっているので正確な解釈は難しいですね。
  • 画面分割(ファセット)機能を使って製品大分類(Category)ごとに異なるウィンドウに表現してみました。
  • 長く説明しなくても、異なる製品群を異なるウィンドウに視覚化したら、パターンを認識し、共有するのが格段に良くなったことが分かりますよね?

4つの変数の可視化

  • 製品群ごとに異なるパターンを確認し、割引率が売上に応じた利益に影響を与えたのではないかと合理的な疑いがあります。
  • 割引率は数値型変数なので、割引率を新しい軸(Z)にして3次元チャートを描くこともできますが、お勧めしたい方法ではありません。
  • 代わりに割引率を各点(レコード)の大きさで表現してみました。 損失を出して売ったものが大きな円で表現されていることが確認できます。‌

5つの変数を可視化

  • 各製品大分類に属するサブ製品群があるでしょうし、製品小分類変数(次元)を追加するにはどうすればいいでしょうか?
  • 少し強引ですが、アニメーション機能を使ってください。アニメーションは、時間の経過による変化を観察する目的で使用することもできますが、変数に属する個々の値による変化を順次観察する目的で使用することもできます。

X軸はカテゴリ(時間)、Y軸は数値型変数の場合

3つの変数を可視化

  • "Y:Profit(平均)、X:Category(製品大分類)、サブグループ: Segment(顧客分類)"で視覚化すると、下記のような図になります。

4つの変数を可視化

同様に、ここに次元(例えばRegion(地域))をもう一つ追加する最も効果的な方法は、Facet(画面分割)機能を使って地域ごとに画面(ウィンドウ)を分割することです。

5つの変数を可視化

  • 製品が顧客層と地域によって利益がバラバラですが、割引率が影響を与えたと推測できます。割引率を追加する方法は「アニメーション」機能を使ってもいいですが、今回は右側のウィンドウ(control pane)のフィルタリング機能を使ってみます。
  • Bar形式で表現されたそれぞれの視覚的オブジェクト(事務用品&個人顧客&Central)の平均割引率を調整しながらフィルタリングをしてみると、割引率が高いほど利益(Y)が低くなることが確認できますね。

私たちは三次元の世界に住み、二次元の世界を見る生き物です。しかし、適切な視覚化技法を使えば、このような人間の知覚の限界を克服することができます。様々な次元を同時に見ることは、世界を理解する方法に影響を与え、世界に対する意見を形成し、政策を決定することにも影響を与える可能性があります。

さまざまな次元を同時に見る練習を通して、私たちの周りの魅力的で複雑な世界への理解を深めてください。

💡
追加で参考になる内容
* Edward Tufteの Envisioning Information PDF ダウンロード
* Andrew Abelamの Chart Chooser PDFダウンロード
💖
HEARTCOUNTはすべてのビジネスパーソンのための可視化・分析ツールです。無料版を今すぐGoogleアカウントでログインして使ってみましょう。