システムズエンジニアリングセンターの つかじゅん です。Tableauをこれから始めたいと思っている方に向けて記事を書きました。
- データ分析に興味があり、何か初めてみたいと思う方
- データ分析と言われても、何から始めていいかわからない方
- BIツールを触ってみたいが、予備知識に不安がある方
- 自己紹介
- グラフ表現(棒グラフ、折れ線グラフ、帯グラフ)
- データ構造(横持ち、縦持ち)
- データ結合(内部結合、左外部結合、完全外部結合)
- まとめ
はじめましての方ばかりかと思いますので、まずは自己紹介させてください。
■経歴
- 大学では情報科学科/数学専攻
- 2017年に新卒でクレスコに入社(今年3年目)
- 2年間ソフトウェア開発業務や海外オフショアのブリッジSE業務を経験
- 2019年2月にデータ分析業務に参画
■データ分析業務参画以前のスキルセット
- プログラミング経験(PHP/VB)
- ウォーターフォールの一連の流れでの開発経験
- SQLでのデータ加工経験(指示どおりに書けるレベル)
■データ分析業務参画後、半年間で得たスキル
- Tableau認定資格(Desktop Certified Associate)
- お客様の要望を聞き、ダッシュボードのプロトタイピングを行うスキル
- 分析ダッシュボード作成前の前処理スキル
ほとんどデータ分析未経験の状態から自主学習+実践で学んできました。このような背景を元に、分析業務に入る前に「〇〇を知っておけば良かった」といった情報をお伝えしていきます。
補足 : Tableauの紹介
そもそもTableauって何?という方もいると思います。Tableau は、接続からコラボレーションまでをスムーズに行える、最も強力でセキュアかつ柔軟なエンドツーエンドのデータ分析プラットフォームです。※Tableau公式サイトより引用
データを扱う際に真っ先に思い浮かぶのはExcelかと思いますが、Tableauはさらにデータを「理解する」「伝える」のに特化したツールです。興味を持った方は無料版のTableau Publicもありますので触ってみてください。
普段何気なく使っているグラフにはそれぞれ適した表現があります。グラフ表現を理解し活用すると、適切なアプローチでデータを見ることができます。私が分析業務に参画したとき、グラフ表現を意識して使えておらず「名前を知ってる」くらいでした。グラフ表現を意識して使い分けできるようになってからは、お客さんに「もっと良い見せ方があります」というような提案ができるようになりました。
概要 : 量の大小を、棒の長さで表したものです。
例 :
今回の例では
・売上が消費者、大企業、小規模事業所の順になっている
・小規模事業所の売上は消費者の売上の約3分の1
ということが直感的にわかります。
概要 : 数値の変化を、線の傾きであらわしたものです。
例 :
メリット : 増減の変化を視覚的に見ることができます。時系列等、変化を確認したい時に使いましょう。今回の例では全体的に売上が上昇していっていることと、7月と11月の売上が一時的に落ち込んだことがわかります。
概要 : 長さをそろえた棒を並べ、構成比を色分けで表したものです。
例 :
メリット : 全体に対する部分の割合や、部分どうしの割合が比較しやすいです。同じ目的でよく円グラフが使われますが、帯グラフを縦に並べたほうが良い場面が多いです。今回の例では2015年に比べて2018年の小規模事業所の割合が伸びていることがわかります。
ヒストグラム/散布図/箱ひげ図/・・・と他にも複数あります。
Tableauでは、以下画像のグラフが簡易操作で表示可能です。
まずは今回説明した基本のグラフ3つから役割を理解していき、効果的にグラフを使えるようになりましょう。
普段テレビのニュースなどでグラフが出てきたとき、裏側のデータがどのような構造をしているのか意識したことはありますか?私はデータ分析業務参画以前、あまり考えたことがありませんでした。いざ自分でデータを可視化しようとしたタイミングで「意図した表現ができない!」と悩み、その経験から意識するようになりました。
これから紹介する「データの縦持ち/横持ち」はデータ加工をする上で避けて通れない一番重要な考え方です。これを理解すると、可視化のためのデータ準備がスムーズにできるようになります。
・データの横持ち
下記の例のように、分析対象について情報を横に並べたデータの形を「横持ち」と言います。
行番号 | 顧客名 | 注文商品1 | 注文商品2 | 注文商品3 |
1 | クレスコ 太郎 | ラーメン | サラダ | オレンジジュース |
2 | クレスコ 花子 | ハンバーグ | ポテト | コーラ |
・データの縦持ち
先ほどの「横持ち」データについて、1行に1つの情報のみを格納したデータの形を「縦持ち」と言います。
行番号 | 顧客名 | 注文商品 |
1 | クレスコ 太郎 | ラーメン |
2 | クレスコ 太郎 | サラダ |
3 | クレスコ 太郎 | オレンジジュース |
4 | クレスコ 花子 | ハンバーグ |
5 | クレスコ 花子 | ポテト |
6 | クレスコ 花子 | コーラ |
・データの横持ち
人が見るときには、横持ちの方が整っていて見やすいです。今回の例では「クレスコ太郎さんの注文は何か?」が1行読むだけでわかりますね。
・データの縦持ち
情報の追加と削除が簡単にできます。今回の例では注文が1つ追加されたときに1レコード増やすだけでデータ追加が完了します。
基本的には「縦持ち」の方が扱いやすいと言われています。Tableauは各列名のアイコンをドラッグ&ドロップして可視化するツールのため、同じ意味のデータは1つの列にまとめられていた方が扱いやすいです。
ただし、横持ちのほうが良い場合もあります。例えば営業マンごとに「前年度の売上」と「今年度の売上」を比較したい場合、横持ちデータにしたほうが扱いやすいです。分析する目的、見せたいVizイメージを意識してから、適切なデータ構造を準備しておきましょう。より詳細に「データ構造」や「データの前処理」について知りたい方は以下、エンジニアブログをご参照ください。
結合とは、「複数のテーブルのデータをまとめて1つにすること」です。イメージでいうとこのような感じです。
結合は大きく分けて3つあります。この3つを意識して利用しないと、分析目的のデータが意図した状態にならず、後で苦労します。Tableauで結合するときはこんな感じで選べます
※左外部結合と右外部結合は考え方が同じなのでまとめて説明します
概要 :各テーブルのキー同士でマッチする情報を抜き出す。
例 :
ここに「クラス名簿(3-1)」と「クラブ活動名簿」があります。
クラブ活動参加者のみ確認するため、内部結合します。まずはキー決めです。データを結合するには、2つのデータの中身で共通している部分が必要です。結合する際に使用する共通部分を「キー」と言います。学籍番号で一人(1行)の情報になりそうですので、これをキーにします。
学籍番号をもとに、内部結合してみた結果、
学籍番号でマッチした情報を抜き出して、合体してくれましたね。また、「クラブ活動名簿」に所属していない(帰宅部)、「暮素子 二郎」「暮素子 四子」は除外されました。「クラブ活動名簿」で他クラスの学籍番号「2017006」「2017007」の情報も除外されています。
ポイント : キーがマッチしないデータは除外されることを意識しましょう!
概要 : 1つのテーブルを固定して、左(右)からキーをもとに情報を付け加える。
例 :
先程の「クラス名簿(3-1)」と「クラブ活動名簿」を活用します。帰宅部生徒の情報を名簿に残したい!ということもあるかと思います。そんな時は、左外部結合です。ここでは、固定する名簿を「クラス名簿(3-1)」とします。左から「クラブ活動名簿」をくっつけてあげます。(左外部結合)そうすると、
のようになります。次に右から「クラブ活動名簿」をくっつけてみます。(右外部結合)(この時、固定になる名簿は「クラブ活動名簿」となります。)
ポイント : メインのデータに補足データをくっつけたいときに左(右)外部結合をつかいましょう!
概要 :すべてのデータを持った上で、キーがマッチするデータは結合する。結合する際に両方のデータを落としたくない時、完全(外部)結合を利用します。
上述の、外部結合の足し算のように見えますね。
ポイント : すべてのデータをまとめて一つにしたい時に活用しましょう!
まずはベン図のイメージで覚えておきましょう。
内部結合 :各テーブルのキー同士でマッチする情報を抜き出す
左(右)外部結合:1つのテーブルを固定して、左(右)からキーをもとに情報を付け加える
完全外部結合:すべてのデータを持った上で、キーがマッチするデータは結合する
概要 : 構造が同じ複数データをまとめて1つにする
イメージ :
今回利用した「クラス名簿(3-1)」はクラス 3-1 のみでした。他クラスのデータがあれば、一つの学年名簿にしたくはありませんか?そんなときに、ユニオンを活用しましょう。
以下3つの名簿を合体させます。
結果、以下「学年名簿」ができました。
他にも日次の売上データを1か月分まとめてユニオンし、月次の売上データに加工するなど様々な活用方法があります。
ポイント : データ構造ができるだけ似たもの同士でユニオンしましょう!
※Tableauでユニオンすると、構造が違うもの(列名(青背景部)が一致しない)は、新規列扱いされます。
例 「クラス名簿(3-3)」のみ「生年月日」列がある場合、出来あがった「学年名簿」に新たに「生年月日」列が増え、他クラスは無い列なので、値はNULLになります。
いかがでしたか?今回は押さえておきたいポイントを3つ書きました。
- グラフ表現(棒グラフ、折れ線グラフ、帯グラフ)
- データ構造(横持ち、縦持ち)
- データ結合(内部結合、左外部結合、完全外部結合)
この3つを理解しておくとデータ分析業務でとても役立つと思います。少しでも理解のサポートできたなら幸いです。
この記事を読んでTableauに興味を持った方、これからデータ分析業務を経験したい方に向けたハンズオン(有料)を開催しています。興味のある方は是非、こちらのページをご覧ください。