1. 概述
1.1 概念
通过研究用户消费数据,将不同商品之间进行关联,并挖掘二者之间联系的分析方法,即「购物篮分析」。
使用本文可计算出「提升度」,若提升度>1,则证明两种商品关联度高,两种商品的组合方式有效,可以考虑放在一起售卖。
注:本文计算中的左右合并会产生笛卡尔积,造成数据里 N 倍膨胀,建议用户在实际使用时取小部分数据进行购物篮分析,以免造成数据过量膨胀。若需要对较多数据进行商品关联分析,建议使用:购物篮之计算连带率
1.2 解决的问题
找出顾客购买行为的模式:
比如用户买了A商品,是否会对B商品产生什么影响?
不同的用户是否具有不同的购买模式?
哪些产品应该放在一起进行捆绑销售?
1.3 预期效果
详情仪表板链接请参见:购物篮分析
1.4 实现思路
关联分析由以下指标进行衡量。
定义 | 概率描述 | 举例说明 | |
---|---|---|---|
支持度 | 支持度是指A商品和B商品同时被购买的概率,或者说某个商品组合的购买次数占总商品购买次数的比例。 支持度说明了这条规则在所有事务中有多大的代表性,显然支持度越大,关联规则越重要。 | 物品集A对物品集B的支持度support P(A n B) | 今天共有10笔订单,其中同时购买牛奶和面包的次数是6次,那么牛奶+面包组合的支持度就是6/10=60% |
置信度 | 置信度是指购买A之后又购买B的条件概率,简单说就是因为购买了A所以购买了B的概率 | 物品集B对物品集A的置信 度P(B|A) | 今天共有10笔订单,其中购买A的次数是8,同时购买A和B的次数是6,则其置信度是6/8=75% |
提升度 | 先购买A对购买B的提升作用,用来判断商品组合方式是否具有实际价值,是看组合商品被购买的次数是否高于单独商品的购买次数,大于1说明该组合方式有效,小于等于1则说明无效。 | L= P(A n B) /[P(A)*P(B)] | 今天共有10笔订单,购买A的次数是8,购买B的次数是6,购买A+B的次数是6,那么提升度是0.6/(0.8*0.6)>1,因此A+B的组合方式是有效的。 |
支持度计算公式:同时购买A和B订单数/总购买订单数
置信度计算公式:同时购买A和B订单数/购买A的订单数
提升度计算公式:支持度/((购买A次数/总购买订单数)*(购买B次数/总购买订单数))
2. 示例
2.1 左右合并求商品组合
以「单据编码」为合并依据,可以得到所有订单中产生的商品组合。
1)新建分析主题并添加数据集「集团商品销售总表」。详情请参见5分钟上手FineBI。
2)添加数据,勾选「单据编码」和「商品名称」。如下图所示:
3)再次添加数据「集团商品销售总表」,添加「左右合并」,合并数据集为「集团商品销售总表1」下的「单据编码」和「商品名称」,如下图所示:
4)选择「左合并」,合并依据为「单据编码」,如下图所示:
5)添加字段设置更改名字。将「商品名称」作为 A 商品,「集团商品总表-商品名称」作为 B 商品。如下图所示:
2.2 计算需要的指标
由 1.4 节的公式可知需要的指标有:同时购买A和B的订单数、购买A的订单数、购买B的订单数、总购买订单数
2.2.1 求「购买A的订单数」
新增一列,按「A商品名称」进行分组,对分组后的单据编码进行去重计数,可以得到购买A的订单数。如下图所示:
2.2.2 求「购买B的订单数」
再添加一个新增汇总列,按「B商品名称」进行分组,对分组后的单据编码进行去重计数,可以得到购买B的订单数,如下图所示:
2.2.3 求「同时购买A和B的订单数」
添加一个新增汇总列,按「A商品名称」和「B商品名称」进行分组,对分组后的单据编码进行去重计数,可以得到同时购买A和B的订单数,如下图所示:
2.2.4 求「总购买订单数」
添加一个新增汇总列,对所有的单据编码进行去重计数,可以得到一共有多少订单,如下图所示:
以上所有的基础指标「同时购买A和B的订单数」、「购买A的次数」、「购买B的次数」、「总购买订单数」都已经计算得出了。接下来只需要计算支持度、置信度、提升度就可以了。
2.3 计算支持度、置信度、提升度
2.3.1 求「支持度」
支持度=同时购买A和B订单数/总购买订单数,新增公式列,如下图所示:
2.3.2 求「置信度」
置信度=同时购买A和B订单数/购买A的订单数,新增列,如下图所示:
2.3.3 求「提升度」
提升度=支持度/((购买A的订单数/总购买订单数)*(购买B的订单数/总购买订单数)),新增列,如下图所示:
2.4 去除AB相同的商品组合
当 A商品名称 和 B商品名称 相同时,它们是同一个产品,计算支持度、置信度、提升度没有意义。我们可以过滤掉这部分的商品组合,如下图所示:
完成以上步骤后,保存并更新该分析主题。
2.5 制作组件
1)使用刚刚保存的「购物篮分析」制作组件。选择「自定义图表」,将「A产品名称」和「B产品名称」分别拖入横轴和纵轴。
在图形属性设置矩形块,将「支持度」拖入颜色栏。由于作图会导致多订单的值相加,所以支持度的汇总方式需要选择平均。如下图所示:
2)再新建一个组件,展示「支持度」、「置信度」、「提升度」的明细数据。如下图所示:
其中「支持度、置信度、提升度」由于多订单会合并求和,所以它们的汇总方式要改为「平均」。数值格式设置为百分比,如下图所示:
2.6 效果展示
详情参见本文 1.3 节。