はじめてデータ集計を頼まれたときに気をつけたいことをまとめてみた

こんにちは。本日の担当は@ttanimuraです。リブセンスでデータ分析をやっています。
職業柄、データの集計を頼んだり頼まれたりすることが多いわけですが、よい機会なのでデータ集計を頼まれたときの注意点を集計の流れに沿ってまとめてみたいと思います。

想定している読者の方は以下の方々です。
データ分析の担当でなくても、DBの参照権限を持っているという理由で集計を頼まれてしまうエンジニアの方も多いのではないかと想像しています。

* ExcelやSQLなど、集計のためのスキルは習得している
* 実務でデータ集計を行った経験が少なくどう進めたらよいか分からない
* 何度か頼まれて集計を行ったが、何かうまくいってない気がする

最近は、ビッグデータやら人工知能やらでデータ分析界隈が賑わっていて、いわゆるデータ集計は軽く見られがちですが、基本はデータをしっかり見ることです。データ集計の重要性はまだしばらくは変わらないんじゃないかと思っています。

私もまだまだ未熟な身で、偉そうなこと書きますが、ご容赦下さい。

# 集計をはじめる前に
開発における要件定義でしょうか。集計前のこのフェーズが一番大切だったります。

## 集計の目的を把握する
仕事の流れのなかでデータ分析を依頼されることよりも、突然上司から「○○の数字調べたいんだけど、集計してくれる？」とお願いされることの方が多いかと思います。
この時に必要なことが、この**集計の目的を把握する**ことです。
言われると当たり前のことではあるんですが、もしこの確認をスキップすると、集計後に手戻り、ということになります。
なお、ここでいう**目的**は「○○の数字を調べること」でも「集計を依頼する相手（以下、依頼主）に数字を報告すること」でもありません。依頼主にはその数字を知りたかった理由があるはずです。「ある課題を解決する」ために情報を必要としてるかもしれませんし、「ある投資判断の決定」のために情報が必要なのかもしれません。「商品Aの売り上げ変化を調べてくれ」と言われたときに、依頼主が『商品Aへの投資強化を考えたいと考えている場合』と、『部門の売り上げ不振の原因が商品Aだと疑っている場合』ではその後のアプローチが全く異なってきます。多少うざがられても、納得いくまで目的の確認を行いましょう。

### 集計が意思決定に与えるインパクトを把握する
また、**目的**と連動するところですが、その目的が達成された場合の事業へのインパクト（収益・費用）も確認しましょう。その目的を達成するために集計結果がどれくらい鍵となるかを把握します。『集計結果次第で大きなインパクトのある施策がプロジェクト化される』と『大きなインパクトのある施策が動いていて、調べ漏れがないように細かい数字も把握しておきたい』では、動くお金は同じでも、集計結果が与える影響はだいぶ異なってきます。ちなみにこの確認作業は、自分のやる気度にも影響します。。。

#### 依頼内容を疑う
全てのタイミングで、依頼内容については常に疑う姿勢が必要です。依頼主は、「自分の前提が全人類の前提」だと思い込んでいることが往々にあります。目的と照らしあわせて、本当にその集計が必要か考えるようにしましょう。目的設定自体が怪しい場合は論外として、すでに手元にある数字だけで目的が達成される場合や、集計結果が意思決定の根拠になりえない場合を疑っておいた方がよいと思います。

## 既に把握されている数字を確認する
依頼主は、集計を依頼した数字以外に関連する数字を手元に持っている可能性が非常に高いです。自分が知る必要のない数字だなんて思わずに、情報共有をお願いしましょう。
もしこのデータをもらわずに集計を行うと、依頼主は手元数字とあなたの集計結果を見比べて、「なんかこの数字っておかしくね？」ということを言い出します。データを事前に共有してもらえば、自分で整合性チェックを行うことができます。

## 集計軸について合意をとる
集計目的に沿って、集計対象の条件（SQLでいうWHERE句）を確認します。主だったところでは、

* 集計期間
* 対象顧客・ユーザー
* 対象商品

上記の集計対象について調べるべき数字（UU数（取引・訪問）、回数（取引・訪問）、売上、etc）の合意をとります（SQLでいうSELECT句）。例えば「取引人数」という表現だと、countかcount distinctなのか認識のずれが生じやすいので、確認が必須です。私の経験からすると、この「集計軸について合意をとる」フェーズが依頼主との認識の齟齬が生じやすい事故多発場所でもあり、また逆に、事故を回避出来る可能性が高い場所でもあります。
また、どのような軸で分解して調べるか（SQLでいうとGROUP　BY句）も重要です。
集計軸を確認する時は、常に最初に確認した目的に立ち返りながら調べるべき数字について合意を取りましょう。依頼主は必要最低限の指示しかしてくれないことがあります。その場合の依頼主は、「自分の前提が他人の前提」だと考えています。なので、きっとあなたが気をきかせて目的を達成するべく必要な情報を提供してくれる（明確に指示をしなくても）と善意に捉えていることでしょう。

## 必要な集計精度とスピードを見極める
目的の把握が活きてくるステップです。目的に沿って、どれくらいの精度で、どれくらいのスピードでアウトプットを出す必要があるのかを見極めます。
データ集計を行うとき、正確な数字をだすためには、色々な絞り込みや、特別な条件のデータを除外する作業が必要な場合があります。しかし、この作業はかなり手間（時間）を要することが多いと思います。これをどこまでやるか。
例えば、最近はじめた新商品のプロモーションが赤字なのか黒字なのか把握したい場合に、「正確な売り上げ数字を出すために、1週間ほど時間がかかりそうです。手元の数字だけで出すと、正確な数字と3％ぐらいずれてしまいます。」という場合、Yes、Noの判断だけであれば、意思決定には3%の幅は関係ないかもしれません。この場合、精度よりもアウトプットのタイミングを急ぐべきです。しかし、適切な投資額を決定することが目的の場合は精度の方が重要ということもあるでしょう。
頼まれた集計が必要としてる精度とスピードについて自分で判断が難しければ、依頼主に確認をとるようにしましょう。

## 状況にあわせて判断を
依頼主にはウザがられるかもしれませんが、上記は基本的に必要なステップです。しっかりと目的を確認することで、次回以降、しょうもない仕事を頼まれにくくなったりもするかもしれません。
もちろん、これまでの経験や、依頼主との関係によっては、これらのステップを無視しても大きな問題とならないこともありますので、状況にあわせて判断してください。

# 集計するときに
集計作業時にもいくつか気をつけた方がよいことがあります。

## いきなり細かい集計から始めない
最初は全体から入り、徐々に分解していくイメージです。いきなり分解後の数字から入ると、全体感のなかで数値の異常を捉えづらくなります。集計ミスを早めに検知するためにも大きい数字を分解していった方がよいと思います。
また、全体から集計をはじめると、時間をかけすぎる前に途中経過を一旦報告するのも楽になります。

## 比較対象を設ける
依頼された数字を単独で報告するだけでは不十分な場合があります。例えば、自社サイトへのスマホでの訪問ユーザー数（先月分）を調べて欲しい、と言われた場合。素直に先月分のスマホ数字を報告すると、微妙な反応が返ってくることでしょう。
スマホの訪問ユーザー数を単独でみるのではなく、全訪問ユーザー数またはPCでの訪問ユーザー数と比較しないと出てきた数字の解釈は難しいのではないでしょうか。
同じように、先月の数字を評価するためには、前月、あるいは前年同月の数字と比較したくなるはずです。はじめの集計軸の確認のところで依頼主と合意をとっておくのがベストですが、依頼主もそれぐらい気をきかせてくれるだろうと明示的に指定してこない場合もあるかと思います。上述の、

* 全体の数字
* 別期間の数字

を始めとして、数字の解釈の為に最低限必要な比較対象を揃えておくと、その後の手戻りが防げます。

## 自分でも数字をみる
頼まれ仕事で集計をやっていると、特に忙しい場合には、自分では数字を確認せずに出した数字をそのまま依頼主に渡してしまうことがあります。しかし、簡単なミスの検知や依頼主との会話のためにも自分で数字を確認しておくことをお勧めします。最低限、

* 集計目的を思い出しながら数字を眺める
* グラフにしてみる
* 比較対象にした数字、依頼主からもらった数字と比べてみる

これらをやっておくと、残念な手戻りがぐっと減るかと思います。

# 集計結果が終わったら

## 見た目を整える

Excelで提出する場合は、罫線、数字の書式を整えましょう。数字を貼り付けただけのExcelを想像してください。桁区切りもなく、さらには小数点の表示桁数すらも揃っていない、そんなExcelです。もちろん、これで集計結果が変わる訳ではないですが、依頼主に「こんな見づらいものを出してくるってことは、自分で数字確認せずに持ってきてるんじゃ」と想像させてしまいます。見やすくするとはもちろん、仕事をやった感を出すためにも有効です。
ただし、急ぎの仕事で提出が遅くなった場合に書式にこだわりすぎると、「時間かけるとこ間違ってるだろ」という評価になるのでご注意ください。

## 定義などを記入

お互いのコミュニケーションのために、集計定義のわかりにくところは集計結果と一緒に書き添えておくとよいと思います。依頼主も最初に合意をとった集計軸について覚えているとは限りません。私のお勧めは、集計軸の合意を取った際にメールで最終確認を取ることです。「これこれ（合意を取った内容）で○○日までに集計を進めます」と伝えるだけで、手戻りを減らすことになるでしょう。

## 報告する

ようやく報告です。集計の内容によっては、メールでの報告だけで十分かもしれませんが、気になる点、伝えたいメッセージ、分かりにく点がある場合は少しでも依頼主と話す時間を持ったほうがよいかと思います。また直接報告することで、依頼主の反応を確認することができ、次回以降の仕事にも活かせます。
最後になりますが、集計結果がどのように意思決定に活かされたか依頼主からフィードバックを受けるようにするといいと思います。

# おわりに

思ってた以上に偉そうな書き方になってしまい、すいませんでした。
少しでも皆さんのお役に立てれば幸いです。