ベン図とオイラー図
データ分析やプレゼンの資料で↑のような図を見かけたことはありませんか?
「ベン図」や「オイラー図」と呼ばれる、集合同士の要素数の比較や関係性を表現するのに使用される可視化手法です。
今回、複数のサービスを横断して利用しているユーザーの分析調査に携わる機会があり、改めてベン図とオイラー図の違いや、作成方法について調査を行ったので、その内容をご紹介します。
ベン図(Venn Diagram)とオイラー図(Euler Diagram)の違い
ベン図もオイラー図も集合同士の関係性を可視化するという目的は同じですが、それぞれの定義には明確な違いがあります。
オイラー図
オイラー図は、集合同士の実際に存在する共通部分のみを表現する図です。
ここでは、Animal、Dog、Appleという3つの集合を考えます。
DogはAnimalの一種ですが、AppleはDogともAnimalとも関係がありません。この3つの集合の関係性をオイラー図で表すとこちらの画像のような形になります。
このように、オイラー図では各集合を表すエリアが必ずしも他のエリアと重なっている必要はないという特徴があります。
ベン図
一方、ベン図は、全ての集合の組み合わせを表現する図です。
先程の3つの集合を表現する際、ベン図では、AppleとAnimal、AppleとDog、AnimalとDog、そしてAppleとAnimalとDogの全ての共通部分を図で表現します。今回の例のように、たとえ共通部分の要素数が空っぽ(何も要素がない)だったとしても、ベン図ではその部分を必ず表現する必要がある、という違いがあります。
全ての組み合わせを表現するオイラー図を、特にベン図と呼ぶ、と覚えておきましょう!(この記事のトップ画像は2つの図の関係性を表現したベン図、ということになりますね。)
集合の関係性に加えて、ボリュームも表現する
集合同士の関係性(重複の有無)だけを表現するのであれば、パワーポイントやGoogleスライドなどのツールで複数の円を描くだけでも簡単に作成できますが、それぞれの集合の量や大きさ(ボリューム)もできるだけ正確に可視化・表現するにはどうすれば良いでしょうか?
例えば、以下のようなデータを可視化するケースを考えます。
ServiceAのみの利用者が5000人
ServiceBのみの利用者が1000人
ServiceAとServiceB両方の利用者が100人
このデータをそれぞれのボリュームを考慮せずに可視化した図がこちらです。
実際にはそれぞれのサービスの利用者数には5倍もの差がありますが、円の大きさが同じだと、ぱっと見ただけでは相手に間違った印象を与えてしまう可能性があります。
一方、それぞれの集合のボリュームを円の大きさに反映した図がこちらになります。
こちらの図では、それぞれの集合のボリュームに比例して色がついた部分の面積ができるだけ正確に表現されています。より直感的に集合同士の関係性を把握できますよね。
しかし、精度の高いオイラー図を手描きで作成しようとすると、集合の大きさを計算して円を描画して、重なり部分の大きさを計算して配置して、、、とかなり骨の折れる作業が必要になります。
エンジニアの皆さんなら、Python、R、JavaScriptなどで描画用のライブラリやパッケージが提供されているのでそれらを利用すれば解決できますが、ビジネスサイドの方には少しハードルが高いですよね。
誰でも簡単に集合のボリュームも反映されたできるだけ正確なベン図・オイラー図を作成できるツールや手法はないか?と調査したところ、ちょうど良いサービスを発見したので、ご紹介します!
eulerr
eulerrはR言語でベン図やオイラー図を描画するのに使うパッケージですが、その開発者が機能の一部をWebサービスとして登録不要・無料で提供してくれていました。
UIはとてもシンプルで、画面の左側に各集合の名称とボリュームを入力するだけで自動的に面積比例の図が描画されます。
色やスタイルの調整が可能で、作成した図はpdfやpng形式でダウンロードすることもできます。
注意点
-
重複する要素は”&”で接続して入力します。
-
要素名に日本語は入力できません。
-
要素数の上限が5つに設定されています(Rパッケージでは上限なし)
-
要素数が3つ以上の複雑な組み合わせの場合、図の面積が入力した値に正確に比例しないことがあります。画面の左下には、図の面積がデータにどの程度適合しているかの指標が表示されます。(0に近いほど正確)
-
その場合、真円ではなく楕円を選択すると解決できることがあります。
複雑な組み合わせの可視化
eulerrの紹介ページを読んでいると、ベン図・オイラー図で正確に表現できない複雑な組み合わせの場合は、UpSetRというパッケージの利用を推奨する。という記述を見つけました。
アップセット図(UpSet Plots)
UpSetという可視化手法が初耳だったので少し調べてみると、2014年に発表された比較的新しい可視化手法で、Visualizing Intersecting Sets(交差する要素の可視化)に利用でき、ベン図やオイラー図では難しい3つ以上の要素にも対応することができるとのことでした。
こちらのページで詳細を確認することができます。
確かに、要素数が多い場合には、これはこれでわかりやすいですね!
この記事では詳細には触れませんが、近いうちにアップセット図に特化したレポートもお届けできればと思います。
まとめ
ベン図・オイラー図の定義の違いと、eulerrのWebサイトを活用して誰でも簡単に図を作成する方法についてご紹介しました!
一度きりの分析やレポートであれば、eulerrのWebサービスでも十分に対応可能ですが、継続的に数字を追っていきたい場合やダッシュボードに組み込みたい場合には、何か別の方法を考える必要があります。
ABCグループでも導入しているBIツールLooker Studioには、サードパーティ製のベン図のコミュニティビジュアライゼーションが存在しますが、Lookerのマーケットプレイスではベン図やオイラー図の可視化ツールは現状では提供されておらず、Custom Visualization機能を使って自主開発する必要があります。機会があれば挑戦してみようと思います。(Githubで公開されているこちらのレポジトリが参考にできそうでした。)