2017年5月23日火曜日

データの特性にあった加工ツールの選定を

データ分析プロジェクトにおいてデータ間の紐付けや集計といったデータ加工は、ほぼ必ずと言っていいほどあります。そしてデータ加工に幅広く使われるツールはExcelではないでしょうか。
Excelでは、ピボットテーブルを使ったクロス集計、VLOOKUP関数を使ったデータの紐付けをはじめ様々な関数を用いたデータの加工が可能です。ある程度プログラミングができる方であれば
プログラム言語を用いてデータ加工を行うと思います。また、データ量が大きくなると必然的にプログラミングを用いて処理する必要がありますが、とっかかりとしてはExcelを用いることが多いでしょう。

ただし、Excelには少し注意しなくてはいけない点があります。それは集計や紐付けなどを行う場合、Excelではアルファベットの大文字と小文字を基本区別しない、ということです。例えば「Aa」と「aA」は同じ、と認識されます。実際のデータでは以下のようになります。

表1のデータをIDごとに回数の合計(総回数)を集計するとしましょう。正しい集計結果は表2のようになるのですが、ピボットテーブルを用いて集計した場合、表3のように、元データの一番先頭のIDの「Aa」で集計されてしまいます。


VLOOKUP関数で紐付けを行った場合も同様です。表4-1の表4-2を紐付ける場合、表5のように紐付けられるのが正しい結果ですが、VLOOKUP関数を用いて紐付けを行うと表6のように正しく紐付きません。
(※VLOOKUP関数の構文はもっとも一般的な [VLOOKUP(検索値,範囲,列番号,検索方法)]を想定しています)


なお、Excelが大文字と小文字を判別できないわけではありません。EXACT関数を用いれば識別すること自体は可能です。しかし、ピボットテーブルでの集計やVLOOKUP関数を用いた紐付けではそのままでは処理ができません。IDデータの置換や他の関数と組み合わせて処理をする、といったことが必要です。IDデータの置換といった作業は人力で行う必要があり、繰り返して行うとミスが発生する可能性が高まります。そのような場合は、習得する手間はかかりますがプログラミング言語を用いる方が結果的に効率的にデータ加工を行うことができます。

このようなことをお伝えしようと思った背景は過去のプロジェクトでの出来事がきっかけです。

弊社では、自社にデータ分析ができる人材を育てたい、というご要望を多く頂きます。そういったご要望にお応えするために、CRISP-DM(※1)に沿ったデータ分析プロジェクトを自社で行えるようにする支援も行っています。また、解析の自動化エンジンbodais(※2)を用いることで、統計の知識等がなくても解析部分の多くを行うことが可能です。しかしデータの準備・加工の部分はお客様にて行っていただく必要があります。
そのプロジェクトは営業最適化を目的に営業支援システムのデータを用いて、受注しやすい企業を予測する、というプロジェクトでした。分析の目的設定や、データ加工、結果の解釈、自社内への展開に向けた議論、といった各段階のタスクを、まずお客様自身で行っていただきました。弊社では、データ加工の技術的アドバイスや、目的設定や結果解釈・自社内への展開に向けた議論を共に行いました。

データの加工の段階では、まず営業支援システムから商談情報や企業情報を抽出していただきました。それを解析用データに加工するためには、「商談情報の集計」と「企業情報との紐付け」が必要です。当初お客様の担当者はRなどのプログラミングは馴染みがなく、また「商談情報の集計」と「企業情報との紐付け」のみの作業であり、データ量も数万件程度でした。そのため、お客様にはExcelを使ってデータ加工を行っていただくこととしました。

問題が発生したのは実際に商談情報の集計を行い企業情報との紐付けを行った時です。
企業情報は集計はせずに営業支援システムから抽出しています。その上で集計を行った商談情報との紐付けを行いましたが、紐付けがうまくいきませんでした。そこで、お客様からデータをお預かりし、弊社でRを用いて集計を行い結果の差分を検証したところ、上述の問題が明らかになりました。

 当時の振り返りをいたしますと以下の2点が留意すべき点として考えらえれます。
・ExcelでピボットテーブルやVLOOKUPでの紐付けを行う場合は文字の大文字・小文字を同一に扱ってしまう、という仕様を把握していなかった。
・営業支援システムから抽出されるID列の仕様(大文字小文字で異なるIDとする)を把握していなかった。

今後、お客様にデータ加工の作業の依頼をするような場合には今回の点を留意し、データの形式の確認をしていく必要があると感じた案件でした。皆様の今後の気づきになると幸いです。
(※なお、上記案件ではお客様にR言語を習得いただきデータ加工を行いました。)


※1:SPSS、NCR、ダイムラークライスラー、OHRAがメンバーとなるコンソーシアムにて開発されたデータマイニングのための方法論を規定したもの。業界横断的に展開可能なデータマイニングのプロセスモデル。
※2: 300を超えるデータ解析プロジェクト実績をベースに開発された、機械学習機能を内蔵した自動進化型データ解析プラットフォーム。専門知識がなくても、ビジネス上の意思決定に活用できる解析結果を得られます。

データサイエンス部 根本(株式会社アイズファクトリー