交叉购买分析,有时也叫购物车分析,一般用于判断同时购买某几种产品组合的用户偏好,以便向用户推荐产品。在PowerBI中当然也可以完成类似的分析。
在这个案例中,我们适度简化了需求以便达到快速理解掌握的目的。我们需要计算:在选择一个基准产品类别A时,观察购买A而且同时购买B的用户量,以及占比。
基本模型并没有什么需要特别介绍之处。需要特别支出的是,在PowerBI中如果需要使用同样的表来做筛选,是无法使用同一个表的。例如在本例中的产品表,它需要同时用做两次筛选器,类似的案例包括同时选择日期表,一个简单的做法就是创建它的副本,在PowerBI中可以使用计算表完成,如下:
这时会产生虚关系,如下:
因为无法同时连接订单到两个产品表,在计算的时候就需要启动虚关系来完成。
首先,选择产品切片器的一个值作为A类,然后观察作为产品B类的变化,如果不考虑A的话,那购买B的客户数很快就可以求出,如下:
这里值得注意的,由于逻辑本身,是不去考虑同时选择某X类产品又同时选择某X类产品的,所以一旦出现同类排列,则按空来计算。
那么,购买A类产品同时购买B类产品的客户数为:
这里分成两步完成计算,首先先计算买过A类产品的客户(集合),然后用该集合作为筛选器参数来计算购买过B类产品的客户数。
值得注意的是,这里要激活虚线关系以使得切片器发挥作用,同时使用ALL来取消已有实线关系的产品表的影响。
另外值得注意的是,在用作CALCULATE筛选器参数的时候,该表虽然是临时生成的,但却在底层与订单表相连接,这是PowerBI能够灵活进行筛选的底层原理机制。(称为:lineage,此处首次提出,详细可参阅《DAX权威指南》或私信交流,能够正确理解并合理使用lineage机制就可以充分发挥DAX的高级作用机制)
这里需要注意的另一个重点是:选择A类产品,计算同时购买AB类客户的占比时,是相对于购买A类产品的客户来计算呢,还是相对于购买B类产品的客户来计算。这个就留给读者思考,并一起交流讨论吧。
在分析时,这里采用了散点图来进行,散点图是PowerBI可以将多个指标同时进行分析的视觉对象,我们考察:
注意这里的三点:
因此,我们需要用散点图来清晰地发现设备是我们所需要找到的这种具有高推荐度价值的产品类别。
本例从简单的场景出发,解释了交叉购买分析的原理,这个原理首先可以直接应用于分析购买某种特定产品后可能的推荐算法。从推广的角度来看,如果考虑了用户画像,就可以针对不同用户画像下的实际情况来进行推荐。例如:以购买了A类产品(如:桌子)为前提,不同行业不同职业不同年龄段的用户得到的推荐可能是不同的。在PowerBI中,可以通过切片器来实现这样的实践。