🛒 STEP 28: バスケット分析(アソシエーション分析)
一緒に購入される商品の組み合わせを発見しよう
📋 このステップで学ぶこと
- バスケット分析とは何か
- サポート・信頼度・リフト値の計算
- Aprioriアルゴリズム
- クロスセル施策への応用
- PythonとExcelでの実装
学習時間の目安:3.5時間
🔍 1. バスケット分析とは
基本概念
顧客の買い物カゴ(バスケット)を分析し、一緒に購入されやすい商品の組み合わせを発見する手法
有名な例:「おむつとビール」
・アメリカのスーパーでの発見
・金曜夕方、おむつを買う人はビールも買う傾向
・理由:父親がおむつを買いに来て、ついでにビールを購入
・結果:おむつとビールを近くに配置して売上アップ!
ビジネスでの活用:
1. クロスセル:「この商品を買った人は〜も買っています」
2. 商品配置:一緒に買われる商品を近くに配置
3. セット販売:同時購入が多い商品をバンドル
4. レコメンデーション:購買履歴から次の購入を予測
5. 在庫管理:関連商品の在庫を連動させる
3つの重要指標
商品の組み合わせを評価する3つの指標
1. サポート(Support)= 全体での出現頻度
・その組み合わせが全取引の何%で発生するか
・サポート = (AとBを同時購入した取引数) / (全取引数)
例:
・全取引:1,000回
・パンと牛乳を同時購入:100回
・サポート = 100 / 1,000 = 10%
→ 10%の取引で「パンと牛乳」が一緒に購入されている
2. 信頼度(Confidence)= 条件付き確率
・Aを買った人がBも買う確率
・信頼度 = (AとBを同時購入) / (Aを購入した取引数)
例:
・パンを購入:200回
・パンと牛乳を同時購入:100回
・信頼度 = 100 / 200 = 50%
→ パンを買った人の50%が牛乳も買う
3. リフト値(Lift)= 関連性の強さ
・Aを買った場合、Bを買う確率がどれだけ上がるか
・リフト値 = 信頼度 / (Bの購入確率)
例:
・牛乳の購入確率(全体):30%
・パンを買った時の牛乳購入確率:50%
・リフト値 = 50% / 30% = 1.67
リフト値の解釈:
・リフト > 1:正の関連(一緒に買われやすい)
・リフト = 1:関連なし(独立)
・リフト < 1:負の関連(一緒には買われにくい)
指標の比較
| 指標 | 計算式 | 意味 | 目安 |
|---|---|---|---|
| サポート | (A∩B) / 全取引 | 出現頻度 | ≧ 1〜5% |
| 信頼度 | (A∩B) / A | 条件付き確率 | ≧ 30〜40% |
| リフト値 | 信頼度 / P(B) | 関連性の強さ | ≧ 1.2(最重要) |
📊 2. バスケット分析の実践
Pythonでの実装
アソシエーションルールの計算
実用的なルールの抽出
💡 3. Aprioriアルゴリズム
アルゴリズムの仕組み
「頻出アイテムセットの部分集合も頻出である」という性質を利用
ステップ1:1個の商品で頻出パターンを見つける
・サポート >= 閾値(例:5%)の商品を抽出
・例:パン(30%), 牛乳(25%), バター(15%)…
ステップ2:2個の組み合わせを生成
・ステップ1の商品同士を組み合わせる
・サポート >= 閾値の組み合わせを抽出
・例:{パン, 牛乳}(10%), {パン, バター}(8%)…
ステップ3:3個、4個…と拡張
・前のステップの結果から組み合わせを増やす
・サポートが閾値未満になるまで繰り返す
効率化のポイント:
・{パン, 牛乳}が頻出でない場合
・{パン, 牛乳, バター}も頻出ではない(枝刈り)
・計算量を大幅に削減!
mlxtendライブラリを使った実装
🚀 4. 実務での活用
活用シーン
レコメンデーション:
「この商品を買った人はこんな商品も買っています」
効果:
・カート追加率UP
・客単価向上
商品配置の最適化:
関連商品を近くに配置
効果:
・ついで買い促進
・買い忘れ防止
バンドル商品企画:
同時購入が多い商品をセット化
効果:
・購入障壁の低下
・売上増加
パーソナライズ配信:
購入履歴に基づく関連商品の案内
効果:
・開封率UP
・コンバージョン向上
Excelでの簡易分析
📝 STEP 28 のまとめ
1. バスケット分析の基本
- 同時購入パターンの発見
- 「おむつとビール」の有名な例
2. 3つの重要指標
- サポート:全体での出現頻度
- 信頼度:条件付き購入確率
- リフト値:関連性の強さ(最重要)
3. Aprioriアルゴリズム
- 効率的なパターン抽出
- 枝刈りによる計算量削減
4. 実務活用
- レコメンデーション、セット販売
- 店舗レイアウト、クーポン戦略
バスケット分析は、隠れた購買パターンを発見する強力なツールです!
成功のコツ:
・リフト値を最重視(1.2以上が目安)
・サポートが低すぎるルールは実用性が低い
・ビジネス的に意味のあるルールを選ぶ
よくある間違い:
・信頼度だけで判断(リフト値を見ない)
・サポートが極端に低いルールを採用
・因果関係と勘違い(相関があるだけ)
次のSTEP 29では、クラスター分析で顧客をグループ化します!
STEP 29では、「クラスター分析の実践」を学びます。似た特徴を持つ顧客をグループ化し、セグメント別のマーケティング戦略を立てましょう!
📝 練習問題
バスケット分析の3つの指標(サポート、信頼度、リフト値)をそれぞれ簡潔に説明してください。
1. サポート(Support)
その組み合わせが全取引の何%で発生するかを示す出現頻度。
計算式:(AとBを同時購入) / 全取引数
2. 信頼度(Confidence)
Aを買った人がBも買う条件付き確率。
計算式:(AとBを同時購入) / (Aを購入した取引数)
3. リフト値(Lift)
Aを買った場合にBを買う確率がどれだけ上がるかを示す関連性の強さ。
計算式:信頼度 / (Bの購入確率)
・リフト > 1:正の関連(一緒に買われやすい)
・リフト = 1:関連なし
・リフト < 1:負の関連
以下のデータから、「パン → 牛乳」のルールを評価してください。
・全取引数:1,000回
・パンを購入:300回
・牛乳を購入:400回
・パンと牛乳を同時購入:150回
サポート、信頼度、リフト値を計算してください。
計算手順:
1. サポート(Support)
サポート = (パンと牛乳を同時購入) / (全取引数)
= 150 / 1,000
= 0.15(15%)
2. 信頼度(Confidence)
信頼度 = (パンと牛乳を同時購入) / (パンを購入)
= 150 / 300
= 0.50(50%)
3. リフト値(Lift)
牛乳の購入確率 = 400 / 1,000 = 0.40(40%)
リフト値 = 信頼度 / 牛乳の購入確率
= 0.50 / 0.40
= 1.25
解釈:
・リフト値1.25 > 1なので、正の関連がある
・パンを買うと、通常より1.25倍牛乳を買いやすい
・パンのページに牛乳をレコメンドすると効果的!
2つのアソシエーションルールを比較してください。
ルールA:「コーヒー → 砂糖」
・サポート:20%、信頼度:80%、リフト値:1.1
ルールB:「高級ワイン → チーズ」
・サポート:2%、信頼度:60%、リフト値:3.0
どちらのルールをどのような施策に活用すべきですか?
分析:
ルールA「コーヒー → 砂糖」
・サポート20% → 頻繁に発生(インパクト大)
・信頼度80% → 非常に高い確率
・リフト値1.1 → 関連性は弱い(当たり前のパターン)
ルールB「高級ワイン → チーズ」
・サポート2% → 頻度は低い(ニッチ)
・信頼度60% → 高い確率
・リフト値3.0 → 非常に強い関連!(発見価値高い)
推奨する活用法:
ルールA:大衆向け施策
・店舗レイアウト(コーヒーと砂糖を近くに)
・大量に売れるセット販売
・売上インパクト重視
ルールB:VIP向け施策
・高級ワインページでのチーズレコメンド
・「ワインとチーズのペアリングセット」企画
・利益率・差別化重視
結論:両方を組み合わせた戦略が理想!
ECサイトでバスケット分析を実施したところ、以下のルールが見つかりました。
「ノートPC → マウス」
・サポート:8%、信頼度:45%、リフト値:2.5
このルールをどのように活用しますか?具体的な施策を3つ提案してください。
ルールの評価:
・サポート8% → 十分な頻度
・信頼度45% → 約半数が同時購入
・リフト値2.5 → 非常に強い関連!
→ 活用価値の高いルール
具体的な施策:
施策1:商品ページでのレコメンド
・ノートPCの商品ページに「一緒に購入されています:マウス」を表示
・期待効果:マウス追加率45%以上
施策2:カート画面でのアップセル
・ノートPCをカートに入れた時に「マウスも一緒にいかがですか?」を表示
・10%OFFクーポンをセットで提示
・期待効果:客単価向上
施策3:セット販売の企画
・「ノートPC + マウス + マウスパッド」のスターターセットを作成
・セット割引で購入障壁を下げる
・期待効果:新規PC購入者の獲得増
あなたはスーパーマーケットのデータ分析担当です。バスケット分析の結果、以下のルールが見つかりました。
・ルール1:「卵 → パン」リフト値1.8、サポート12%
・ルール2:「ビール → おつまみ」リフト値2.2、サポート5%
・ルール3:「牛乳 → シリアル」リフト値0.9、サポート8%
どのルールを優先的に活用し、どのようなアクションを取るべきですか?
ルールの優先順位:
1位:ルール1「卵 → パン」
・リフト値1.8 → 強い正の関連
・サポート12% → 高頻度で発生
→ 最優先で活用!
2位:ルール2「ビール → おつまみ」
・リフト値2.2 → 非常に強い関連
・サポート5% → 頻度は中程度
→ ニッチだが高効果が期待
3位(非推奨):ルール3「牛乳 → シリアル」
・リフト値0.9 < 1 → 負の関連!
・一緒には買われにくいパターン
→ 活用しない
具体的なアクション:
ルール1への対応:
・卵売り場の近くにパンを配置
・「卵料理にはパンもどうぞ」POP設置
・朝食セット(卵+パン+牛乳)の企画
ルール2への対応:
・ビール売り場の横におつまみコーナー設置
・「ビールと一緒に!おつまみ特集」の販促
・金曜夕方のタイムセール企画
ルール3について:
・リフト値0.9は「独立」に近い
・施策効果は期待できない
・無理に近くに配置する必要なし
❓ よくある質問
優先順位:
1. リフト値(最重要):関連性の強さ
・リフト > 1.2を目安に
・高いほど「発見」の価値がある
2. サポート:実用性のフィルタ
・サポート >= 1〜5%が目安
・低すぎると活用が難しい
3. 信頼度:予測精度
・信頼度 >= 30〜40%が目安
・レコメンドの成功率に関係
実務的な基準:
・リフト >= 1.2
・サポート >= 2%
・信頼度 >= 30%
の3つを満たすルールを採用!
相関(バスケット分析で分かること):
・AとBが一緒に起こる傾向がある
・例:「パンと牛乳」が一緒に買われる
因果(バスケット分析では分からない):
・Aが原因でBが起こる
・例:パンを買うことが、牛乳購入の原因?
安全な解釈:
・「これらは一緒に買われやすい」
・だから、一緒に提案・配置すると良い
・因果関係の主張は避ける
データ量の目安:
最低ライン:
・1,000〜3,000トランザクション
・基本的なパターンは発見できる
推奨:
・10,000〜100,000トランザクション
・信頼性の高いルールが見つかる
商品数の影響:
・商品数が多いほど、より多くのデータが必要
・10商品:数千で十分
・100商品:数万必要
・1,000商品:数十万必要
オンライン(ECサイト)の特徴:
・検索やレコメンドの影響を受ける
・比較検討が容易
・衝動買いは少なめ
オフライン(実店舗)の特徴:
・店舗レイアウトの影響大
・衝動買いが多い
・時間帯や曜日の影響
推奨:
・オンライン、オフラインは別々に分析
・それぞれの特性に合った施策を設計
・両方のデータを統合した分析も有効
季節性の例:
・夏:「ビール → 枝豆」が強まる
・冬:「鍋つゆ → 野菜」が強まる
・クリスマス:「ケーキ → シャンパン」
対処法:
1. 季節別に分析
・春夏秋冬で別々にルールを抽出
・季節に応じた施策を実施
2. 直近データを重視
・過去3ヶ月のデータで分析
・古いデータは重みを下げる
3. 定期的な更新
・月1回などでルールを再計算
・変化を継続的にモニタリング
当たり前のルールの例:
・「歯ブラシ → 歯磨き粉」
・「パン → 牛乳」
→ これらは発見ではなく、既知のパターン
対処法:
1. カテゴリを跨いだ分析
・食品 × 日用品
・意外な組み合わせを発見
2. セグメント別分析
・年代別、性別、地域別
・特定セグメントだけのパターン
3. 時間帯・曜日別分析
・平日朝 vs 週末夜
・シーン別のパターン
4. リフト値の閾値を上げる
・リフト > 2.0以上に絞る
・より強い関連だけを抽出
学習メモ
ビジネスデータ分析・意思決定 - Step 28