Your focus determines your reality.

思ったことや新たに知ったことのメモとして。元々は留学中に考えていたことを記したブログでした。

過去の顧客データから予測する顧客の購買可能性

火曜日のCustomer Analyticsは、統計に基づくマーケティング分析手法について。

R言語を使った統計分析ソフトウェアRadiantの生みの親であるVincent Nijs教授による授業なので、バリバリ統計ソフトを使いまくる授業かと思いきや、マーケティングの目的に沿ってどのように統計が使えるかという思考部分もカバーしてくれる素晴らしい授業。

Radyでもトップレベルに洗練された授業であることは間違いない。

 

これまでの5週間は、主に「これまでのサンプル顧客の購買履歴データから、どの顧客が今後どれくらいの確率で商品を買いそうか予測する」手法について学んできた。

つまり、試しに商品を提案してみた一部の顧客(サンプル顧客)のうち、実際に買った顧客と買っていない顧客のデータをそれぞれの顧客のプロフィールデータとともに分析し、残りの多くの顧客について、それぞれの人がどれくらい商品を買いそうかの確率を考えていくということだ。

これができれば、試しに一部の人に商品を提案してみることで、残りの顧客に優先順位をつけて、商品提案をすべき顧客・しなくて良い顧客を選り分け、効率的な営業をすることができる。

 

手法としては、大まかに以下の3つを学んでいる。
・RFM分析
・ロジスティック回帰分析
ニューラルネットワーク分析

 

RFM分析

まず、

Recency(最近いつ商品を買ったか)

Frequency(どれくらいの頻度で商品を買うか)

Monetary(過去にいくら購入したか)

という3つの要素を使ってサンプル顧客をグループ分けする。

R/F/Mそれぞれの要素について顧客を5分割し、125個のグループに分割するのが一般的である。例えば、155というグループであれば、Recencyが1、FrequencyとMonetaryが5なので、「最近買い物に来たばかりだが、過去の購入履歴はほとんどなく、金額も少ない」→新規顧客グループという事になる。


その後、それぞれのグループの何割くらいの顧客が商品を実際に購入したか(Response Rate)を全部のグループについて計算する。コストと収益から、実際に商品を提案して何割くらいが売れなければ元が取れないかという損益分岐点は計算できるので、損益分岐点を超えているグループだけがターゲットということになる。

例えば損益分岐点が10%の時、グループ122は12%の顧客が購入しているがグループ445は5%の顧客しか購入していなければ、グループ122はターゲットとするが、グループ445の顧客は商売の相手にしない方が良い、という結論になる。

125グループ全てについてResponse Rateを計算したら、サンプル顧客ではない実際の顧客リストを125個のグループに分割し、ターゲットにすると決めたグループのみを対象に商品の提案を行っていく。

 

この手法の良さとしては、シンプルである点と、直感的な理解がしやすい点が挙げられる。

例えば、分割した顧客グループは以下のようにその性質が理解できる。
R / F / M(1が最も良く、5が最も悪い)
1 / 1 / 1:最近まで頻繁に買い物し、お金も使う→最優良顧客
5 / 1 / 1:過去頻繁に買い物をし、お金も使ったが、最近ご無沙汰→他社に取られた?
1 / 5 / 1:最近買い物をし始め、使う金額も大きい→新規優良顧客
5 / 5 / 5:過去にちょっと買い物をしただけの顧客→非優良顧客

 

ロジスティック回帰分析

RFM分析に加え、もっと多くの要素を組み込んで顧客の購買可能性を考えることができる分析手法。

線形回帰分析と違い、例えば「過去に◯◯の商品を買ったことがあるか」のようなYes/Noの項目からも有益な予測を引き出すことができる。

 

例えば今週の課題では、ソフトウェア企業が顧客に新ソフトのDMを送付するケースを扱っているが、R/F/Mの要素に加え、「現在顧客が使っているソフトのバージョン」「税会計ソフトを使っているか」などもモデルに組み込み、回帰分析を行っている。

f:id:zonotomo:20190210115116j:plain

真ん中に並んでいる項目とその右に並んでいるcoefficientの数値が、それぞれの顧客の性質が購入可能性にどれくらい影響を与えるかを表している。

例えば、下から3番目のowntaxprodは税会計ソフトを使っているかどうかの指標だが、このソフトを持っていれば、今回の商品の購入可能性が持っていない時と比べて30.7%向上することを示している。

 

ロジスティック回帰分析は持っているデータを全部突っ込めばより正確になっていくというわけでは無い。結果を予測するのにあまり有意でない数値を除いて行った方がよりシンプルで正確なモデルになっていく。

モデルの良し悪しを図る指標が画面の下から3行目に記載されたAIC赤池情報量規準という指標であり、この数値が小さいほど良いモデルになる。そこで、どのデータ項目をインプットとして使えば最も良いモデルになるかを知るために「ステップワイズ法」を用いる。
ステップワイズ法は、上記のようにすべてのデータ項目を使ったモデルから項目を一つずつ引いていき、AICが最小になるようなモデルを探していく手法である。これによって、例えば性別や過去バージョンのソフトウェアを買ってからの期間など有意でない情報を取り除き、より良いモデルとしていく。

f:id:zonotomo:20190210115120j:plain

全部のデータが入ったモデルと比較すると、18688であったAICが18681に微量であるが減少している。

ただしステップワイズの良くないところは、なぜこれが最良のモデルかの説明がつきづらい点である。

上司に「なんでこれが最適なんだ、もっと使えるデータあるだろ」「過去バージョンのソフトをいつ買ったかは関係するんじゃないのか」と言われても、「計算したらこれが最良なんです」としか答えられず、直感的にわかりやすい説明をすることができない。

 

ニューラルネットワーク

人間の脳のニューロンシナプスを模したモデルであり、それぞれのデータ要素が結果に与える要素を測るという点は回帰分析に似ているのだが、インプットとアウトプットの間に「隠れ層」と呼ばれる擬似変数を挟んでいる点が異なる。

f:id:zonotomo:20190210115324j:plain

例えば今回の課題ではインプットとして使える11個の要素があるが、これを隠れ層であるH1〜H3の三つの擬似変数に計算しなおし、さらにそこからアウトプットであるResponse Rateを計算するというステップになっている。

インプット→隠れ層、隠れ層→アウトプットの計算では、それぞれの要素が次の層の要素に与える影響(重み付け)を計算し直している。これにより、ロジスティック回帰分析よりもさらに高精度で結果予測をすることも可能となるが、人間の直感では全く理解できない説明となってしまうのが難点である。

 

どれを使うべき?

これらの手法を学んではいるものの、実務に置いて精度さえ良ければそれが良いモデルかと言えば、そんなことは無いと思う。

金額的な結果の良さはもちろんモデルの評価指標ではあるのだが、意思決定者にとってのわかりやすさや、モデル構築にかかる時間とお金も含めて、最適なモデルを選択できることが必要だろう。

扱う商品の性質や会社と顧客の関係によって使えるデータの質と量はかなり異なってくる。データが手元になく時間とお金も乏しい中でニューラルネットワークにこだわっていても理解は得られない。それよりはありもののデータでRFM分析をさっと回し、周りを納得させながらもターゲットを絞り込んでいくということができるようにならなければならないだろう。