将一个指标按单一维度进行分布统计,是探索性数据分析的一个基本、常用的方向,可以快速发现数据规律——不过可能会有遗漏维度之间关系的风险,因此多维交叉分析对于深层、细致的分析是有必要的。
如果多维交叉后的熵或者方差越大,则一般越容易发现insight。然而,对于n维数据集,聚合方式理论上有2^n种;尽管不是每一种组合都有鲜明的业务意义,不过每次都单独跑数或者计算,显然是一个比较大的成本。这个时候就需要数据平台来支持数据分析,进行快速地、自由地、可视化地进行多维交叉分析,以便高效地发现结论。
上传数据
老规矩,第一步先上传数据。这里依然上传随机构建的DAU数据。然后可以进行数据处理,也可以不处理。
交叉分类
基于用户上传的数据集,有3个下拉框。第1个可以选择多个维度;第2个是聚合方式(支持count、count distinct、sum这三种函数);第3个是聚合变量,只能选1个,如果前面选择的聚合函数是count或者count distinct,则这里可选择id型变量;如果前面选择的聚合函数是sum,则这里可选择数值型变量。
(其实还可以多一个控件,支持用户基于现有的字段,自定义标签,用来构建新的维度。这对于数据产品来说是有必要的,因为平台没有办法把用户感兴趣的维度完全罗列,但可以开放一个窗口,支持用户自己去添加维度。不过在这个数据产品demo中就不是很必要,因为本来就是要自己上传数据,需要什么整理好再扔上来。好吧,其实真实的原因是我不会写(没找到可支持)这么复杂的前端交互操作(的包)。)
选定一个聚合变量以及聚合方式后,可自由地选择多个维度,下面自动展示可视化图形。如果只选1个,则展现柱形图;如果维度大于等于2个,则以alluvial diagram形式展示。
比如只看分渠道的DAU分布。
比如只看分活跃度的DAU分布。
当然,这2个维度也可以同时都选上,这样就是看在渠道和活跃度2个维度交叉作用下,DAU的分布。这时就出现了alluvial diagram,可以看到线条有红色和蓝色的——红色的线条表示当前分解下的数据高于平均值,反之则为蓝色。每一个维度下的矩形高度,代表着当前维度值在该维度下的比例。
那么进一步地,我们可以选3个乃至更多的维度,来做交叉分类分析。
显而易见地,如果选择的维度越多,维度的枚举值越多,线条就越多,大部分的线条就细得看不清。而如前所述,倘若熵或者方差越大,则会有少数几条相对较粗的线条格外显眼——这就是需要关注的case!
有的时候线条太多太乱,看不出什么有效信息的时候,就可以通过筛选条件对数据进行切片,过滤掉那些确定没有太大意义的部分,再重新观察分布。