読者です 読者をやめる 読者になる 読者になる

「意味のある分析に注力するために」メルカリをデータ面から成長させるための土台作り

初めまして!メルカリ BI(Business Intelligence)チームの@hasebeです。 以前、BIチーム全体の紹介をさせて頂きましたが、今回は「こんなことやってるよー」という実業務で行なった分析を紹介してみたいと思います。

mercan.mercari.com

日次KPIを考察するために

アプリやウェブサービスなど、インターネットに関する事業を行なっている会社では日次でKPIの進捗確認を行っている会社も少なくないと思います。

メルカリでも、代表的なKPIとしてDAU、新規インストール数、商品の購入金額、新規出品数などがあるのですが、これらの数値が良くなっているのか、悪くなっているのかを判断するにはその基準となるものが必要です。

元々KPIを日次で自動的に出力する機構はあったのですが、BIチームの人数が増えたことでようやく本格的な考察を実行できる体制が整ってきたという状況です。

今回は、そのKPI考察を行なうための土台作りとして行ったことをお話ししたいと思います。

さて、KPIを見ていくにあたり、重要になってくるものとして、「前日比」があります。 例えば、「DAUが2%上がっている」とかは数字を並べればすぐに解ることですが、この2%という数値をどう解釈すれば良いでしょうか。

「前日に打った施策の影響」「前日が休日だったから伸びた」「いや、休日なら本来は減るはずだ」などなど目安となる数値がなければ何通りでも仮説を思い描くことが可能であり、そこから往々にして最も都合の良い仮説を当てはめて物を考えてしまう。こうなっては分析としての体を成していませんよね。

かといって、毎日の分析に「あーでもない、こーでもない」とあらゆる可能性に対して分析を行っていくというのも、かかる工数が大きくなり過ぎて現実的ではないでしょう。

そこで、何事も無ければ大体このぐらいの数値で推移するはず、という大まかな目安を作成し、そこからのずれの度合いを見て分析すべきなのかどうなのか当たりをつけるということが重要になってきます。

今回は曜日ごとの前日比の両側95%信頼区間を算出し、それらの数値内で推移しているかを平常運行なのか、何か起きているのかの判断の目安とすることにしました。

日次KPIの誤差を推定する

信頼区間を算出するにあたり、まずデータがどのような分布をしているのかを確認する必要があります。下記の図はとあるKPIの前日比を0.05ごとに切り分け、曜日ごとに生起頻度をヒストグラムにしたものになります。(※データは加工してあります)

f:id:mercarihr:20160607122503p:plain

この分布があまりにも正規分布からかけ離れていたりすると話が複雑になってくるのですが、幸いなことに概ね正規分布のデータが得られたので、

曜日ごとの前日比の平均±2σ範囲

を両側95%信頼区間推定として採用し、この範囲内に収まる場合は誤差であるという目安にしました。

推定した誤差をどう活かすか

当然、施策を打って効果があったのか無かったのかは別途分析しますので、日次のKPI分析の主な役割は意図していない上昇/低下を検知し、低下を食い止めたり、上昇の原因によっては施策の種にしたりするといったことになります。

こうした役割から考えると、意図していないものについて考えるわけですから、何か起こることの方が稀なわけです。

数%のブレが与えるインパクトは決して小さいとは言えないことも少なくありません。ですが、その数%が偶発的かつ日常的なブレによってもたらされることは少なくないのです。そのようなブレに対して「何か理由があるはず」と分析を行うのは非常に非効率です。

誤差推定の真の価値は、このような「分析すべきではないもの」を誤差と割り切って捨て、本来注力すべき仕事にその労力を回すことが出来る点にあります。

日常的なブレに対して「絶対に何かあるはず」という誰かの先入観によって意味のない分析を延々とさせられた経験、ある方も多いのではないでしょうか。メルカリでは定量的な目安に基づいて行われた誤差の判定に他チームからも納得の声が得られています。

意味のある分析に注力出来る環境で一緒に働いてみたい方、メルカリでは絶賛募集中です!

www.mercari.com