データ分析において必要なことを原点に立って考えてみる

今日は統計や技術の詳細な話は少しお休みして、そもそもデータマイニングとは何なのか、分析において必要なことは何なのかを考えてみます。

## 仮説力とは何なのか

データ分析の実務においては、分析モデルの手法や統計的方法の前にまず検討しなければならないことが多々あります。たとえば分析対象の問題をどのように設定するか、対象の特徴 (= 属性、振る舞い等) をどのように表現するか、何を可視化するかあるいはそれをどう決めるか、ログなどを用いて特徴の計算方法をどのように定義するか、といったことなどです。

実務というのは大学での実験ではありません。目の前にあるデータに対して興味先行で機械学習や統計的手法を適用しても得られるものはありません。統計学の有名な言葉に [GIGO (ゴミを入れればゴミが出てくる)](http://en.wikipedia.org/wiki/Garbage_in,_garbage_out) という言葉がある通り、高度な解析手法やツールに溺れても自己満足で不適切な分析に終わってしまうのです。

### 分析のシナリオを作る

可視化はデータ分析のゴールではありませんが、分析結果をわかりやすく表現して相手に伝えるための手段として大きなステップです。最初に可視化の目的を明確にすることで、どんなデータが必要か、どんなツールや手法を適用するべきか、おのずと定まってきます。

料理を考えてみましょう。とっても美味しいオムライスを作りたいという恋人の要求があったとします。この場合、恋人のために美味しいオムライスを作るのが目的です。そのための材料として卵や鶏肉やにんにく玉ねぎを買い物に出かけたり、調理器具や調味料が無ければ揃えたりします。自分の趣味でお好み具材で好みの味のデミソースを作ってオムハヤシを作っても喜ばれるかもしれませんが、それが目的では無かったはずです。

データ分析も同じで、まず目的を明確に、そこから逆算してどういったデータを用いでどのような分析手法を適用するか考えていきます。これが分析のためのシナリオになります。料理のレシピをまず考えるのと同じですね。仮説力とはシナリオを描くために多岐に渡る観点から柔軟な思考ができるかどうかという意味でもあります。

### 仮説力を発揮するために必要なモノ

それでは分析者が仮説力を発揮するために必要なものは何でしょうか。筆者は次の 3 つを掲げます。

1. 分析対象のドメインに対する知識と発想力
2. 職業的倫理観
3. 適切な分析知識や技術を迅速に理解して適用する能力 (柔軟性)

#### ドメイン知識

なぜデータ分析をおこなうのでしょうか。それは単なる膨大なデータの山から新たな知見を獲得し、そこからビジネスの価値を生み出すためです。まるで物語の中に登場する、単なる砂の山から金を作り出すアルケミスト (錬金術師) のようですね。確かにそういう意味で私たちはアルケミストと言えるのかもしれません。しかし物語の中に登場する妖しい呪文を唱えるアルケミストやウィザードと異なる部分として、私たちは確かな数値を基に論理でもって価値を生み出すところです。これは魔術の類ではなくて科学です。巷でバズワード化しているデータサイエンティストという言葉がありますが、それに対する批判の言葉を差し置いても、ビジネスの価値を生み出すための科学を身に付けた人間ならば、データサイエンティストと言っても差し支えないのではないかと筆者は考えています。

##### 分析シナリオを設計する

ビジネスの価値は定性的なゴールではなく定量的な数値で定義されます。定量的な数値を達成するためにデータを可視化するのですが、この時に必要なのがドメインに対する理解です。業務アプリケーション開発ではしばしば顧客知識が必要だなどと徹底的に教えられるのですが、今をときめくデータマイニングにおいても実は本質的には大きな差はありません。やはりドメイン知識は重要なのです。

さて一言でドメイン知識が重要だと言っても、それだけではよくわかりません。金融業なら金融工学や経済の本をたくさん読めば良いのでしょうか。ウェブサービスならそのサービスを徹底的に使い込めば良いのでしょうか。いえそうではなく、分析のゴールとして何を基に何を可視化するのか、分析のシナリオを決定するための知見を備えていることが筆者は大切であると考えています。

##### シナリオ設計のための発想や工夫

データのうち、どの変数を可視化するのか、どういったアウトプットを導き出すのか、これを設計します。もし本来手元に無いデータであれば、どのように推測するかを考えます。これがシナリオの設計です。

たとえば多数の利用者の位置情報のデータをもとに、あるイベントの来場者の導線を得たいとします。このとき位置情報にはアクセスポイントのエリア情報と電波強度と時刻印しかありません。しかし複数のアクセスポイントの電波の強弱から位置を推測する関数を用意し、時刻ごとの推移を見ることで移動速度という新たな変量を定義することができるはずです。移動速度から交通手段を推測したり、交通手段毎の来場者数を予測しイベント運営の改善に役立てるといった風に、分析のアプローチを工夫することができます。

こういったことを柔軟にさまざまな方面から発想できる力が仮説力へとつながります。仮説力の有無によってデータ分析のシナリオそのものが影響を受けます。学術や技術はこれらのシナリオを達成するための道具のひとつであり、分析者の仮説力が極めて重要になるというわけですね。

#### 職業的倫理観

以前に[統計のウソを見破るための 5 つの視点](http://qiita.com/ynakayama/items/322744e66fb8995fc7f6)を紹介しました。これは「[統計のウソをつく法](http://www.amazon.co.jp/dp/4061177206)」という良書からの引用なのですが、データマイニングにおいても全くもって同じことが言えます。

分析のシナリオ設計において、結果を思惑通りに見せようという欲求が高まると、データ分析者に誘惑という名の悪魔が襲いかかってきます。すなわち次のようなことに手を触れてしまうことです。

* 見せかけの相関を利用する
* 因果関係をすり替える
* こじつけや偶然を利用する

データの可視化はあくまで客観的な事実を中立的に相手に伝えるものでなければなりません。人を都合よく説得するためのものであったり、脅したり煽り立てたりするものではありません。

しかし前項で触れたように、データ分析とは単なる客観的な材料を寄せ集めるだけでなく仮説力が必要な作業です。分析シナリオの設計においてしばしば不適切な論理の変換をしてしまいがちです。

データ分析の際は、取得するデータのサイズや取得期間、取得方法、その定義や数値の単位について念入りに検証することが必要です。

また誰かにデータ分析を担当してもらう場合は、その分析のプロセスに論理的飛躍が無いか、目的に沿った分析であるか、明確な指標が導かれているか第三者が検証することが必要となります。

一見華やかに見えるデータマイニングの世界も、インターネットなどで時として揶揄される受託開発による業務システム設計の世界と、本質的なところでは共通のものが根ざしていることがおわかりになるかと思います。

#### 柔軟性

最後に大切なのは適切な分析知識や技術を迅速に理解して適用する能力です。これを最後に持ってきたのには充分な理由がありますが、やはり学術的知見や技術は軽視できるものではありません。

ただし大切なのは高度な解析手法に溺れず、ドメインに適した適切な分析手法や知識を素早く理解して、分析に発揮することです。これは一言で片付けられるほど甘いものではなく、血のにじむような努力も必要です。時には英語で書かれた難解な数式だらけの論文を読んで理解することも必要になるかもしれません。逆に言えばこれを呼吸をするように自然に日々積み重ねることができるなら、きっとデータ分析者として適性があり、今後も社会に価値を届け続けることができるでしょう。

これはデータ分析者だけでなく、エンジニアとして生涯を貫く気持ちがある者であれば、言われずとも自然に日々おこなっていることでしょう。

## まとめ

今回はデータ分析に必要なものは何なのか、データマイニングとは何なのか原点に立ち返りもう一度考えてみました。日々の生活の中で忘れがちなことなので、たまに原点に立って考えなおすことも大切かと思います。