在许多行业中,业务趋势往往呈现出季节性变化。这意味着客户在一年中的某些特定时期更倾向于购买产品。这种倾向可能由多种因素引起,其中最常见的原因是所有客户共同面临的市场环境。例如,印度的财务年度在3月31日结束,由于保险产品有税收减免,人们倾向于在财务年度结束前购买更多的保险产品以获得这些减免。因此,3月是印度保险业的高峰时期。对过去10年的保险业务数据进行分析表明,印度保险业25-30%的业务量集中在3月。同样,在英国和美国,圣诞节前消费品销售也会出现激增。下图展示了一个季节性行业的月度销售趋势图,可以注意到销售高峰和低谷每年都在相同的月份发生,换句话说,销售趋势年复一年保持不变。
如果模型没有明确处理季节性因素,那么季节性对预测性和描述性模型都有负面影响。以描述性模型为例,看看季节性对模型的影响。以下是一个简单的决策树,根据客户下个月的流失率将客户组合分成3个部分。假设观察流失的月份是1月(组合流失率30%)。现在假设将模型应用于预测7月的流失概率。以下是季节性可能引起的潜在错误:1. 各部分之间的排名顺序可能从1-2-3发生变化。2. 总体流失率可能从30%发生变化,从而改变个别流失率。这两种错误都会导致模型在不同月份实施时效果降低。预测模型受到季节性的影响更为严重,因为第二个错误会导致模型预测能力的大幅偏差。要制作一个准确的预测性或描述性模型,至少需要12个月的数据来训练模型。
在任何模型中都需要解决两种类型的季节性问题:1. 表现季节性:这是模型中较容易处理的季节性。文章开头提到的保险业业务就是一个很好的例子,说明这种类型的季节性。假设想要预测销售代理在未来3个月的表现(业务来源)。在这种情况下,业务是季节性的,需要解决表现季节性问题,以制作一个稳定的预测模型。2. 队列季节性:这种季节性在模型中更难处理。队列季节性是由不同月份基础人群特征的差异驱动的。当队列是季节性的时,表现也是季节性的。假设想要预测销售代理在他前12个月的表现(业务来源)。现在,知道3月的业务来源比其他任何月份都容易。因此,1月、2月和3月入职的销售代理将有更高的平均前3个月表现,与其他月份相比。良好的开端与整体更高的12个月表现高度相关。因此,有队列的季节性,1月、2月和3月入职的代理应该区别对待。
全行业普遍采用三种方法来解决上一节提到的两种类型的季节性问题:1. 长间隔目标函数:可以通过采取12个月的长表现窗口来解决表现季节性问题。但如果队列存在季节性,这种方法就会失败。2. 使用相同的训练和评分目标月份:这种技术可以解决季节性问题。假设想要预测3月的流失。将在去年同期的3月训练模型,然后使用相同的模型预测今年3月的流失。这种技术是稳健的,但如果训练和评分月份之间有任何特征差异,就会失败。例如,公司在去年3月之后改变了流失的定义。在这种情况下,该技术将不考虑流失的最新趋势,为今年3月提供错误的预测。3. 混合队列:这种技术主要用于风险建模。它可以解决表现和队列的季节性问题。从所有不同类型的队列中取样,并将其用作训练人群。这是解决季节性问题最稳健的技术。这种方法在进行预测时也考虑到了最新趋势,因此在目标和训练月份特征有差异的情况下比上一种技术更好。但在目标和训练月份完全相同的情况下,上一种技术会提供更好的预测,因为混合队列会抵消目标变量。