バスケット分析とは?支持度・信頼度・リフト値とExcelでのやり方

バスケット分析とは、レシートや注文単位のデータから、一緒に購入されやすい商品の組み合わせを見つける分析手法です。
「商品Aを買った人は商品Bも買いやすい」という関係を、支持度・信頼度・リフト値で評価します。売場の陳列、セット商品、ECのレコメンド、飲食店のメニュー提案などに活用できます。
バスケット分析とは?わかりやすく解説
バスケット分析は、英語で「Market Basket Analysis」と呼ばれます。買い物かごや1回の注文に入った商品を一つのまとまりとして捉え、多数の取引から同時購入のパターンを探します。
たとえば、コーヒーを注文した顧客がデザートも注文する割合が、全注文におけるデザートの注文率より高ければ、コーヒーとデザートには正の関連があると考えられます。この関係を数値で判断するのがバスケット分析です。
矢印の左側を条件部または先行部、右側を結論部または後件部と呼びます。分析結果は「コーヒー → デザート」のようなアソシエーションルールで表します。
バスケット分析に必要なのは、売上集計ではなく取引ごとの明細です。 少なくとも「取引ID」と「商品ID」が分かり、どの商品が同じ会計や注文に含まれていたかを判別できるデータを用意します。
バスケット分析でわかること
- 頻繁に一緒に購入される商品の組み合わせ
- 商品Aの購入時に商品Bも選ばれる確率
- 商品Bの人気を差し引いても、AとBに関連があるか
- 曜日、時間帯、店舗、顧客層による組み合わせの違い
具体例:100件の注文から3つの指標を計算する
カフェの注文100件を調べたところ、コーヒーを含む注文が40件、デザートを含む注文が30件、その両方を含む注文が20件だったとします。
| 集計内容 | 注文数 | 全100件に占める割合 |
|---|---|---|
| コーヒーを含む | 40件 | 40% |
| デザートを含む | 30件 | 30% |
| 両方を含む | 20件 | 20% |
このデータから「コーヒー → デザート」というルールの支持度、信頼度、リフト値を計算します。
支持度・信頼度・リフト値の計算方法
支持度(Support):組み合わせの出現頻度
支持度は、全取引のうちAとBを両方含む取引の割合です。組み合わせがどの程度の頻度で現れるかを表します。
支持度 = AとBを含む取引数 ÷ 全取引数20件 ÷ 100件 = 20%支持度が低いルールは、たとえリフト値が高くても、ごく少数の取引から生じた偶然の可能性があります。一方、支持度だけでは、単に人気商品どうしが一緒に買われただけか判断できません。
信頼度(Confidence):Aを買った人がBも買う割合
信頼度は、Aを含む取引のうち、Bも含む取引の割合です。「Aを買ったとき、どの程度の確率でBも買われるか」を示します。
信頼度(A → B)= AとBを含む取引数 ÷ Aを含む取引数20件 ÷ 40件 = 50%コーヒーを含む40件のうち20件にデザートも含まれるため、「コーヒー → デザート」の信頼度は50%です。
リフト値(Lift):通常より何倍買われやすいか
リフト値は、Aを買ったときのBの購入率を、全体におけるBの購入率で割った値です。全体の人気を基準に、AがあるとBの出現率が何倍になるかを示します。
リフト値(A → B)= 信頼度(A → B)÷ Bの支持度50% ÷ 30% = 約1.67全注文ではデザートが30%に含まれますが、コーヒーを含む注文では50%に含まれます。したがって、コーヒーがある注文では、デザートが通常の約1.67倍現れやすいと解釈できます。
| リフト値 | 基本的な読み方 | 注意点 |
|---|---|---|
| 1より大きい | AとBは一緒に現れやすい | 値が大きくても、支持度が低ければ少数事例かもしれない |
| 1に近い | AとBはほぼ独立している | 業務上重要な組み合わせかは別に判断する |
| 1より小さい | AとBは一緒に現れにくい | 代替関係のほか、売場や在庫など別要因も考えられる |
リフト値が1を超えただけで「強い関係」「施策が有効」とは断定できません。 支持度、取引数、期間、利益、在庫、現場で実行できるかを合わせて判断し、施策後は検証を行います。
3つの指標を組み合わせて読む
| 状態 | 考えられる意味 | 判断 |
|---|---|---|
| 支持度・信頼度・リフト値が高い | 頻繁に現れ、A購入時にBも選ばれやすく、Bの人気だけでは説明しにくい | 施策候補として売上・利益を試算する |
| 信頼度は高いがリフト値は1前後 | B自体が多くの取引に含まれる人気商品である | A固有の関連と考えず、別の商品との比較も行う |
| リフト値は高いが支持度が低い | 珍しい組み合わせが少数回だけ一致した可能性がある | 取引件数と別期間での再現性を確認する |
| 支持度は高いが信頼度が低い | 組み合わせは多いが、A購入者の多くがBを選ぶとは限らない | 母数とルールの向きを確認する |
「A → B」と「B → A」は同じではない
支持度とリフト値はこの2商品だけを入れ替えても同じですが、信頼度は条件側の母数が変わるため異なります。例では「デザート → コーヒー」の信頼度は 20件 ÷ 30件 = 約66.7% です。
コーヒー購入者にデザートを勧める施策と、デザート購入者にコーヒーを勧める施策では、対象人数も成功率も異なります。ルールの向きを確認して施策へつなげます。
期待信頼度とは?
期待信頼度は、AとBが独立していると仮定したときに期待される「A → B」の信頼度です。これはB単体の支持度と同じです。例ではデザートの支持度30%が期待信頼度となり、実際の信頼度50%を30%で割るとリフト値約1.67になります。
バスケット分析のやり方を7つの手順で解説
- 分析目的を決める
陳列を改善する、セット商品を作る、レコメンドを出すなど、分析結果を使って何を変えるかを決めます。 - 分析単位を決める
1枚のレシート、1回の注文、同一セッションなど、何を一つのバスケットとみなすかを定義します。 - 取引データを整える
取引ID、商品ID、日時、店舗などを用意します。取消・返品、テスト注文、無料付帯品などをどう扱うか決めます。 - 商品粒度と対象期間を決める
SKU、商品カテゴリ、メニュー分類のどれで分析するかを選びます。曜日や季節を混ぜると関係が見えにくい場合は期間を分けます。 - 頻出商品集合を抽出する
指定した最小支持度を満たす商品組み合わせを探します。商品数が多い場合はAprioriやFP-Growthなどのアルゴリズムを使います。 - ルールと指標を計算する
頻出商品集合から「A → B」のルールを作り、支持度、信頼度、リフト値を計算します。しきい値で候補を絞ります。 - 施策を実施して効果を検証する
利益、在庫、導線などを確認して候補を選びます。陳列やレコメンドを変更し、対照期間やA/Bテストで成果を確かめます。
Excelでバスケット分析を行う方法
商品ペアが決まっている小規模な分析なら、Excelでも3指標を計算できます。まず、1行を1取引とし、A列に取引ID、B列にコーヒーの有無、C列にデザートの有無を入力します。商品を含む場合は1、含まない場合は0とします。
| A:取引ID | B:コーヒー | C:デザート |
|---|---|---|
| T001 | 1 | 1 |
| T002 | 1 | 0 |
| T003 | 0 | 1 |
| T004 | 0 | 0 |
1.取引数と商品を含む取引数を数える
全取引数:=COUNTA(A2:A101)コーヒーを含む取引数:=SUM(B2:B101)デザートを含む取引数:=SUM(C2:C101)2.両方を含む取引数を数える
B列とC列が両方1になっている行は、SUMPRODUCT関数で数えられます。
=SUMPRODUCT(B2:B101,C2:C101)3.支持度・信頼度・リフト値を計算する
例として、F2に全取引数、F3にコーヒーの取引数、F4にデザートの取引数、F5に両方の取引数が入っている場合は、次の式で計算できます。
支持度:=F5/F2信頼度:=F5/F3リフト値:=(F5/F3)/(F4/F2)Excelが向くのは、確認したい商品ペアが限られている場合です。 数百・数千商品の全組み合わせを総当たりすると候補数が急増します。大規模なデータでは、SQLで取引を整え、Pythonなどで頻出商品集合とルールを抽出する方法が適しています。
Python・SQL・Tableauなどのツール
| ツール | 向いている用途 | 注意点 |
|---|---|---|
| Excel | 特定の少数ペアを手計算し、仕組みを理解する | 商品数が多い総当たりには向かない |
| Python | Apriori・FP-Growthで頻出商品集合とルールを抽出する | 取引を0・1形式へ変換し、しきい値を調整する必要がある |
| SQL | POSやECの明細から同一取引の商品ペアを集計する | 自己結合で組み合わせが膨らむため、重複除去と計算量に注意する |
| Tableau・Power BI | 抽出済みルールの絞り込み、店舗・期間別の可視化 | 頻出パターン抽出は前処理や別ツールが必要になる場合がある |
| 専用分析ツール | 大規模データ、定期実行、レコメンドとの連携 | 費用、設定の透明性、運用体制を確認する |
Pythonでは、取引データを商品ごとの真偽値へ変換し、mlxtend.frequent_patterns のAprioriまたはFP-Growthで頻出商品集合を抽出した後、association_rules で支持度・信頼度・リフト値などを計算できます。
バスケット分析結果の見せ方
ルール一覧表
条件部、結論部、支持度、信頼度、リフト値、取引件数を一覧にします。施策候補を選ぶときは、粗利や在庫などの業務指標も隣に置くと判断しやすくなります。
散布図
横軸を支持度、縦軸をリフト値、点の大きさを信頼度や取引件数にすると、頻度と関連の強さを同時に確認できます。リフト値だけで上位を選ぶ誤りを防ぎやすい表示です。
ネットワークグラフ
商品を点、ルールを線で表すと、複数の商品と関連する中心商品やカテゴリ間のつながりを把握できます。ただし、ルールを表示しすぎると読めないため、支持度やリフト値で絞り込みます。
業種別の活用例
| 業種 | 分析する組み合わせ | 施策例 |
|---|---|---|
| スーパー・小売店 | 同じレシートに含まれる商品 | 関連商品の陳列、セット企画、クーポン |
| EC・通販 | 同じ注文やセッションで購入された商品 | 「一緒に購入される商品」の表示、カート内提案 |
| 飲食店 | 同じ伝票に含まれる料理・ドリンク | セットメニュー、追加注文の案内、メニュー配置 |
| ホテル・旅行 | 宿泊プランと追加サービス | 朝食、送迎、体験プランの組み合わせ提案 |
| 金融・通信 | 同じ顧客が利用する商品・契約 | 関連サービスの案内。ただし適合性や規制にも配慮する |
飲食店での活用方法
飲食店では、1伝票を一つのバスケットとして、料理、ドリンク、デザート、トッピングの組み合わせを分析します。たとえば「ハンバーグ → 赤ワイン」のリフト値が高く、一定の注文数もあるなら、メニュー上で近くに配置したり、注文時に提案したりする候補になります。
ただし、ランチとディナー、店内とテイクアウトを混ぜると、利用目的の違いが結果に含まれます。曜日、時間帯、客数、店舗などで分けて比較すると、実行しやすいルールを見つけやすくなります。
分析後は、セット販売によって単品注文が減っていないか、値引き後も粗利が増えたか、オペレーションが複雑になっていないかを確認します。同時注文が多いだけで自動的にセット化するのではなく、収益と提供体験まで評価します。
アソシエーション分析・併売分析との違い
| 手法・呼び方 | 意味 | バスケット分析との関係 |
|---|---|---|
| アソシエーション分析 | データ内で同時に現れる項目間の規則を見つける広い手法 | バスケット分析は、購買取引へ適用した代表例 |
| マーケットバスケット分析 | 市場の買い物かごを対象にした分析 | バスケット分析の正式・英語由来の呼び方 |
| 併売分析 | 一緒に売れた商品やカテゴリを調べる分析 | 実務では近い意味で使われる。指標やルール方向まで扱うかは文脈による |
| レコメンド | 顧客へ商品やコンテンツを推薦する仕組み | バスケット分析は推薦ルールを作る方法の一つ。閲覧履歴や類似顧客を使う方法もある |
ABC分析と組み合わせる方法
ABC分析は、売上高や粗利などの構成比から商品を重要度別に分類します。バスケット分析は、商品どうしの同時購入関係を調べます。目的が異なるため、組み合わせると施策の優先順位を決めやすくなります。
たとえば、ABC分析で売上貢献の高いA商品を特定し、その商品と関連が強く、かつ粗利の高い商品をバスケット分析で探します。その結果を陳列や追加提案へ使えば、売れ筋商品の集客力を関連商品の販売へつなげられます。
ABC分析の具体的な計算方法は、ABC分析とは?Excelでのやり方と活用方法で解説しています。
メリット
- POSや注文履歴を施策へつなげられる:商品単体の売上だけでは見えない組み合わせを発見できる。
- 顧客へ尋ねずに実際の購買を分析できる:アンケートの意識ではなく、購入された取引を基に判断できる。
- 複数の施策に応用できる:陳列、セット、レコメンド、クーポンなどへ展開できる。
- 店舗や期間別の違いを比較できる:季節や時間帯によって変わる購買パターンを捉えられる。
デメリットと注意点
- 因果関係は分からない:AとBが一緒に買われても、AがBの購入を引き起こしたとは限らない。
- 商品数が多いとルールが急増する:最小支持度を下げすぎると、候補が膨大になり解釈が難しくなる。
- 少数の偶然を拾うことがある:リフト値だけでなく、実取引数と別期間での再現性を確認する。
- 集計単位で結果が変わる:1会計、1日、1顧客などを混同すると、意図と異なる関連が現れる。
- 品切れや販促の影響を受ける:同時購入が少ない理由は、好みではなく在庫や陳列かもしれない。
- 利益が増えるとは限らない:セット値引きによる粗利低下や、既存購入の置き換えも検証する。
よくある質問
バスケット分析の「おむつとビール」とは?
バスケット分析の説明でよく使われる有名な逸話です。ただし、個別の逸話をそのまま再現可能な成功事例として捉えるのではなく、「一見関係がなさそうな商品にも同時購入パターンがあり得る」という考え方を示す例として理解するのが安全です。
リフト値はいくつ以上なら採用できますか?
一律の基準はありません。1を超えると正の関連を示しますが、商品カテゴリ、取引数、支持度、利益、施策コストによって必要な水準は変わります。最低取引件数や支持度を先に定め、複数期間で再現するかも確認します。
支持度のしきい値はどのように決めますか?
取引総数、商品の購入頻度、分析目的に合わせます。しきい値が高すぎるとニッチだが有用な組み合わせを見落とし、低すぎると大量の偶然的なルールが生じます。まず候補数と実取引件数を確認しながら調整します。
同じ商品を2個買った場合はどう扱いますか?
一般的なアソシエーションルールでは、商品が取引に含まれるかを0・1で扱うため、数量2個でも「含む」と数えます。まとめ買い数量を分析したい場合は、数量帯を別項目にするなど別の設計が必要です。
顧客IDがなくても分析できますか?
レシート番号や注文番号で同じ取引の商品をまとめられれば、基本的なバスケット分析はできます。顧客別、初回・リピーター別、購入間隔をまたいだ関連まで調べる場合は、顧客IDが必要です。
まとめ:3指標と取引件数をセットで判断する
バスケット分析は、取引IDと商品IDを使い、一緒に購入されやすい商品の組み合わせを見つける方法です。支持度は組み合わせの頻度、信頼度はA購入時にBも購入される割合、リフト値はBの通常の購入率と比べて何倍現れやすいかを表します。
重要なのは、リフト値だけで順位を決めず、支持度、信頼度、実取引数、利益、施策の実現可能性を一緒に見ることです。 まずはExcelで重要な商品ペアを確かめ、商品数や取引量が多い場合はPythonやSQLを使って候補を抽出しましょう。施策後は売上と粗利の変化を検証し、ルールを定期的に更新します。
