# 间隔分析
# 一、间隔分析的意义
间隔分析是分析用户产生两个指定事件之间的时间间隔的分析模型,通过间隔分析模型,分析人员可以了解用户某一核心行为的发生频率,或者获取两个具有前后因果关系的事件的转化时长。
通过间隔分析可以解决以下业务场景:
(1)分析用户注册后到首次付费的转化耗时
(2)分析用户产生两次付费之间的间隔时长
(3)分析用户首次通过两个关卡之间的间隔时长
# 二、间隔分析的位置和适用角色
在顶部导航栏中的「行为分析」中选择「间隔分析」,即可进入间隔分析模型,以下是各角色类型下的间隔分析模型使用权限:
功能 | 操作权限 | 功能明细 | 公司超管 | 管理员 | 分析师 | 普通成员 |
---|---|---|---|---|---|---|
模型使用 | 功能使用 | 使用模型、保存报表、进行报表管理 | ● | ● | ▲ | △ |
权限说明:
- ● 角色必有
- ▲ 角色默认有,可以没有
- △ 角色默认没有,可以有
- ○ 角色必没有
# 三、间隔分析的页面概览
间隔分析模型由「指标设置区」、「展示筛选区」、「展示图表区」、「表格详情区」组成:
- 「指标设置区」可以设置「间隔的起点事件」、「间隔的终点事件」、「间隔上限」、「间隔关联属性」、「全局筛选」与「分组项」等
- 「展示筛选区」可以设置图标与表格的计算展示逻辑,可以调整「分析时间段」、「时间粒度」、「分组设置」、「图表样式」等等
- 「图表展示区」中可以选择间隔数据的图表展示形式,目前有「盒须图」(即「箱型图」)与「直方图」两种图表展示形式
- 「表格展示区」会展示当前图表展示形式下的表格数据,「盒须图」与「直方图」会有对应的两种不同的表格
# 四、间隔分析的使用场景
# 4.1 指标设置区的设置
# 4.1.1 指标设置区概览
默认状态下:
- 「起点事件」与「终点事件」代表了一个时间间隔的起点与终点,相当于计算起点事件到终点事件的时间差;可以选择两个不同的事件或者相同的事件,两者在算法上会有所不同
- 「全局筛选」可以对「起点事件」与「终点事件」同时进行筛选,可以选择「起点与终点事件的事件属性交集」、「用户属性」、「用户分群」与「用户标签」
- 「分组项」可以选择「起点事件的事件属性」、「用户属性」、「用户分群」与「用户标签」
- 「间隔上限」限制了计算出来的间隔数据,排除超过上限的数据,默认为 1 小时,可在下拉框中选择按天、按小时、按分钟的时间上限
- 「间隔关联属性」约定了间隔的起点与终点事件在属性上的关联关系,比如起点与终点的属性值一致,在计算时就会寻找属性值一致的起点事件与终点事件
# 4.1.2 间隔关联属性
在一些分析场景中,需要约定计算间隔的起点与终点两事件,它们的属性值需要满足一定的条件。比如计算同一件商品的两次购买间隔,用来分析商品的购买频率,就需要约定两次购买的物品应该一致,在系统中就可以设置起点与终点两个行为的商品ID是一致的,即可约定间隔是同一商品的购买间隔。
关联属性需要分别从起点事件与终点事件中选择各自的事件属性,两个事件的关联属性可以不同,但属性类型需要一致。
「起点事件的关联属性」可以选择起点事件中所有类型的事件属性,而「终点事件的关联属性」只能选择终点事件中与「起点事件的关联属性」类型一致的事件属性。如果希望切换类型,需要从「起点事件的关联属性」处进行切换。切换后,「终点事件的关联属性」也会自动切换为相应类型的事件属性。
关联属性的类型也决定了可选择的关联关系,所有类型都可以选择两个关联属性相等,数值型的关联属性还可以设置属性值相差多少,可以适应更多分析场景。
# 4.1.3 间隔上限
间隔上限相当于约定了间隔数据的范围,上限相当于最大值。在间隔数据计算完成后,会根据间隔上限,排除超过上限的数据
目前上限的配置支持「天(折合24小时)」、「小时」、「分钟」三种粒度,各粒度支持输入自定义数值
在实际使用过程中,间隔上限可能需要多次进行调整,结合图表进行设置。一个可参考的调试流程是,通过「盒须图」的上四分位数与最大值之间的距离判断是否需要调整,再通过「直方图」中靠近最大值的区间判断需要调整多少。
# 4.2 盒须图的图表与表格
# 4.2.1 盒须图的展示筛选区
盒须图展示的是不同数据系列(日期与分组)的间隔数据的分布聚合数据,其展示筛选区的操作控件如下:
- 分析时段
- 时间粒度
- 分组选项
- 分组排序
- 图表切换
分析时段与时间粒度
「分析时段」控制计算的时间范围,起点事件以及终点事件都需要在该时间段内,受到时区的影响。
「时间粒度」控制了计算结果最后的时间聚合规则,可以选择「按天」、「按小时」、「按周」、「按月」以及「合计」,其中「按周」可以自定义周起始日,「合计」相当于全时段聚合成一个结果。
比较特别的是,如果分析的「时间粒度」选择「合计」,且设置了「分组项」,则「展示筛选区」的图表分组选项的选择上限将放开,默认选择300个。
分组选项与分组排序
计算中使用了「分组项」时才会展示「分组选项」与「分组排序」。
「分组选项」控制了图表展示哪些数据系列,可以选择「总体」以及所有分组项,对表格无效,默认选择包括「总体」在内的前4项,且上限也是4项。
比较特别的是,当「时间粒度」是「合计」时,「分组选项」的上限会放开,默认为前300个,不设上限。
「分组排序」可以控制「分组选项」中的排序规则,也就间接影响了图表展示的内容,可以选择的项目有「数据量升序」、「数据量降序」、「分组项升序」、「分组项降序」,默认是「数据量降序」。
# 4.2.2 盒须图的图表展示区
盒须图展示的时间间隔分布的聚合数据,一个盒须数据会展示「最大值」、「上四分位」、「中位数」、「下四分位」与「最小值」,悬停浮层也会展示同样的内容。在「时间粒度」不为「合计」时,时间维度作为组间维度,数据按时间分簇,横坐标也会展示时间维度,分组项是组内维度。
比较特别的是,当「时间粒度」是「合计」时,且设置了「分组项」,那么图表的横坐标将会从日期替换为分组项,如下图所示:
# 4.2.3 盒须图的表格展示区
盒须图的表格如上图,会展示的数据为间隔的「人数」、「间隔数」、「平均值」、「最大值」、「上四分位」、「中位数」、「下四分位」与「最小值」,其中人数可以点击进入「用户列表」。除此之外,还会展示全时段的合计数据。
如果需要导出表格数据,可以点击表格右上方的「导出」按钮,按表格格式导出表格数据(表格数据仅展示前1000条,导出也只会导出前1000条,可以使用页面右上角「数据下载」下载更为全量的数据)
如果设置了「分组项」,且「时间粒度」不为「合计」,则分组数据需要点击时间列前面的加号,通过浮窗进行展示
如果设置了「分组项」,且「时间粒度」为「合计」时,时间列会被分组列替代,分组数据直接在表格中展示
# 4.3 直方图的图表与表格
# 4.3.1 直方图的展示筛选区
直方图展示的是某个数据系列(日期与分组)的间隔数据的分布情况,其展示筛选区的操作控件如下:
- 分析时段
- 时间粒度
- 分组选项
- 时间选项
- 人数次数切换
- 图表切换
分析时段与时间粒度
「分析时段」控制计算的时间范围,起点事件以及终点事件都需要在该时间段内,受到时区的影响。
「时间粒度」控制了计算结果最后的时间聚合规则,可以选择「按天」、「按小时」、「按周」、「按月」以及「合计」,其中「按周」可以自定义周起始日,「合计」相当于全时段聚合成一个结果。
分组选项与时间选项
计算中使用了「分组项」时才会展示「分组选项」;当「时间粒度」不为「合计」时才会展示「时间选项」。
由于直方图只会展示一个数据系列,因此「分组选项」与「时间选项」只能单选,两控件指定了展示的数据系列是哪一个。
「分组选项」控制数据系列的分组项,可以选择「合计」以及所有分组项,对表格无效,默认选择「合计」。
「时间选项」控制数据系列的时间,可以选择「合计」以及分析时段的所有时间,对表格无效,默认选择「合计」。
人数次数切换
「人数次数切换」控件可以切换直方图中的数据展示的是人数还是间隔数。
# 4.3.2 直方图的图表展示区
直方图展示的一个数据系列的间隔分布情况,并且是一个组距相等频数分布直方图,数据范围是0到间隔上限,组数目前限制12组,无论该组是否有数据,都会在图中展示。
通过「人数次数切换」控件,可以切换直方图展示的频数是间隔人数还是间隔数。
# 4.3.3 直方图的表格展示区
直方图的表格如上图,会展示的数据为各个时间间隔区间下的「人数」与「间隔数」,其中人数可以点击进入「用户列表」。除此之外,还会展示全时段的合计数据。
如果需要导出表格数据,可以点击表格右上方的「导出」按钮,按表格格式导出表格数据(表格数据仅展示前1000条,导出也只会导出前1000条,可以使用页面右上角「数据下载」下载更为全量的数据)
如果设置了「分组项」,且「时间粒度」不为「合计」,则分组数据需要点击时间列前面的加号,通过浮窗进行展示
如果设置了「分组项」,且「时间粒度」为「合计」时,时间列会被分组列替代,分组数据直接在表格中展示
# 五、间隔分析的计算逻辑
间隔分析的计算逻辑,可以划分为两大类,一类是常规的间隔计算,适用于起点与终点事件不同的场景;另一类较为特殊,适用于起点与终点事件完全一致,即同一事件的场景,本章节将会对这两种计算逻辑进行介绍。
# 5.1 起点与终点事件不同的间隔
# 5.1.1 最短间隔原则
假设间隔的起点事件是A,终点事件是B,用户的行为序列如下:
行为序列 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|
行为事件 | A | A | B | A | B | B |
在计算间隔时,我们会保持「最短间隔原则」,也可以称为「就近原则」,在连续出现两个起点事件时,会排除前一个起点事件,从后一个起点事件处开始计算间隔;而如果一个起点事件后出现了两个连续的终点事件,则只会和前一个终点事件进行间隔计算。基于这个原则,可以确保间隔是最短的。
上述行为序列,产生的是以下两个间隔。
行为序列 | 2 | 3 |
---|---|---|
行为事件 | A | B |
行为序列 | 4 | 5 |
---|---|---|
行为事件 | A | B |
TIP
采用「最短间隔原则」,有两个原因。一是为了使间隔更能体现出转化的意义,而转化中最常用的就是就近原则,即最近的行为对后续行为的影响最大。二是为了降低数据缺失时,间隔数据受到的影响,如果行为序列是一个标准的A-B交替行为流,那么就近原则能最大程度避免其中一个行为丢失造成的数据异常问题。
# 5.1.2 时间去重原则
如果有多个起点事件的触发时间完全一致,那么会将其视为同一个行为,只计算一次间隔。
如果一个起点事件与终点事件的触发时间完全一致,那么会跳过该终点事件,继续向后寻找终点事件并继续间隔。
采用「时间去重原则」,实际上是认为间隔两端的行为不能同时触发,否则无法计算间隔,也无法体现转化的意义。如果因为时间精度问题导致的时间相同,建议采用毫秒记录行为。
# 5.1.3 起点与终点事件不同时的计算逻辑
假设间隔的起点事件是A,终点事件是B,保证没有多个行为在同一时刻发生,用户的行为序列如下:
行为序列 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
行为事件 | A | B | A | A | B | C | B | A | C | B |
每一个起点事件A都会向后寻找终点事件B,在此期间遵循「最短间隔原则」与「时间去重原则」,则4对A-B行为产生了3个间隔,分别是:
行为序列 | 1 | 2 |
---|---|---|
行为事件 | A | B |
行为序列 | 4 | 5 |
---|---|---|
行为事件 | A | B |
行为序列 | 8 | 10 |
---|---|---|
行为事件 | A | B |
序列3的A事件与序列7的B事件都由于「最短间隔原则」被排除了。
# 5.2 起点与终点事件是同一事件的间隔
起点事件与终点事件需要是同一个事件,筛选条件也需要一致,但筛选顺序可以不同。
但需要注意,逻辑上的相同并不一定会认为是同一事件,比如起点事件采用事件加筛选的方式,终点事件选择了一个逻辑一致的虚拟事件,那么也会视为不同事件,采用前一种算法。
假设间隔的起点事件与终点事件都是A,保证没有多个行为在同一时刻发生,用户的行为序列如下:
行为序列 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
行为事件 | A | B | A | A | B | C | B | A | C | B |
每一个事件A都会向后寻找另一个事件A,并且一个事件A可以作为一个间隔的起点,也可以作为一个间隔的终点,遵循「时间去重原则」,则4个A事件产生了3个间隔,分别是:
行为序列 | 1 | 3 |
---|---|---|
行为事件 | A | A |
行为序列 | 3 | 4 |
---|---|---|
行为事件 | A | A |
行为序列 | 4 | 8 |
---|---|---|
行为事件 | A | A |
在「时间去重原则」下,可以认为有多少个事件A,就会有A-1个间隔产生。
# 5.3 关联属性与分组的引入
关联属性与分组的引入,都不会改变上述计算的核心逻辑。这两个功能在逻辑上比较类似,但处理上有所不同。
关联属性的引入会在间隔计算前进行,首先会将所有原始数据按照关联属性进行分组,然后在各组内进行间隔的计算。而分组项则是在间隔计算完成后,再进行的间隔数据分组。由于进行分组的时刻不同且互不干扰,关联属性与分组也可以同时使用。
# 5.4 间隔上限
间隔上限是在计算间隔完成后进行的,会剔除超过上限的间隔数据,剔除数据后才会进行分组以及聚合处理。
# 六、最佳实践
# 6.1 新用户付费转化间隔
间隔分析可以作为漏斗的一种补充,对于重要转化,比如新用户注册后首次付费。可以通过间隔分析对转化时长进行细致分析,了解转化时长,既可以评估破冰付费的效果,也可以将该指标作为评估新用户转化的重点关注指标。
# 6.2 行为耗时
如果一个实际行为记录了行为的开始以及结束,比如进入商品页、退出商品页,或者更为常见的,打开应用与关闭应用。类似这样的实际行为都可以通过间隔分析进行耗时的计算,只需将行为的开始与结束行为设置成间隔的起点事件与终点事件即可。
# 6.3 驻留时长
用户在您的游戏或应用中,可能会长期处于某个分等级/分阶梯的状态中,比如带等级的会员体系,一个用户可能会在低等级维持一段时间才会升到高等级,比如「白银会员」升级成「黄金会员」。这样的等级制/阶梯制的系统是极为常见的,包括上述提到的会员等级、新手引导步骤、游玩关卡进度、课程完成的进度等等,被各类产品所采用。我们可以将用户在这种系统中从一个阶段进入下一阶段的时间间隔称为驻留时长,也就是一个用户在某一个阶段待了多久,通过间隔分析,并合理使用关联属性与分组,可以很方便地构建这样的驻留分析。