
コホート分析のススメ feat.RFM
コホート分析のススメ feat.RFM
こんにちは!Repro の小沼といいます。
このnoteは「モバイルアプリマーケティングアドベントカレンダー2020」の4日目の投稿です。
面白かったら是非ハッシュタグ「#アプリマーケアドベント 」を付けてシェアをお願いします!
自己紹介
Repro株式会社の小沼(@knmr_u)と申します。
普段はRepro AI Labというところで機械学習エンジニアとしていろいろやっております。
最近はライブラリつくったりとか。
最近はそろそろふるさと納税しなきゃなあとか思ったり。(やっぱり肉かな)
今回はコホート分析について1つの分析の観点の紹介とRFMと組み合わせることで仮設立案や施策につながるアクションが起こせることについて紹介します。
記事の概要は以下の通りです。
要約
・コホート分析で今日のユーザーの調子を観察
・コホート分析で違和感を見つける
・RFMを組み合わせて仮設立案を効率的に!
背景
そもそもなぜこれについて書こうと思ったのか。
普段は機械学習モデルの構築やレポーティング業務をやっているわけですが、時々ダッシュボードをプロトタイプ的につくったりすることがあります。
そんな中でふとつくったダッシュボードが思いのほかよかったのでどこかに残しておきたいなあ、ということで思い立ちました。
こんな人向けです。
・分析手法についてあまり詳しくない人
・仮設立案に困っている人
・RFMもコホートも知ってるけど同時に考慮したことがない人(?)
正直あまり新しいことをしておらず、知っている人にとっては「まあそういうのやるよね」くらいの内容かと思います。
ので、データ分析の知見に詳しい方にとってはあまり有益ではないかと思われます。
それでは本文入っていきます。
途中で出てくる図については全てサンプルデータです。
(以降の内容は、何かしらのアプリのデータを分析することを前提に置いています。)
コホート分析とは
コホート分析とは以下のようなものです。
縦軸は流入日、横軸は経過日数です。
値はリテンションレート、つまり継続したユーザーの割合です。
ある流入日において、day0(経過日数0日目)のユーザーを100%として経過日数ごとに観測されたユーザーの割合を表しています。
例えば、2020-12-08に流入したユーザー群の2日目の継続率は59.9%と読み取れます。
基本的には流入初日(day0)からどんどん数値が落ちていき、ある程度の値まで来たら収束します。上記の例だと40%前後で収束しています。
Google Analyticsやその他MAツールでは多く見られる図なのでよく見る人もいるとおもいす。
かなり簡易的に説明したのでより詳しく知りたい方は、ブログやMAツールのドキュメントを読みにいくといいかもしれないです。
コホート分析で見つける違和感
まずは、以下の画像を見てください。
左は先程と同じ図で、右側が異なる図になっています。
左図では見られない斜めの線が右図で確認できます。
これのことです。
これはつまり、何らかのリテンションを促進する事象が2020-12-10に起こったという意味になります。
全ての流入日のユーザーが2020-12-10に戻ってきている訳です。
コホート分析はこのようにリテンションレートに影響があった日を視覚的に知ることができ、ヒートマップになっているのでそのリフト具合も1度に知ることができます。
ここからコホート分析を応用していきます。
RFMと組み合わせた応用
RFMとは〜を説明しようと思ったのですが長くなりそうなので詳しくはこちらを参照していただきたいです。
簡単に説明します。
RFMとはある3つの指標の頭文字を表しています。
・R -> Recency, 最新購買日
・F -> Frequency, 購買頻度
・M -> Monetary, 購買金額
RFM軸でユーザーごとに集計をし、各軸順にユーザー数を等分割するなどします。
例えば、5分割するとして、優良ユーザーと思われる群から1~5段階に分けるのです。
そうすることで、ユーザーを優良かそうでないかでランクを振り分けて施策を打ち分けることなどができるようになるわけです。
では、コホートの話に戻ります。
5段階のMonetary軸で5つのコホート分析をみる
今回は問題をシンプルに考えるためにMonetary軸のみを取り上げます。
例えばある日のMonetary軸5段階のコホート図が以下のようになっている場合を考えます。
Rank1が購買金額が少なく、Rank5が購買金額が多いことを表しています。
見てわかる通り、Rank4だけ例の斜めの線がありますね。
例えば、このような場合以下のような疑問が浮かびます。
・Rank4にのみ何らかのキャンペーンを行ったのだろうか。
・全てのユーザーにキャンペーンを行ったがRank4だけが反応したのだろうか
・広告で単価が高い商材を打ち出した結果、Rank4に集まったのか
などなど、あります。(ドメインが明らかでないので考えるのが少し難しいですが...)
上記のように生まれてくる疑問から仮設を立てて、施策を考えることができます。
・Rank4にのみ何らかのキャンペーンを行ったのだろうか。
→ Rank3のほうが単価が低いので、同様のキャンペーンを行ったらRank4よりも効果が大きいのではないか。
・全てのユーザーにキャンペーンを行ったがRank4だけが反応したのだろうか
→ 全ユーザー向けのキャンペーンはコストがかかるので費用を抑えるためにRank4のみに行っても効果は変わらないだろうか。
・広告で単価が高い商材を打ち出した結果、Rank4に集まったのか
→ 広告セグメントで予算節約のために既存ユーザーを絞っていたがRank1~3にも類似キャンペーンを実施してもよいのではないだうか。
などなど。
さらに、Recency, Frequencyも考慮することでより的を得た仮設を立てられるかもしれないです。
このようにコホート図を何らかの恣意的な群で分けることで、様々な知見が得られる可能性があります。
まとめ
・コホート分析で今日のユーザーの調子を観察
→ コホート分析でいつもの調子と変わりないか
・コホート分析で違和感を見つける
→ 施策効果や見に覚えのないユーザーの変動は起きていないか
・RFMを組み合わせて仮設立案を効率的に!
→ 恣意的な群で分けてみることで仮設を立てる
ただ、ローデータからデータを加工してコホート分析を作成するのは面倒ですよね。
エンジニアの協力が必要になるかもしれません。手前味噌で恐縮ですが、Reproなら都度都度エンジニアに依頼することなく、管理画面上で簡単にリテンション率を確認できます。ユーザー属性やOSでフィルタリングをかけることもでき、エンジニア工数を確保するのが難しい方にぜひオススメしたいです。
詳しくはこちら
次は、同じ会社の稲田(@HirotoInada)さんへ。
仮説ドリブンの施策検証サイクル についてです!