はじめに

皆さんこんにちは。第1回から非常に間が空いてしまい申し訳ありません。前回は、Google AnalyticsをひきあいにしてBIの活動全体を俯瞰してみました。BIプロジェクトでは、See/Plan/Doのサイクルで活動を進めていくこと、Seeにおいては対象領域のデータを分析し傾向を把握することなどを説明しました。前回の次回予告では、「分析のためのデータ構造・データ品質について説明する」と述べましたが、その話は次回以降に回して、今回は、Seeのフェーズにおいて重要となるOLAP分析について説明していきます。

分析対象の販売データ

OLAP分析のイメージを掴んでいただくために、まず、架空のドラッグストアの販売データを考えてみましょう。このドラッグストアは、以下のように店舗展開・営業をしているものとします。

  • 都市部で5店舗を展開するチェーン店です。
  • 各店舗は商業地域と住宅地域のような立地が識別されています。
  • 営業時間はどの店舗も9時~21時です。
  • 各店舗で定期的にバーゲンを実施しています。
  • バーゲン期間は全商品ではなく、特定のカテゴリーの商品だけが値引き対象になります。
  • ポイントカードを持っているお客様に関しては、年齢・性別などのデータを売上に紐付け記録しています。

図1は、販売データからポイントカード利用顧客のデータを抽出したExcelデータです。

図1:ITエキスパートと分析エキスパートの役割分担
図1:ITエキスパートと分析エキスパートの役割分担
別ウインドウで拡大表示

通常は、複数種類の購入をひとまとまりの購入として束ねるために、売上番号などで管理しますが、ここでは単純化のため省略しています※1。販売データの構成を表1に示します。

表1:販売データの構成
項目 分類 説明
店舗 属性 展開している5店舗(A,B,C,D,E)を識別します。
立地 属性 「商業地域」と「住宅地域」の2種類があります。
性別 属性 商品を購入した顧客の性別です。
年齢 属性 商品を購入した顧客の年齢を 10歳刻みで識別しています。
時間帯 属性 商品が購入された時間帯を1時間刻みで識別しています。
商品カテゴリー 属性 購入された商品のカテゴリーです「化粧品」「薬品」「バス用品」などのカテゴリーが識別されています。
期間 属性 購入された時期が「バーゲン期間」か「通常期間」か、を識別しています。
希望小売価格 数値 購入された商品のメーカーが設定している希望小売価格です。
売値 数値 販売されたときの実際の価格を記録しています。
数量 数値 購入された商品の数量を記録しています。
合計金額 数値 売値と数量を掛け合わせた数値です。

※1: 売上番号単位で(ECサイトの場合はカート単位で)データが残っていれば、併買分析(よく一緒に買われる商品の組み合わせを調べること)ができます。併買分析の結果はレコメンデーション(ある商品を買った人に、購入可能性の高い別の商品も薦めることで客単価を上げる販売方式)に応用できます。

販売により発生した売上(売値、数量)に対して、商品、顧客、場所、時間といった多次元の属性(ディメンション)が紐付いていることになります※2 (図2)。

図2:売上データと分析の次元
図2:売上データと分析の次元

※2: マーケティングの分野では、売り手側の観点として4P(Product:製品、Price:価格、Place:流通、Promotion:プロモーション)により市場にアプローチする理論があります。販売・マーケティングの分析では、4Pを意識してディメンションを定義することがよくあります。

Excelでピボット分析

データを分析するための一番身近なソフトウェアはExcelに代表されるスプレッドシートでしょう。Excelでは統計関数や分析用アドインを使った高度な分析も可能ですが、もっとポピュラーなのはピボットテーブル・ピボットグラフによる分析ではないでしょうか。表やグラフは、傾向をぱっとつかむ上では一番よく使われる可視化手段です。ピボットでは、複数の数値と属性からなるデータを非常に簡単に分析できます。例に出した販売データでは、売値や合計金額などの数値データを商品カテゴリーや顧客の性別などの属性をディメンションとして分析することが可能です。ピボットを使わなくてもグラフは描けますが、グラフの軸を指定する操作に手間がかかるため、素早く分析ができません。素早く分析ができないと、特徴あるディメンションの組み合わせを見つけるのに時間がかかってしまい、結果として有効な仮説が立てられず、施策(Do)にたどり着けないということになりかねません。

それでは、さっそく図1の販売データでピボット分析を行ってみます。Excel 2007の場合は、分析対象のデータを全て選択状態にして、リボンの「挿入」タブから「ピボットテーブル」のボタンをクリックしてピボットグラフをクリックします(図3)。「ピボットテーブル」を選んでもいいのですが、「ピボットグラフ」だとテーブルとグラフを両方作ってくれるので手間が省けます。

図3:ピボット分析を開始する
図3:ピボット分析を開始する

ピボットグラフは、図4のような画面で作成します。「ピボットテーブルのフィールドリスト」に、販売データの1行目(ヘッダー行)で定義された数値や属性データのラベルが並んでいます。「Σ 値」ボックスに、数値フィールド(売値や数量)をドラッグ&ドロップし、「凡例フィールド」や「軸フィールド」に属性フィールド(立地や性別など)をドラッグ&ドロップすると、グラフが描画されます。

図4:ピボットグラフ作成画面
図4:ピボットグラフ作成画面
別ウインドウで拡大表示

まず、合計金額の平均(1明細あたりの売上価格≒客単価)を顧客の性別と期間(バーゲンか通常か)で分析してみました(図5)。このグラフから、「通常期間とバーゲン期間では、バーゲン期間の方が、客単価が高い」「男性よりも女性の方が、客単価が高い」「女性の方が男性に比べ、バーゲン期間の客単価の上昇が大きい」などの傾向が見えます。女性をターゲットとしたバーゲンを頻繁に行った方が、売上がよくなるかもしれませんし、男性にとって魅力的なバーゲンになっていないのではないかということも考えられます。こんな単純なグラフからでもいろいろなことが推測できるものです※3

※3: これは架空のデータなので、実際の販売データではこんな傾向は出ないかもしれません。グラフからは、ここで述べられた傾向は直感的に明らかに見えますが、販売施策に適用可能な事実として認定するには統計的な裏付けをとる必要があります。グラフの例では期間の「主効果」 (バーゲンと通常では客単価に差がある)、性別の「交互作用」 (バーゲンに対する反応が男女で異なる)を示す必要があります。これには、十分なデータ量の確保と適切な検定方法の選択(この場合は分散分析)が必要です。統計的仮説検定に関してはまた別の機会に述べたいと思います。

図5:顧客の性別と期間を軸に分析
図5:顧客の性別と期間を軸に分析
別ウインドウで拡大表示

さて、また別の分析をしてみます。店舗の立地により、客単価を比較してみました(図6)。それほど顕著な差はないようです.

図6:立地による客単価の違い
図6:立地による客単価の違い

次に、店舗を軸に追加して店舗毎の平均客単価を比較してみました(図7)。住宅地域では、それほどのばらつきはありませんが、商業地域でA店とC店の差がちょっと目立ちます。

図7:店舗毎に客単価を表示
図7:店舗毎に客単価を表示

A店とC店の差がなぜ発生しているのか、いろいろなフィールドを「凡例」に追加してみました。「期間」を凡例に追加してみたところ、C店は他の店舗に比べてバーゲン期間の客単価の伸びが少ないことがわかりました(図8)。

図8:店舗と期間の軸を組み合わせ
図8:店舗と期間の軸を組み合わせ

店舗Cにはバーゲンハンター(バーゲン期間にバーゲン対象製品だけを購入する顧客)が多く来ているのかもしれません。また、店舗における商品陳列方法がよくないため、バーゲン品と通常価格品の併せ買いを誘発できていないという可能性もあります。そういった仮説を検証するためにさらに分析を続けたり、実際に店舗を視察して陳列のしかたを見たりして調査を続けることになります。

いかがでしたか。少々わざとらしい例でしたが、ピボット分析を使って非常に簡単に販売データの多次元分析ができるということがおわかりいただけたでしょうか。

完全に余談ですが、10年以上前、ある企業の販売部門のお客様と打ち合わせをしていたとき、そのお客様がExcelのピボットテーブルを使ってさくさくとレポートを作っているのを見てびっくりしたことを覚えています。プログラマーというのはプログラミング言語で問題を解決しようとするのでExcelのようなエンドユーザーコンピューティングツールの機能をあまり知らない(知ろうとしない)傾向があるような気がします。

OLAPの概念

上記の例では、オフラインデータ(ローカルのExcelシートのデータ)を分析しました※4。データベースに接続して同じことをするのがOLAP(Online Analytical Processing)です。Excelもシートだけでなくデータベースに接続してピボット分析を行うことができるため、単独でOLAPツールであるということが言えます。

一般的にOLAPツールでは業務システムのデータベース(もしくは分析専用に構築された特殊なデータベース:データウェアハウス)に接続して様々なディメンションで集計されたデータを取得して表やグラフを作成できます(図9)。

図9:OLAPツールの概念図
図9:OLAPツールの概念図

※4: Office2003以前のExcelには最大65,536行という制限があったため、大量のデータを分析するにはシートではなくデータベースに格納した生データにクエリーを発行して条件による絞り込みや集計で行を減らして取得する必要がありました。65,536行以下にデータを絞り込めない場合は、Excelよりも使い勝手の劣る(高価な)BI製品を導入しなければなりませんでした。

図9の集計データの集合は「キューブ」と呼ばれます※5。まさにルービックキューブのようなイメージで、軸を回転させたり入れ替えたりして数値を分析できます(図10)。

図10:OLAPキューブによる多次元分析
図10:OLAPキューブによる多次元分析

※5: 人間が想像しやすいのは3次元までなので、キューブ(立方体)という表現になっていますが、4次元以上の集計が可能です。

ピボット分析の例では、商品、客、店舗などの次元で売上の数値データを分析していました。
OLAP分析ではキューブに対して「スライシング」、「ダイシング」、「ドリルダウン」、「ドリルスルー」という操作でデータの特性について理解を深めていきます※6。これらの操作について簡単に説明します。

「スライシング(Slicing)」は、キューブをある特定の2つのディメンションで断面的に切り取ることです。顧客の性別とバーゲン期間で単価を比較した図5の分析がこれに相当します。

ダイシング(Dicing)」は、切り取るためのディメンションの組み合わせを入れ替える操作です。顧客の性別と販売時間帯を組み合わせたり、店舗の立地と顧客の年齢を組み合わせたりと、分析のバリエーションは非常に多く存在します。サイコロ(Dice)を転がすように軸を入れ替えるという比喩から来ています。スライシングとダイシングは一緒に用いられることの多い表現で、実際の分析でも2つを組み合わせて試行錯誤しながら進めます。

「ドリルダウン(Drill Down)」は、一つの集計値を一つ下のレベルに分解して観察することです。図6で店舗の立地で売上比較を行い、さらに図7で店舗別の売上を見ていますが、これはドリルダウンの例と言えます。店舗のディメンションは、立地 > 各店舗 という階層構造になっていますので、ドリルダウンというのは、より深い階層に「掘り下げる」こととも言えます。

「ドリルスルー(Drill Through)」は、ある集計値の元となった生データを取り寄せることです。スライシング・ダイシング・ドリルダウンにより特徴的なディメンションの組み合わせを発見したら、その集計値を構成する元の生データをドリルスルーにより取得して詳細に調査することができます。多くのOLAP製品でドリルスルー機能が提供されており、ディメンションの組み合わせで元のデータベースにクエリーをかけることで実現されます。

図11:ドリルスルーによる生データ取得
図11:ドリルスルーによる生データ取得

※6: ExcelではSQL ServerのBI機能であるAnalysis Serviceで管理されるキューブに接続してピボット分析を行うこともできます。

Excelでもピボットテーブル上でコンテキストメニューを出して「詳細の表示」をクリックすると、集計値の元データが絞り込まれて別シートに作成されます(図12)。図の例では、「性別 = '男性' and 製品カテゴリー = '化粧品'」という条件で元のデータを絞り込むことになります。

図12:Excelのピボットでのドリルスルー
図12:Excelのピボットでのドリルスルー
別ウインドウで拡大表示

OLAPは、試行錯誤を繰り返してデータの傾向を発見するための強力なツールです。このような試行錯誤的な分析を「非定型な分析」ということがあります。

把握した問題点を改善するには、改善施策を実施して、傾向を把握するときに注目した数値(先ほどのドラッグストアの例ではバーゲン期間と通常期間の顧客単価の違い)が望ましい変化をするか監視する必要があります。第1回で業務改善の指標としてKPIを使用するという説明をしました。OLAPではKPIを毎日/毎週/毎月のように定期的に業務データから取得しモニタリングすることにも利用できます(定型レポート化)。例えば、バーゲン期間と通常期間の顧客単価の比率をKPIとして抽出し、商品陳列やチラシなどの販売戦略の変更を実施して、このKPIがどのように変化したかを定期的に確認します※7

※7: KPIには、単純な集計値では求められないものもあります。例に挙げた顧客単価の比率なども、集計した値をなんらかの式に代入して得られる値です。Excelでは、セルに数式を埋め込んだり、VBAなどプログラミングでビジネスロジックを適用したりしてKPIを求めることが可能です。多くのOLAPツールで集計値に数式やロジックを適用して値を算出する機能が提供されています。

前回説明したBIの仮説検証プロセスの図を再掲します(図13)。

図13:BI利用の仮説検証プロセス
図13:BI利用の仮説検証プロセス

OLAP分析により、Seeの局面で業務の問題点を数値として把握することが可能です。問題点を認識したら問題についての仮説を立て改善施策を計画 し(Plan)、仮説を検証するために施策を実施します(Do)。KPIをモニタリング(See)することで、施策の効果をこうすることで施策の効果を確認することができます。

ドラッグストアのC店の例では、バーゲン期間の客単価が伸びない原因として「バーゲンハンターがいる」「商品の陳列方法やPOP※8が効果的でない」などがあり、改善施策の例としては、「バーゲン品以外の品揃えを訴求する」、「陳列方法、POPを改善する」などがあります。具体的にどのような施策を実施するかというのは販売のノウハウや他店舗との違いの分析など業務エキスパートが知恵を絞る必要があります。OLAPも改善案の立案まではやってくれません。OLAPは業務についての「気づき」を得るためのツールであり、施策の効果を「数値で測定する」ためのツールなのです。

このように、OLAPを「非定型分析による傾向・法則の発見」、「定型レポート化によるモニタリング」の2つの局面で有効利用することで、仮説検証プロセスをうまく回していくことが可能です。

※8: POP(Point of purchase advertising)は商品の脇などに配置して、購買を促すためのパネルなどの媒体を指します。

おわりに

今回は、Excelのピボット分析の例によりOLAPの基本的な概念を説明しました。

今回見たようにExcelはOLAPツールとして十分な機能を備えていますし、ピボットグラフやテーブルがそのままレポートにもなりますので、特に専用のBI製品を導入しなくてもよいぐらいです。ですが、世の中では多くのOLAP製品が開発・販売されています。これは、なぜでしょうか。そこで、次回は、OLAPに求められる要件、実現方式について取り上げ、テクノロジー面をもう少し詳しく説明します。さらにOLAPのデータ基盤であるデータウェアハウスの実現方式についても解説したいと思います。