この記事の目的・対象読者
データ分析用のツールはたくさんあります。
ここでは、データ分析ツールとは、Excelやプログラミング、ダッシュボードツール、BIツールなどを含みます。
この記事では、データ分析初心者やこれからデータ分析をしようとする人に向けて、どのような場面にどのような分析ツールを使うのがいいかを解説します。
どのような場面にどのような分析ツールを使うのかが重要な1番の理由は、適切なツールを使うことでデータ分析を効率的に行えるからです。
プログラミングが必要のないところでは、無理して使う必要がないかもしれませんし、
場面によっては、便利なBIツールは役に立たず、どうしてもプログラミングやSQLの知識が必要かもしれません。
また、これからデータ分析をしていこうとする人は、自分がしたい(あるいは任された)分析のために、どの程度の知識を身に着けておくべきかという疑問にぶち当たります。
その際に、どのような場面にどのような分析ツールを使うのかをなんとなく分かっていれば、どの程度の知識が必要か予想することができるでしょう。
この記事が分析ツールの対象とする分析ツールとそれぞれの特徴
データ分析の分類
データ分析には、大きく分けて、「アドホック分析」と「定期的な分析」の2種類があります。
データ分析の基盤が整っておらず、自動化されていない会社や研究では、必要なタイミングでその都度、手作業でデータを分析することになります。
これをその場限りな分析という意味でアドホック分析と呼びます。
アドホック分析では、クエリやデータの変形・集計処理を実行してすぐに結果を確認できるような対話型の分析ツールが用いられます。
一方、手作業で都度分析するのではなく、定期的なレポーティングなどを求められる場合には、ある程度自動的にデータを集計して表示するダッシュボードツールが使われます。
ここでは、
・Excel
・プログラミング言語
・BIツール
・ダッシュボードツール
のそれぞれの特徴や具体的な製品などを見ていき、どのような場面でどのようなツールが使われるのかを見ていきましょう。
Excel
まずは、誰でもご存知のExcel先生です!
私自身は、Excelを使わずにプログラミングでデータ分析をしようという教育を受けて育ったので、実はPythonよりもExcelの方が苦手だったりします……
実際は、簡単な分析ならExcelでも十分です。
ピポットテーブル
まずは、ピポットテーブルの使い方を覚えましょう。
これは、ピポットテーブルによるクロス集計はあらゆるデータ分析の基本です。
クロス集計の考え方そのものはExcelであろうとプログラミングであろうと共通なので、この考え方が見についていなければお話にはなりません。
Excelの苦手なこと
Excelは大変便利なツールですが、データの統合には限界があります。
横方向に列を増やしていくことはExcelらしい処理ですが、縦方向のデータの統合は苦手だったりします。
例えば、センサーの時系列データを扱う場合を考えます。
(抽象化すると、Google Analyticsなどもセンサーみたいなものですよね?笑)
センサー①は1秒ごとにデータを記録していて、センサー②は10秒ごとにデータを記録しているとします。
それらのデータを集計して統合する場合、センサー①のデータを10秒ごとに平均するなり、代表値を取ってくるなりして、合体させなければなりません。
これらの処理をExcelで行うのはひと手間ですし、そもそもデータの数が何十万行、何百万行にもなると、Excelでは計算が遅くなってしまいます。
とはいえ、
例えば、経営の指標を扱うような場合には、Excelで十分でしょう。
せいぜい、週や月ごとの集計結果をみて議論する程度ですからね。
そのため、コンサルティング会社や会計事務所などでは、今でもExcelをゴリゴリ使えることが1つの重要なスキルとして認識されているわけです。
プログラミング言語(Python)
ここでは、プログラミング言語としてPythonを取り上げます。
近年データ分析用のプログラミング言語として世界を支配したと言っても過言ではないPythonは、データ分析用のライブラリーも豊富ですし、なんといっても後述する対話型ツールのJupyter Notebookが人気です。
Jupyter Notebook
(公式ホームページより)
Jupyter Notebookとは、オープンソースの対話型スクリプト実行ツールです。
Python以外にも、RubyやRなどのプログラミング言語も実行可能です。
一つ一つの処理工程ごとにの結果を可視化することができます。
Markdown形式で説明文などを書くこともできるため、他人に見せるレポートとしても十分に機能します。
Pythonでグラフを作るのに最も有名なのが、matplotlibというライブラリーです。
上記の公式ホームページから取ってきた写真のようなオシャレなグラフを作ることが可能です。
Pythonを使ったデータ分析および可視化には下記の本が参考になります。
Pythonの限界
当然ながら、データ分析のためにPythonを使いこなすのは簡単ではありません。
プログラミング初心者からすれば、学習コストはかかります。
ですから、エンジニアでない人たちがデータ分析できないという意味では、データが本当に民主化されたとは言えません。
BIツール
そこで、近年データ分析ツールとして人気が出ているのがBIツールです。
Tableauというツールの名前は聞いたことがある人が多いでしょう。
近年は、コンサルティング会社などでもTableauを使って分析をすることが増えていると聞きます。
私もコンサルティング会社に勤めていた頃にはExcelよりもTableauの方がナウでヤングでトレンディーだよねという空気がありました。
(Tableau公式ホームページより)
グラフを作ったりしながら、チームメンバーで分析を進めていくのに向いています。
使う場面としては、後述するダッシュボードツールは、分析を自動化しようという方向を向いているのに対して、BIツールはより探索的なデータ分析のために用います。
BIツールにできないこと
BIツールは素晴らしく、データの民主化を進めてくれるものとして、非常に価値のあるものです。
ですが、BIツールも統合されたデータを扱うことにはできても、統合作業そのものは苦手(できるはできる)です。
BIツールを使う前の、データ集計や統合のSQLのクエリは自分たちで書かなければなりません。
つまり、結局は、意味のある分析をするためには、データを統合してBIツールが読み込みやすいようにするデータ前処理班が必要なのです。
ダッシュボードツール
アドホック分析とは対照的に、定期的にクエリを実行してレポートを作成したり、グラフを表示したりする目的のために使われるのがダッシュボードツールです。
有名なのには、Redashなどがあります。
AWS EC2にdockerベースのredashを一から設定して起動するまで
ダッシュボードツールはデータの分析を自動化して、定期的に確認することができることに主眼が置かれています。
しかし、BIツールのように対話的なダッシュボードを作ることに対応していないダッシュボードツールも多いです。
あくまで、定期的に最新の情報を可視化することに最適化されています。
ダッシュボードツールの限界
ダッシュボードの使用するためには、プログラミング言語やSQLを実行する必要があります。
(当然前処理も別途必要です。)
実際、高度なことができるとうたっている可視化ツールは、その実は、「内部でPythonコードを書いて実行できますよ」ということだったりします。
メルカリのデータサイエンスチームと分析エコシステムのはなし
この記事によると、
メルカリでは非アナリスト職でもSQLを書いて、簡易な分析は自分で出来る人が多いですね。
最近は財務部、経理部、法務部、デザイナーまで勉強中という噂もあります。(事実です)
とのこと。
分析するためにSQLを実行する必要があるから、みんながんばって勉強しているのですね。
普通の会社であれば、SQLを誰が書くんだという問題が発生しますね。
業務の改善フローが決まっていて、追うべき指標がもうずっと一定の会社などは、それなりのお金をかけてデータ分析基盤を整え、ダッシュボードツールを導入するのもいいでしょう。
しかし、普通は、見たい指標やデータはどんどん変わっていくものなので、SQLもどんどん新しく変えていかなければなりません。
まとめ
データ分析基盤がしっかり整っていて、きちんとデータの集計・統合をする余裕のある会社では、BIツールや可視化ツールの導入をするとよいでしょう。
エンジニア以外のメンバーもデータ分析をして日々の議論に活かしたい場合は、BIツールや可視化ツールを導入するしかありません。
ただ、見たいKPIが定まってなかったり、考察することもきちんと定まっていない場合には、BIツールを使って都度みんなで議論していくのがいいでしょう。
データ分析から考察の流れがすでに定型化されている会社の場合は、可視化ツールを使って分析の自動化をするとよいと思います。
まだまだデータ分析基盤が整っておらず、データをとりあえず貯めているだけのような場合は、プログラミング言語を使ってアドホック分析をして
ここできちんとアドホックな分析をすることで、その会社にとって重要なKPIはなんなのか、データを使って何を考察したいのかが明らかになっていきます。
非常に重要な手順です。
急に分析を自動化していっても、結局その分析は使われなくなるものかもしれません。
データ分析基盤を整えるのにも手間もお金もかかるので、深く考えずに分析基盤を作り始めるのは絶対によくないことです。
最後に
この記事は、私が友人たちと何年間もやっているStudyCoという勉強会のアドベントカレンダーの24日目の記事として書いています。
これまで私が書いた別の記事も是非参考にしていただけると嬉しいです!
これからデータ分析に取り組もうとするみなさんへのクリスマスプレゼントになればいいと思います!
聖夜もデータで語らナイト!メリークリスマス!