BIが流行り出した今こそ知っておきたい「キレイなデータ」のつくり方


データをビジュアライズ化し、そこからインサイトを得るのに長けたBI(Business Intelligence)ソフトウェアがものすごい勢いで広がっています。

 

図:CSVやXLSから取り込んだデータをビジュアル化

 

当研究所でも1年半ほど前からBIソフトウェアを導入し、利活用してきました。

使い続けて解ったことは、①ユーザーに何をどのように見せるか②BIに取り込むためのキレイなデータがあるか、この2つの準備が無ければ宝の持ち腐れになる、ということでした。

 

「見せ方」については、ビジネス書界隈で流行している「外資系企業のデータの見せ方」的な本が参考になると思います。私も数冊購入して仕事で使っています。

一方で、「キレイなデータ」について触れたビジネス書は全く見かけません。どれほど見せ方が上手くなっても、肝心のデータの内容が不揃いなら意味が無いのに、です。

そこで、当研究所では「キレイなデータ」を準備するためには何が必要かについて調査しました。

「キレイなデータ」とは何か?

そもそも論から始めてみます。

「データ」とは何でしょうか?

色んな見方がありますが、ある列(フィールド)に対して行(レコード)単位で表現できる、数字や言葉で表現される「記録」「ログ」と私は考えています。

図:データは列と行の組み合わせ

 

数字や言葉で表現されるデータ自体には価値はありません。加工したり分析したり意味付けしたり、手を加えることで価値が生まれます。

例えば、私は毎朝ほぼ同じ時間に近くのコンビニでウィルキンソン1Lを購入してから出社しています。ID-POSデータ上では、30代男性の購入データでしかありません。しかし他のID-POSデータを分析することで、購入頻度から私がヘビーユーザーであることが解ります。

 

ただ、もし他店舗が年齢や性別の記録を取っていなかったり、1Lと500mlを合わせて「ウィルキンソン」とだけ記録されていたり、違う店舗で異なるルールで運用していたら、分析することはできなかったはずです。

「キレイなデータ」は真逆の状態を指します。

つまり①整理されている②抜け落ちが無い③初めて見ても何を表しているか直ぐに解る、この3つが「キレイなデータ」の条件です。「キレイ」とは、手を加えやすいと同義と言っていいと思います。

学術的には「データ品質が高い」と言うようですが、この研究報告では「キレイなデータ」で統一します。

 

どうやって「キレイなデータ」を準備するのか?

データを管理する際に重要なことは、なるべく増改築しやすいように拡張性を高くすることだと言われています。

なぜなら、全体で100万行のデータがあったとして、1列を追加するのに100万行全てに影響が出るのか、それとも1万行で済むのか。影響範囲が大きく違うからです。

「キレイなデータ」にも影響します。データは後から列が追加される度に、整理した形が崩れ、抜け落ちが発生し、何を表しているか解らなくなるからです。データの上手な管理こそ「キレイなデータ」に欠かせません。

 

そのための準備として、データモデリングという手法が存在します。

モデリング(モデル)とは、ルールに基づいてモノやコトを整理する技法を指します。データを整理する技法だから、データモデリングと呼びます。

システム開発の現場だと、クラス図やER図を作成することを指します。

マーケティングの現場では、レポートを作成するために列(フィールド)を揃えることを指すのではないでしょうか。

全てが網羅されていて、「キレイなデータ」の3条件が揃った分析しやすいデータを準備するのに適した手法がデータモデリングです。

 

データモデリングは、①概念設計②正規化、この2段階で構成されます。概念設計が「全てを網羅」、正規化が「分析しやすい」を担います

 

どうやって「概念設計」を行うのか?

今、手元にあるデータを洗い出し、目的別に分かれたリストを作成することを「概念設計(概念モデル作成)」と言います。

このリストを見れば、全てが網羅されていることになります。

 

レポートを作成するために必要なデータは、社内のRDMSで管理されているか、あるいはベンダーによって社外のシステム上で管理されているはずです。

「概念設計」はそうした現状から始めるのではなく、ビジネスで扱っているであろうデータの洗い出しから始めます。現状から始めてしまうと何かしらの見落としがあって、後から「あのデータが無い」となりがちだからです。

 

例えばECサイトを運営している場合を想定します。

顧客リストに記載されている顧客名、性別、年齢、住所、電話番号。注文管理台帳に記載されている注文商品、個数、値段。こうした、ビジネスで扱っているであろうデータ列名をまずは洗い出します。

 

図:洗い出したものはどんどん書き留めておく

 

注意すべき点として「データ列名の粒度」が上げられます。後々に手を加えるを想定して、できるだけデータを細かい粒度に分けておきます。

例えば住所は都道府県以下を一緒に扱うよりも、都道府県、市区町村、丁目番地・号室は分かれていたほうが、後々に分析をする際に使いやすそうです。

また、データ列名に「計算後の値」は含めません。理由は2つあって、1つは計算はBI等が行うものでデータとして持つべきでないから、もう1つは大元のデータが間違っていれば修正範囲が広がるからです。

例えば、注文した商品、個数、商品の値段がデータにあれば、「合計金額」をデータ列名に作る必要はありません。

 

次に、洗い出したデータ列名を目的別に枠で囲います。この枠のことをテーブルともエンティティとも言います。

ちなみに、1つのデータ列名が複数囲まれることは問題ありません。

例えば、顧客リストを作成するのに顧客名は絶対必要だし、注文管理台帳に顧客名が無ければ誰が注文したか解りません。

 

図:枠線で囲う(重複はOK)

 

こうして囲った枠線毎に目的名を付けると、何を扱っているかが解って良いと思います。

 

データ列名を洗い出す、枠線で囲う、この2つの作業は恐らく行き来すると思います。最初から全て完璧に洗い出すことは非常に難しいからです。

枠線で囲ってみて、「あれが抜けていた」「データの粒度がまだ少し大きい」ということもあります。

データモデリングが終わって運用が始まってから「あのデータも足して」とならないためには、この「概念設計」がかなり重要ですから、むしろ行き来したほうが良いかもしれません。

 

そこで、概念設計のためのチェックリストを作成してみました。

 

洗い出し編

 

  • 普段使っている紙やシステムを対象に、データの洗い出しが行えましたか?
  • 普段口にしている単語は、洗い出したリストに含まれていますか?
  • 洗い出したデータの粒度は最小ですか?
  • データを分割したことで、重複するものはありませんか?

 

枠線編

 

  • 枠線で囲ったデータで表せることが目的名になっていますか?
  • 目的名に関係するデータを洗い出した結果、手元のリストのデータと一致していますか?

 

レビュー編

 

  • 作成したリストを最低2人にレビューして貰いましょう!
  • うち1人は、同じ部署だけど、違う課のメンバーに見て貰いましょう!(なるべく違う観点で見て貰うことが重要です)
  • 指摘事項を書き足したとき、他に漏れていないか、再度確認しましょう!

 

次回予告:「正規化」

データ列名の洗い出し、目的別の分類、これで現状のビジネスを取り巻くデータの網羅が完成します。

ここからが重要です。正規化という手法で、目的別に枠線で囲われた「データ列名」を分析しやすい形に整えます。つまり、「キレイなデータ」の3条件が揃うデータの管理方法に整えます。

どのように「正規化」を行うかについては、後半(次週更新)に続きます。

 

この記事のように、マーケティングメトリックス研究所では、分析だけでなく、
そのための準備に関するアドバイスも請け負っています。
ご興味のある方は是非、お問い合わせください。