回帰分析を意思決定に利用する

二見大揮氏:本日は「意思決定に回帰分析を利用した話と3つの学び」というタイトルで発表します。まずは自己紹介から。二見大揮と言います。2019年4月にRetty株式会社に新卒で入社して、現在はWebやアプリのプロダクト内の分析を行う、データ分析チームに所属しています。

今回お伝えしたい3つのポイントを最初に共有します。まず意思決定のアクションにつながる成果物をちゃんと把握する。交互作用なども考慮しながら「MECE」な分析設計に落とし込む。最後に信頼区間とp値から効きそうな説明変数を見つける。この順番で説明します。

弊社のサービス紹介をします。「食を通じて世界中の人々をHappyに」をビジョンに掲げたRettyというグルメサービスを運営しています。会場でRettyを知っている人、使ったことがある人っていますか?

(会場挙手)

ありがとうございます。けっこういらっしゃいますね。月間で4,000万人ぐらいの利用者がいるので、データもすごく貯まります。そのデータを使ってプロダクトを作っていくのが、僕の所属しているチームです。

データ分析チームだと、サイエンス寄りというか、メインは意思決定や基盤作り。あとはみんなが自由にデータを使えるようにする民主化みたいなことをやっています。方法としては、回帰分析を使っているので、その手順をみなさんに共有したいと思います。

回帰分析を利用する3つのポイント

今回の登壇では、僕は細かな技術などは詳しくないので省きます。回帰分析で今回具体例出してるんですけど、高度な意思決定をするときに、難しい分析も使いたいですが、そのときに抽象化して使えると思うので、意識して聞いていただければと思います。

分析にもさまざまな手法があります。ただ、一定以上の大きな意思決定の分析をしたい場合、シンプルなデータ分析でいい部分から難しい複雑な分析をしたい部分が出てくると思います。一方で、ちゃんと説明するのが難しかったり設計が複雑になっている部分をクリアにしておく必要があります。

じゃあ「Retty」はどうやって回帰分析を意思決定に利用したのかですが、「ちゃんと分析して課題設計をする」「分析設計をする結果」「それをどう評価するのか」。この3つに分けて話したいと思います。

意思決定者は何を求めているのか?

課題設計は、意思決定者が誰かを把握して、何を意思決定したいかを知る必要があります。そして、どんなデータがあればその意思決定ができるのかを考えます。この、誰が・何の意思決定をしたいのか・何を提供したらいいのか。この3つのポイントを押さえておく必要があります。

これを蔑ろにすると、分析者が「こういう分析があればいいだろう」と勝手に解釈して、最終的な意思決定者が「これだと難しいな」となり、差し戻しが起こる可能性があります。これはデータ分析全部にも言える話です。最終的な意思決定者が何を求めているのかは前提として重要です。

分析設計はMECEにすることが重要

次に実際に分析設計していく話です。意思決定者に納得感を持ってもらうため、順序を追って説明するには説明変数に「MECE」を使用するのが一番適任だと思います。あとは、重回帰分析だと交互作用とかもあると思うので、ちゃんと考慮して使用する必要があります。

プロダクトの分析だとけっこうあるのですが、施策の打ちやすさや季節要因があります。Rettyだとグルメサービスなので忘年会シーズンとかは使用される方が増えるんですけど、そんな繁忙期もしっかり加味する必要があります。

それぞれについて説明すると、僕が体験した事例でこんなことがあります。重回帰分析やろうとなったときに、MECEにちゃんと割り出した結果、10個ぐらい重要そうな変数が残りました。

先輩に「これどうですか?」と見せたら「これって本当に全部網羅した? ここなんで入ってないの?」と答えが返ってきました。結果は、納得感があまりない状態で差し戻しになりました。なので、最初にちゃんと抜け漏れなく作業しましょう。

2つ目の交互作用の話だと、例えばプッシュ通知の数と口コミの投稿数みたいなデータがあります。プッシュ通知を送れば送るほど、口コミ数がどんどん増えていく状態の際に、既存と新規で違うタイプのデータがあったとします。

このときにプッシュ通知と新規・既存の組み合わせで重回帰分析を行った結果、既存のイメージが強いときだと、「これ本当にこんなインパクト出るの?」みたいな疑問が生まれます。プッシュ通知をちゃんと打っている前提条件を揃えるとインパクトは一緒ですが、既存ユーザーのイメージが強い場合「本当にこんなインパクトになるのか?」となるので、順番通りで組み合わせてください。

重回帰分析の式だと、ちゃんと1個1個順番に、交互作用や施策の打ちやすさ、変数の組み合わせを考えていきましょう。

分析をどう評価するか

最後は、どうやって分析を評価するかという話です。予測誤差の精度は参考程度に、ここが意思決定分析の特徴だと思っています。

Kaggleなどデータサイエンスの分野だと予測精度のいいモデルを作ることが大事だと思いますが、そこだけにこだわりすぎると、かなり時間が必要になります。どうやってそこの評価をするかというと、p値などが偶然その結果になったのか、信頼区間がどれぐらいの影響の範囲なのかを見て評価することが大切です。

また、意外な説明変数があった場合に考察が必要です。本当にこの分析で意外な変数が見つかったらうれしいですが、自分でちゃんと説明ができないとせっかく見つけたのに使ってもらえない可能性もあります。ここの説明はちゃんと用意しておいてください。

ちゃんと予測精度のいい重回帰モデルを作成しようと思ったときに、時間がかかりすぎることもあるので、意思決定するのに、時間がかかりすぎることもあります。あとは、偶然効果のある変数を見つけるとここで、意思決定に使いづらかったりすると思います。

Rettyでの事例

まとめると、意思決定者が何を知れるか把握しておこう。ちゃんと交互作用とかを考慮しましょう。最後に、ちゃんと信頼区間とかp値とかから「たまたまじゃないか?」とか「どのぐらいのばらつきでそこに投資をしていく意思決定ができるか?」というところを見つけてください。

最後に、Rettyで実際に経験した事例ですが、僕はプロダクト側の分析者で、営業側のチームと連携を強くするための意思決定を利用しました。

まず、82個変数があったので、ここをちゃんと意思決定者と一緒に洗い出して、最後にそこに考察を加えます。大きく意思決定しそうなところにフォーカスして、変数に施策を打っていきました。

変数に例えばABCみたいなランクをつけて、どれぐらいインパクトがあるか。どれぐらいの確度でそこに対して意思決定できそうか。そして最終的に意思決定できるようになりました。

以上になります。ありがとうございました。

(会場拍手)