だーくまさんのブログ

データアナリストに転職した元生産技術者のブログ

Issue Creation Meetup を活用して課題設定できるデータ分析者を目指す!

先日、参加したIssue Creation Meetupが有意義だったので内容を投稿します。
次回、参加を検討される方の参考になれば幸いです😃

はじめに

データサイエンティストに求められる能力の中に「課題設定力」があります。
プロのデータサイエンティストによるとこの能力はデータ分析プロジェクトの半分を占めるくらい重要です。


※以下の動画3:35あたりを参照。(問題設計≒課題設定と置き換えています)


www.youtube.com


Issue Creation Meetupはまさにこの課題設定力を鍛えるのための勉強会です。
データ分析系の勉強会として新しい試みではないでしょうか?


connpass.com

勉強会の内容


以下のお題について、チームで知見を出し、発表するというものでした。


お題:「あなたはゲームアプリ運営会社の社員です。
     あるサービスの離脱率を下げる施策を考えよ。」


参加者:5人/チーム×2チーム
役割:チーム内でファシリテーター、発表者、書記を決める
制限時間:1時間


与えられたデータは以下です。

ファイル カラム 行数
users_sample.csv インストール日、ユーザーID、性別、年齢、デバイスタイプ、アドネットワーク 4872
dau_sample.csv ログ(日付け)、ユーザーID 20066
action_sample.csv ログ(日付け)、ログ(時刻)、ユーザーID、デバイスタイプ、アクション名、アクションID 88865


主宰者が実務で使ったものを、企業秘密に触れない範囲で加工したものです。
なので、ビジネスで起こる現象をある程度反映しているデータになっています。


主宰者より、以下の基本方針が示されました。

■現状の確認
 ・KPIの基礎集計 - インストール数/DAU/継続率など
■問題設計
 ・仮説出し、検証
 ・目的変数、説明変数の定義
 ・結果を踏まえての施策案

与えられた情報は以上です。


1時間後に何かしらの施策を発表しなければいけません。
kaggleなどのデータ分析コンペでは、きっちり設定された問題に対して、モデリングや評価方法のスキルを競います。それに対して、Issue Creation Meetupでは、ビジネスでありがちなふわっとした課題に対して課題の設定と施策の決定が求められます。


CRISP-DMにおける棲み分けをざっくり書くと以下のようになるかと。


f:id:banquet-kuma:20200611175804p:plain
求められる能力の違い


どちらの能力がより重要という訳ではなく、バランスよく鍛えていくことが大切だと思います。


赤字で書いた内容を1時間で行うのはかなり大変です😅

チームでの活動内容


自己紹介もそこそこに、どういう方針を取るか協議しました。


チーム内にゲーム業界のドメイン知識がある人がいなかったので、
データを片っ端から可視化してて、それを基に皆で仮説を出し合うことにしました。
本来、データを可視化する前に仮説を立てて、その仮説を立証するための可視化を行うのがベターと思いますが、とにかく手を動かそうと言うことで意見が一致しました。


以下の時系列データを視化しました。

・離脱率
・アクティブユーザー数
・アクション別のアクション数
・デバイス別のインストール数
・アドネットワーク別の流入


さて、お気付きでしょうか?
離脱率ってどう定義するのでしょうか?結構難しいです。
協議していると時間が経ってしまうことと、与えられたデータから簡単に算出できなさそうだったので、1日のアクティブユーザー数の推移で代替することにしました。


つまり、「1日のアクティブユーザー数が減っている ≒ 離脱率が上昇している」と見なしました。アクティブユーザー数の推移を可視化すると以下のようになりました。


f:id:banquet-kuma:20200612093032p:plain
アクティブユーザー数の推移


8月に盛り上がり(夏休み?)を見せるものの、8月中旬から下がっています。
このことから、昨今の離脱率の上昇は本当であると結論付けました。


なお、お題の文言から、離脱率を下げる施策を考えていましたが、
同じようなヒジネス価値を生むのであれば、違う手段を取ってもOKでした。
(後で気付いた)


例えば、「1日のアクティブユーザー数を増やすにはどうすれば良いか?」とういうふうに思考を転換しても良いです。
この点については、主宰者のyokkunsさん(DATUM STUDIO株式会社の取締役CAO)より懇親会で解説がありました。


次に我々のチームで着目したのが、アクション数の推移です。
アクションには次の3つがあります。

・message
 ユーザー同士がメッセージを送る行為(チャット機能みたいなもの)

・asking_help
 ユーザーが他のユーザーに救援を要請する行為(協力して敵に立ち向かう)

・battle
 ユーザーが対戦ゲームを行う行為(このゲームの本筋な楽しみ方)


それぞれのアクション数を可視化すると以下のようになりました。


f:id:banquet-kuma:20200612214504p:plain
各アクション数の推移


グラフを見て分かることは、battleがmessageとasking_helpに比べて少ないということです。battleだけ抜き出すと以下のようになります。


f:id:banquet-kuma:20200612214722p:plain
battle数の推移


8月中旬のピーク以降減っています。
このことから、入会したユーザーの(ゲーム本来の楽しみ方である)battleへの移行率が低いことが離脱率上昇の要因と考えました。


それでは、なぜbattleへの移行率が低いのでしょうか?


もう一度、各アクション数のグラフ見て意見を出し合いました。

・messageとbattleは8月中旬以降減少
・asking_helpは8月中旬以降も減っていない
・messageとbattleは同じような位置にピークが立つ
・messageとasking_helpのピークに遅れてbattleのピークが立つように見える
 (①、②の位置関係)


f:id:banquet-kuma:20200612220724p:plain
message , asking_help , battleのピーク位置の関係,


これらの事実から、ユーザーの行動を以下のように推測しました。


f:id:banquet-kuma:20200612224814p:plain
ユーザーの平均的な行動


ただし、message & asking_helpとbattleの間に結構なタイムラグがあります。
このことから、battleについては、「〇回以上行ったユーザーのログが残る」などの仮定が必要になりそうです。(この仮定に一番無理があるかも😅 )


何故、battleが継続しないか?
battleのピーク(①、②)の前後でasking_helpの数は減っておらず、
救援要請が続いていることから、ゲームの難易度が難しすぎるのでは無いかと考えました。
つまり、、


f:id:banquet-kuma:20200613204512p:plain
インストール → 離脱までの流れ


この仮説を検証する施策として以下を提案しました。


「ゲームの難易度別にA/Bテストを行い、離脱率の変化を見る」


意見をここまで纏めたところでタイムアップとなりました😂.

懇親会での裏話

発表の後はRemo上での懇親会に突入しました。
一線級のデータサイエンティストに質問し放題というおいしい懇親会です😆


■発表に対してのフィードバック
 ・全体を見てから、各論に議論を移すのは良かった。
  ピークの日にどんな出来事があったなど、詳細にデータを見ていくのは次のステップ
  でOK。
 ・実は離脱の原因を特定するのは難しい。何の前触れもなく、突然消失するユーザーが
  一定数いる。
  だから発想を変えて、新規入会者を増やすという手を考えるのもあり。
  (ビジネス価値は変わらない)


■質疑応答
Q1.何故この勉強会を企画したかのか?
A1.データ分析できる様々なツールやkaggleのおかげで、"How to" は浸透した。
 しかし、課題設定できる分析者が圧倒的に足りていない。
 課題設定は文脈を読まないとできないタスクであり、今のところ機械化できない。
 逆に言うと、それができないと将来的に淘汰される。

 この話を私のイメージでまとめると以下のようになります。


f:id:banquet-kuma:20200613214654p:plain
どこを目指すか


Q2.こんな未経験からの参入者は嫌だ
A2.手法に拘る人
 データをよく見る前に、機械学習の〜手法にデータを突っ込もうとする人。
 こういう人は矯正するのに時間がかかる。


Q3.今回、時間制限が厳しかったが、1時程度で知見を求められることはあるのか?
A3.クライアントからというより、上司から「あのデータどうなった?何か言えそう?」
 みたいな無茶振りが飛んでくることはある(笑)

所感

短い時間で初対面の人と知見を出さないといけないため、参加する前はかなりハードルが
高いと感じていました。しかし、一つの目標に向かって一致団結すると意外となんとかなるものです。


時間制限の観点で大事と思ったことは以下です。

・とにかく思ったことを発言する(言うか言わないか迷っている時間がもったいない)。
・一方で、人が発言している間は静かに聞く。
・良いと思った意見はとにかく肯定する。
 「良いね!やってみよう!👍」みたいな感じに。
・短時間で可視化するためにExcelを使い倒せた方が良い。
・時間配分を意識して、余裕を持って意見をまとめる。
 「残り〇分になりました。ここまでの意見を要約すると〜」みたいな促しをする。


課題設定力はすぐに身に付くものではないので、こういった機会を活用して継続的に鍛錬していきたいです。
課題設定力を伸ばしたい方にはオススメの勉強会です!
参加者の皆様、特に主宰いただいたTakashiMinodaさん、yokkunsさんありがとうございました!😃