データエスノグラフィ入門 #02

必要なデータは揃っているか。

分析対象である、ECサイトの購買履歴データのBigQueryへの投入が完了したら、データ準備を行います。データ準備(Data Preparation)とは、データを分析可能な状態にすることを指します。なお、ここまでのプロセスは「データエスノグラフィ入門 #01」を参照してください。

ところで、データが分析可能とはどういう状態でしょうか。以下の三つのポイントで整理します。

  1. 分析目的の達成に必要なデータが揃っている
  2. 分析しやすいよう構造化されている
  3. 分析を妨げる欠損・異常値・表記揺れがない

当たり前ですが、必要なデータが揃っていなければ分析目的を達成することができません。今回の分析目的は「優良化する会員の行動特性を、購買履歴データから把握する」でした。

「優良」が何かにもよりますが、ここではRFMがある水準以上となることと定義します。RFMはRecency(最終購買日)Frequency(購買頻度)Monetary(累積購買金額)の頭文字をとったもので、現在の優良顧客を分析したり、未来に優良化する顧客を予測する指標としてよく用いられます。なお、Monetaryに近い概念として、顧客が企業やサービスに対して生涯で消費する合計金額を表す顧客生涯価値(Life Time Value:LTV)もよく使う指標です。

そうすると、RFMを切り口に会員の行動データを分析することになるため、会員ごとの購買履歴があれば条件を満たすことになります。もちろん、購買金額がわかることが前提です。今回のデータソースでは「購買履歴」がそれにあたります。

一方でRFMは、優良であるという結果を測る指標にすぎないため、なぜ優良化したかの原因を探るには別の情報が必要となります。人の行動を決定づける要因は無数にあり、たとえば優良化の原因としてウェブサイトのUIが使いやすいなども考えられます。ECサイトの売上向上にむけて本格的にPDCAを回すのであれば、RFMを押し上げる原因の仮説をたて、その検証に必要な情報を新たに獲得することも必要です。

とはいえここでは、すでにあるデータから原因を探るほかありません。今回のデータソースでは「会員マスタ」と「商品マスタ」が利用可能であるため、どんな人で、どんな物を買っていると優良化しやすいかを分析することは可能そうです。逆にいうと、その範囲での分析に必要なデータはひとまず揃っているといえます。

分析可能な形になっているか。

次に、分析するにはデータが構造化されている必要があります。データは構造化非構造化に大別されますが、構造化データ(Structured Data)は、端的にいえば行と列による表形式のデータのことで、CSVがその代表です。逆に表形式ではないものを非構造化データ(Unstructured Data)といい、XMLなどの記述様式に従ったものや、単なるテキスト・画像など全てを含みます。なお、ビッグデータの多くは非構造化データです。

Excelをはじめとして、ここで用いるBigQueryやTableau、あるいはPythonのデータ分析用拡張モジュールであるPandasなど、ほとんどの分析ツールは構造化データであることが前提となっています。したがって、非構造化データは構造化データに変換しなければなりません。

さらに、複数の表に別れている場合、同じ採番体系のキー情報により結合できる必要があります。今回のデータソースでいうと、購買履歴はどの会員がどの商品を買ったかを示すデータですが、それぞれ会員IDと商品IDのみで構成されており、その中身は会員マスタと商品マスタを参照する必要があります。つまり、購買履歴・会員マスタ・商品マスタの間で、会員IDと商品IDが一致している必要があります。当たり前のように思いますが、とくに顧客を示すIDが統一されていないケースも多く、その場合はさらに異なる採番体系のIDを紐づける別のマスタが必要なこともあります。

最後に、データの欠損・異常値・表記揺れを考慮します。例えば、ECサイトなどの会員の情報は会員登録時に入力するものですが、一部が任意となっていることがあり、入力されない場合は欠損となります。今回のデータでいうと、性別を切り口に分析する際に、欠損を考慮せずに女性比率を集計するとミスリードする可能性があります。

また、年齢は会員登録時に入力された生年月日から割り出すことが多いですが、いい加減な情報が入力されてしまい、「2歳」のような常識ではありえない年齢が混入することもあります。これを異常値といい、考慮せずに平均年齢を集計すると、実態を見誤る危険性があります。

さらに、住所の市区町村より以下はフリーテキストで入力されることが多く、同じ市区町村を表すものでも表記が異なる場合があります。このような状態を表記揺れ(同義だが異句の状態)といい、あらかじめ補正しておく必要があります。

なお今回のデータソースは、事前に構造化され、欠損・異常値・表記揺れがない状態に加工されたものであるため、これらを考慮する必要はありません。

選択バイアスを回避する。

データ準備が完了したら、基礎分析を行います。基礎分析(Basic Analysis)とは、データの全体像を俯瞰して分布と偏りを把握することをいい、その主な目的は選択バイアスの回避です。選択バイアス(Selection Bias)とは、分析対象として選ばれたものと選ばれなかったものの間に見られる特性の差により生ずる系統誤差をいいます。すべてのデータを分析対象にできない上に、そもそもデータとして存在しないものもあるため、大なり小なり必ず発生します。例えば、プリペイドカードの購買履歴には、カードの入金額の上限を超える高額商品の購買履歴が含まれていません。

選択バイアスの把握は難しい問題ですが、以下の二つのポイントを抑えるとよいでしょう。

  1. 既知の分布との違い
  2. 時系列データの開始と終了の問題

例えばECサイトの会員の性別や年齢の分布について、同じ業態で一般的に知られている分布があれば、それと照らし合わせることも有効です。もっとも特定の性別や年齢にターゲットをしぼった商品やサービスを展開している場合は、そこに偏りがあるのは当然でしょう。また、ECサイトと小売店の両方で販売展開している場合に、商品カテゴリごとの売上構成比率がそれぞれで異なることがあります。このようなビジネス特性を考慮することも重要です。

そして、行動データ分析において特に注意すべきなのが、時系列データの開始と終了の問題です。RFMの計測には、初回購入日最終購入日を正確に把握する必要がありますが、例えば今回利用する2005年1月から2013年12月までの購買履歴データにおいて、2005年1月1日に最初の購買履歴がある会員の初回購入日を2005年1月1日としてもよいのでしょうか。事実かもしれませんが、それ以前に購買履歴はあるもののデータとして選ばれていないだけの可能性もあります。

購買履歴データ以外に、会員の初回購入日がわかるデータがあればよいですが、なければ正しい初回購入日を把握することはできません。その場合は、購買履歴上で最初に登場する購買日が初回購入日である可能性が高い会員のみを対象とする必要があります。これは最終購買日についても同様で、最後に登場する購買日が最終購買日である可能性が高い会員のみを対象とする必要があります。仮に、購買間隔が一年以上開く会員がほとんどいなければ、購買履歴データの最初と最後の一年間に購買履歴が存在する会員を除外すればよいことになります。今回のデータで言い方を変えると、初回購買日が2006年1月以後かつ最終購買日が2012年12月以前の会員のみを対象とすればよいわけです。

では次回以降で、実際にBigQueryとTableauを操作しながら、顧客の分類と行動観察を行なっていきます。