僕がデータを見る時にやってること

僕がデータを見る時にやってること

はじめに

普段どれくらいデータを見ていますか?

データと一言でいっても、Webサービスの運用をしている方であればGoogleAnalyticsのデータであったり、システムのログデータであったり、 検索があるサービスであれば検索の履歴や閲覧の履歴データなどがあります。

Webサービスの運用をしていない方でも、例えばオープンデータ。

オープンデータは政府や地方公共団体、大手企業などがデータ活用の促進のために一般に公開しているデータです。

以下に私がよく見るサイトのリンクを記載しておきます。

例えば、国土交通省から提供されている「自動車保有車両数」のデータではエクセル形式のファイルがダウンロードできます。 中身を見てみると既に統計分析されたデータを見ることができます。

このように実際にデータを取得する機会がなかったとしてもオープンデータを活用することでデータ分析や既存のサービスなどに付加価値を与えることができる例が出てきているようです。

これから僕がデータを見る時にまず最初にやるアプローチについて書きたいと思います。

初手 どんなデータがあるか調べる

まず最初に戦う相手を知らなければ勝負になりません。

また、取得できるデータがすべて有効であるとは限りません。

そのため、何のためにデータを見る必要があって、それにはどんなデータが必要になるのかを明確にしておく必要があります。

どんなデータがあるかについては、例えば売上の予測をする必要がある場合はこれまでの月間の売上データやその売上に紐づくデータ(お客さんの数や流動数など)が大切になるのでそのデータが必要になる のようなイメージです。

また、どのようにデータを取得できるかも重要です。

WebサービスなどでDBへのアクセスができる場合、SQLで必要なデータを抜いてくる作業が必要になりますし、GogleAnalyticsなどの知識も必要になります。

先述したオープンデータを利用するケースでは、提供しているサイトよりデータの特性を理解し適切にデータを用いる必要があります。

このようにデータを見る場合でもその前段階である「どんなデータがあるか」については時間をかけるべきであり、実際時間がかかります。

二手目 データの可視化

必要なデータ、利用するデータが定まったら僕は可視化を行っています。

多くのデータは、ぱっと見ではどんな傾向があるかつかみにくいです。

切れの良い数字である場合はほとんどなく、イメージがしにくいためです。

可視化にも多くのテクニックがありますが、先ずは折れ線グラフや散布図で可視化してみるのが良いと思います。

折れ線グラフで線形の傾向が見られる場合、未来の値をある程度予測できることがイメージできるでしょう。

また、散布図にすることで線形の傾向が見られないデータでも法則が見いだせることがあります。

単なる数字のデータより可視化をすることでこのような法則に気づけたり、分析が楽になることが多いと思います。

また、データには数字以外のデータもあります。

例えば、有料会員と無料会員のような定性的なデータです。(数字であらわすことができるものは定量的なデータといいます)

このようなデータの場合はそれぞれでグループ分けして定量的なデータで分析し、比較するといった手法が一番簡単だと思います。

また、定性的なデータはプログラムで扱う場合は数字に置き換えることが多いです。 例えば有料会員を1、無料会員を0として扱うのようなイメージです。

この場合の注意点は数字に置き換えたからといって定量的なデータと同じ手法は使えないという点です。

定量的なデータの場合、数字の大きさに意味を持っているため数字の大きさを使って計算を行ったり比較を行ったりすることができます。

しかし定性的なデータには数字の大きさには意味を持ちません。 例を用いると有料会員の方が無料会員よりも優れているとはならないという意味です。

この点は可視化の場合でも注意するべきポイントです。

三手目 数学・統計的指標を算出する

※先に述べたとおり、数学・統計的な指標は定量的なデータに用いることができます。

可視化を行うことに成功したら指標を出してみます。

今回は指標を出すところまでとしますので、ここが最終手です。

算出方法は他の解説サイトに譲りますが、どのような指標があるか紹介します。

平均値(mean)

平均はおなじみの指標ですね。サンプルの総和をサンプルの数で割ることで算出できます。

中央値(median)

中央値はサンプルを順番に並べたときの真ん中の値です。 平均では突出して大きな値があった場合にサンプル数が十分な数がないとその値に引っ張られる可能性があります。 その場合は中央値も有効な指標と言えるでしょう。

最頻値(mode)

最頻値は最も多い度数を示す値です。例えばあるレンジでサンプルを階級分けしたとして、一番多くのサンプルが所属する階級ということになります。 これによりどの値がでやすいかの傾向をつかむことができます。 平均では大きい数字があるとそれに引っ張られますし、中央値では大きい値と小さい値が多くあり、中央の値が少ない場合でもブレません。 その場合階級を使うことでデータの特性を見ることが可能です。

分散(Variance)

分散は平均値との差を二乗した総和をサンプル数で割った値になります。 分散を使うことでデータがどれくらい平均値の周りにばらついているかを見ることができます。 分散が大きいということは各サンプルが平均値と大きく離れた場所に存在しているということになります。

標準偏差(Standard Deviation)

標準偏差は分散の平方根の値をとったものです。 これらは平均値の差を利用するためマイナスの値が発生します。このマイナスの値を消すため分散計算時に二乗しますが、分散の状態のままの方が色々と使いやすいため良く分散が使われます。 一方、人間が理解する場合には平方根をとり、標準偏差とした方が直感的に理解しやすい場合があります。 おなじみの偏差値の計算には標準偏差が利用されます。 分散の平方根をとった値のためデータ特性的には分散と同じくです。

ここまで本当によく使われる指標を特性込みで紹介しました。

また、可視化の結果線形の特性が見られる場合、以下の指標もとってみると良いと思います。 (x,yの2次元平面で直線の場合で書きます)

傾き(Slope)

傾きは名前の通りグラフに直線を書いた場合の傾きです。 詳しい計算方法は譲りますが、分散と共分散を利用することで傾きを算出することが可能です。 ExcelやGoogleスプレッドシートを利用する場合はSlope関数で算出することもできます。

傾きは値が大きければ増加(もしくは減少)の幅が大きいことを意味します。

切片(Y切片)(Intercept)

切片は直線を引いた時のy軸と交わる部分の値です。 これは傾きが分かれば算出可能ですね。 ExcelやGoogleスプレッドシートではINTERCEPT関数を利用することで算出できます。

傾きと切片を利用することでグラフに直線を描くことができます。(グラフ上では未来の値を検討することができますね)

最後に

今回は僕がデータをみるときにまずやっていることを書いてみました。

正直なところ、これらのデータを見たり算出するのはまだまだ序盤です。

これらの数値をみて、どのような傾向があるのか予測・仮説を立てて検証をしていくことがデータをみることの基本だと思っています。

値を計算してみて満足するのではなく、そこからどのようなことが読み取れるのかが大切だと思います。

また、昨今では機械学習やディープラーニングが流行っていて、フレームワークを使うことで簡単にそれっぽいものを作ることができます。

これは普段データに触れていないひとでも簡単にできます。

しかし、いざ実際のデータを利用するとなると何もできないというケースは非常に多いです。

そのような場合も考えるとデータについて基本的な部分をしっかり抑えていくということが長い目で見ると非常に大切だなと感じます。