top of page

最新記事リスト

Qlikで顧客分析_バスケット分析を深堀

執筆者の写真: SENSUKE KURIYAMASENSUKE KURIYAMA

バスケット分析には4つの分析指標があります。支持度、信頼度、期待信頼度、リフト値と呼ばれるもので、Qlikを使用してこれらの指標を簡単にまとめてみました。



 

※2025年2月時点のQlik Sense Businessを利用しています。

 

<バスケット分析の4つの指標>

4つの指標を分析する意味

バスケット分析は同時に購入される商品の組み合わせを調べる手法です。例えば、とある喫茶店で、コーヒーを買った人はケーキも買うことが多いということが分かれば、セット提供を促すような施策を検討することができます。


ただ、コーヒーとケーキの同時購入(併売)が多いとしても、「他商品と比べてどうなのか?」「そもそもケーキ自体が定番の人気商品だし併売に関係なく売れている」といった詳細を分析しないと一面的な情報になってしまう恐れがあります。


4つの指標

バスケット分析に使用する指標は次の4つです。

① 支持度

② 信頼度

③ 期待信頼度

④ リフト値


バスケット分析の指標①:支持度

全購入のうち「商品A」と「商品B」が同時に購入された割合です。

・支持度(伝票)=AとBが同時購入された伝票数/すべての伝票数
・支持度(顧客)=AとBを同時購入した顧客数/すべての顧客数

全体のうち「コーヒー」と「ケーキ」が同時に購入される割合なので、支持度が高いほどコーヒーとケーキはセット購入されていると読み取れます。


バスケット分析の指標②:信頼度

「商品A」を購入した中で「商品B」も購入された割合です。

・信頼度(伝票)=AとBが同時購入された伝票数/Aが購入された伝票数
・信頼度(顧客)=AとBを同時購入した顧客数/Aを購入した顧客数

コーヒーを買う人がケーキも買う確率なので、信頼度が髙い場合は「コーヒーを買うとケーキも買いたくなる何かがある?」「コーヒーとケーキのセット販売が効いている?」などの考察や仮説を読み取れます。


バスケット分析の指標③:期待信頼度

全購入のうち「商品B」が購入された割合です。

・期待信頼度(伝票)=Bが購入された伝票数/すべての伝票数
・期待信頼度(顧客)=Bを購入した顧客数/すべての顧客数

全体のうち「ケーキ」が購入される割合なので、期待信頼度が高いというのは「ケーキ」がそもそも人気商品である可能性があります。コーヒーとの併売に関係なく良く売れる商品と読み取ることも可能です。


バスケット分析の指標④:リフト値

期待信頼度に対する信頼度の割合です。

・リフト値=信頼度/期待信頼度=(AB同時購入数/A購入数)/(B購入数/全購入数)

「コーヒーを買う人がケーキも買う確率(信頼度)」と「そもそもケーキ自体が買われる確率(期待信頼度)」を比較した値ですので、リフト値が1だったら、「コーヒーを買った場合」も「そうでない場合」もケーキを買う確率は同じということになり、併売特性は高まっていない状態と読み取ることができます。リフト値が1以上で高くなるほどAとBの関連性(併売される特性)は強いと考えることができます。


 

<Qlikバスケット分析指標の作成方法>

シンプルに確認できるように下図のようなサンプルデータを使いました。


4つの指標の一覧テーブル

伝票枚数20枚データで商品AAAに対するバスケット分析の指標を作成しました。色のついているセルがそれぞれ「支持度」「信頼度」「期待信頼度」「リフト値」となっています。


手順1)

4つの指標を計算するために必要なメジャー数式を作成します。「商品A=特定の商品」「商品B=商品Aと併売された商品」として確認ください。


▼Total伝票数

すべての伝票枚数を返します。

Count({1} Total Distinct[伝票コード])

Count Distinct()にて伝票コードの枚数をカウントしています。SET分析の {1} によってフィルタの選択を無視し、Totalにてすべての総計を返しています。


▼併売回数

AとBの同時購入回数を返します。

Count({<[伝票コード]=P({$}[伝票コード]), 商品=E({$}[商品])>} Distinct [伝票コード])

SET分析のP関数、E関数を用いて併売された伝票コードの枚数をカウントしています。 数式の詳細は、コチラの記事を合わせてご確認ください。


▼商品Aの伝票数

商品Aが購入された伝票枚数を返します。

Count({<商品=P({$}[商品])>} Total Distinct [伝票コード])

P関数により、選択で有効な商品(=商品A)の伝票コード枚数の総計を返しています。


▼商品Bの伝票数

商品Bに該当するそれぞれの商品が購入された伝票枚数を返します。

Count({<商品=E({$}[商品])>} Distinct [伝票コード])

E関数により、選択で無効な商品(=商品B)の伝票コードの枚数を返しています。



手順2)

支持度、信頼度、期待信頼度、リフト値を返す数式を作成します。


▼支持度

併売された確率を返します。併売回数 / Total伝票数

Count({<[伝票コード]=P({$}[伝票コード]), 商品=E({$}[商品])>} Distinct [伝票コード]) / Count({1} Total Distinct[伝票コード])

▼信頼度

Aの伝票の中でBが併売された確率を返します。併売回数 / Aの伝票数

Count({<[伝票コード]=P({$}[伝票コード]), 商品=E({$}[商品])>} Distinct [伝票コード]) / Count({<商品=P({$}[商品])>} Total Distinct [伝票コード])

▼期待信頼度

全体のうち商品Bが購入された確率を返します。商品Bの購入回数/Total伝票数

Count({<商品=E({$}[商品])>} Distinct [伝票コード]) /Count({1} Total Distinct[伝票コード])

▼リフト値

信頼度/期待信頼度

(Count({<[伝票コード]=P({$}[伝票コード]), 商品=E({$}[商品])>} Distinct [伝票コード]) / Count({<商品=P({$}[商品])>} Total Distinct [伝票コード]))
/
(Count({<商品=E({$}[商品])>} Distinct [伝票コード]) /Count({1} Total Distinct[伝票コード]))


 

<Qlikバスケット分析指標のサンプル>


 

【参考記事】


以上です

Comments


© 2023 by Kathy Schulders. Proudly created with Wix.com 

  • Grey Twitter Icon
bottom of page