1. ホーム
  2. データ活用塾
  3. ビッグデータ活用講座
  4. 第7回 アソシエーション分析1

第7回 アソシエーション分析1

アソシエーション分析とは

Overview

アソシエーション分析

前回は、あるスーパー4店舗、半年間分の「嗜好食品」の内の「菓子」データを集めたID-POSデータを使って多重クロス集計による分析をしました。流通業界では、ID-POSデータを使って「アソシエーション分析(バスケット分析)」を行い、その結果を棚割りなどに活用しています。

ID-POSデータを使った「アソシエーション分析」を行う前に、今回は「アソシエーション分析」とは何かを知っていただき、Excelを使った簡単なアソシエーション分析を行ってみたいと思います。

まず、「アソシエーション分析」とはどのようなものなのかを簡単に説明し、Excelでどこまでできるかを見極めてみたいと思います。

Video

解説動画

アソシエーション分析の仕方を動画で紹介しています。

まとめてご覧になる場合

※動画で紹介している操作などの詳細については、以下をお読みください。

Theory

アソシエーション分析とは

「アソシエーション分析」とは、関連性を分析する手法で、膨大なデータの中から意味のある関連性を見出すことができます。ID-POSデータを分析する手法を「マーケットバスケット分析(バスケット分析)」と言い、「アソシエーション分析」の一部です。

ID-POSデータでは、商品とその商品の売れた個数などが分かりますが、「商品Aが買われると商品Bも一緒に買われることが多い」などといった商品間の関連性は分かりません。そこで、そのルールの関連性を評価する考え方として「アソシエーションルール」が生まれました。

A・Bを事象として「もしAならばBである」、あるいは「Aという条件の時Bが起こる」ということで、「A⇒B」と表します。事象は、2つ以上でも問題なく、「もしAかつBならば、Cである((AかつB)⇒C)」でもかまいません。

このような多数のルールの中から有益なルールを評価判断するために、「支持度」・「信頼度」・「リフト値」という指標が考えられました。

Indicator 1

① 支持度(support)

「支持度」とは、全体の中で、AとBが同時に買われる確率で、次のようになります。

支持度の例
支持度(A⇒B) = (AとBが同時にあるデータ数) / 全データ数

例では、AとBが同時にあるデータ数=4(レシートNo 1・7・9・10)、全データ数=10 なので次のようになります。

支持度(A⇒B) = 4 / 10 = 0.4

「支持度」が高くなると、Aを買うとBも買う人が多くなります。しかし逆に低くなると起こり難くなるので、ビジネス上面白味がなくなります。

Indicator 2

② 期待信頼度(expected confidence)

「期待信頼度」とは、全体の中で、Bが買われる確率で、次のようになります。

期待信頼度(B) = (Bのデータ数) / 全データ数

例では、Bのデータ数=6(レシートNo 1・4・6・7・9・10)、全データ数=10 なので次のようになります。

期待信頼度(B) = 6 / 10 = 0.6

「期待信頼度」が高ければ、Bを買う人が多いことになります。

Indicator 3

③ 信頼度(confidence)

「信頼度」とは、(A⇒B)とすると、Aが買われた中で、Bが買われた確率で、次のようになります。

信頼度(A⇒B) = (AとBが同時にあるデータ数) / Aのデータ数

例では、AとBが同時にあるデータ数=4(レシートNo 1・7・9・10)、Aのデータ数=7(レシートNo 1・2・3・5・7・9・10)なので、次のようになります。

信頼度(A⇒B) = 4 / 7 = 0.57

「支持度」が低くても、「信頼度」が高い場合は、Aを買うと、ほぼBも買うことになります。しかし、Bを買う人が多い場合は「信頼度」も「支持度」も上がり、特に拡販の企画などは必要ないように思われます。このような問題点をチェックする指標として「リフト値」があります。

Indicator 4

④ リフト値(lift)

「リフト値」とは、Aと一緒にBも購入した人の割合(信頼度(A⇒B))は、全てのデータの中でBを購入した人の割合よりどれだけ多いかを倍率で示したものです。

リフト値 = 信頼度(A⇒B) / 期待信頼度(B)

例では、信頼度(A⇒B)=4/7、期待信頼度(B)=6/10 なので、次のようになります。

リフト値 = (4 / 7) / (6 / 10) = 20 / 21 = 0.95

「リフト値」が低ければ、Bが単独で売れており、たとえ「信頼度」が高いとしても、Aとの関連性はあまりないとみられます。一般的には、「リフト値」が1以上の場合は有効なルールとされています。

このように、抽出されたアソシエーションルールは4つの指標を確認しながら、有益なものかどうかを判断します。そのため、膨大な組み合わせの中から意味のある組合せかどうかを判断するため「Aprioriアルゴリズム」が考え出されました。

Practice

Excelによるアソシエーション分析

レシートデータ

「バスケット分析(アソシエーション分析)」では、数値化されていない事象を、事象の出現回数で数値化し分析します。使用するデータは10枚のレシート分のデータで、ID-POSデータの構造と同じものを使用して分析します。出現回数も事象単独の場合と事象の組み合わせの場合があり、それぞれの出現回数を求めています。

Excelでは、事象の組み合わせによる出現回数を求めるのが少々難しいです。 そこで、事象の組み合わせによる出現回数を中心に、Excelを使用してバスケット分析を行うにはどのように行うのかについて調べてみます。

使用するデータは、前節で使用したレシート10枚分のデータで、最初に実際のID-POSデータの構造と同じものを使用して分析します。

10枚のレシートがID-POSデータとしてある場合は、図のように、商品名ごとにレシート番号があります。 一枚のレシートで複数の商品を購入した場合は、商品の種類ごとにレシート番号が付くことになります。

購入商品一覧

このままでは集計しにくいので、レシート番号ごとの購入商品の一覧を作成します。この「〇」を「1」に置き換えると集計しやすくなります。この変換を行うには、Excelのピボットテーブルを利用します。

Step 1

ピボットテーブルによるデータ変換

Excelのシートに、レシートNoと購入商品の表を作成し、次の操作を行います。

  1. 表中のセルをクリックし、[挿入]タブ→[テーブル]グループ→[ピボットテーブル]をクリックします。
  2. [ピボットテーブルの作成]ダイアログボックスでピボットテーブルの表示場所を指定します。
  3. 新たなダイアログボックスが表示されますので、ピボットテーブルを表示させたいセルをクリックし(今回は[D1])、<閉じる>ボタンをクリックします。
  4. 再度、[ピボットテーブルの作成]ダイアログボックスの<OK>ボタンをクリックします。
  5. [ピボットテーブルのフィールド]が表示されるので、[レシートNo]を[行]ボックス、[購入商品]を[列]ボックスへドラッグします。
  6. フィールドの[購入商品]を[Σ値]ボックスへドラッグします。
ピボットテーブル変換後
Step 2

併売数

次に作成した表で、併売されている商品の「併売数」を求めます。操作を誤ってデータを壊すことを防ぐため、表をコピーし、コピーした表をもとに「併売数」を求めます。

  1. 2つの商品の組み合わせごとに、同時に「1」があるかをレシートNo1 ~ 10まで調べます。商品「A ~ D」の内2つの組み合わせ(6通り)が分かるように見出しを記入します。
  2. はじめに、商品「A」と商品「B」の併売についてセル「S行」で調べます。
    レシートNo1の商品「A」と商品「B」が両方「1」ならば、「1」を記入し、そうでなければ、「0」を記入します。 これと同じことをレシートNo10まで行います。最後に「1」の数を合計すると、商品「A」と商品「B」の「併売数」がわかります。
    これらを行うために、セル「S3」に次の式を入力します。
    =IF(AND(M3=1,N3=1),1,0)
    <Enter>キーを押すと1が出力されます。これをレシートNo10の行(S12)までコピーします。
  3. 総計の行に、セル「S3 ~ S12」までの合計を出すとそれが商品「A」と商品「B」の併売数になります。
    =SUM(S3:S12)
  4. 次に商品「A」と商品「C」の併売について、「T行」で調べます。式の「M」の前に「$」を付け修正します。
    =IF(AND($M3=1,N3=1),1,0)
    修正した式をセル「S12」までコピーし、さらに「T列」、「U列」までコピーします。
  5. 次に、商品「B」との併売を調べる式を修正します。
    =IF(AND($N3=1,O3=1),1,0)
  6. 最後の商品「C」と商品「D」の併売も同様に行うと完成します。
併売数表

レシートの枚数を求めるには、「COUNTA関数」を使います。

=COUNTA(L3:L12)
Step 3

バスケット分析

各商品の組合せごとの「併売数」、「各商品の売上点数」、「レシートの数」が分かったので、各商品の組み合わせごとの「支持度」、「信頼度」、「リフト値」を求めます。結果は下図のようになります。

バスケット分析結果

まず、あなたの現場の課題を
聞かせてください。

専任スタッフが、最適なソリューションと導入シナリオをご提案します。