作者:李家骆
R代码及数据和原文下载:
https://pan.baidu.com/s/1yOfOcKY_ugOV-WAPcrI05w
提取码:bk0l
一、分析背景
业绩预测是筹划下期工作的前提,日常工作中或感性或理性,都会做下期业绩的预估,以合理安排人、事、物,促进业绩、节约成本。
笔者所接触过的公司对于业绩预测都比较随意,决策者通常只是根据同期、上期等数据结合经验做感性的预估,究其原因:一是人员不具备相应知识技能,二是缺乏必要的数据信息储备,三是懒政思维不够重视预测或是对预测存在偏见;四是预测工作投入大于产出甚至无实际意义。
即使如此,笔者仍然认为科学的预测与结果的应用对于工作开展举足轻重,而问题的关键就是选择一个实用的预测模型,既能应用于小样本数据,又具有高于经验估计的精度,且操作简单。毫无疑问,线性回归模型是众多模型中最实用的预测模型,它具有可解读性好、应用门槛低、适用小样本数据等优点。
线性回归模型更常涉及的是多元回归分析,而变量的多少就代表着掌握决策信息的丰富程度,掌握的信息越丰富,越有利于做出更精准的决策。然而,并不是所有的变量都能直接纳入回归分析模型,不同变量之间也许会存在重复的信息,这就是共线性。解决共线性有多种方案,包括用主成分分析降维、子集选择法选择变量以及采用罚模型等,主成分分析可以将各种信息综合成新的变量,能提供新的解释维度,但其实对解决共线性问题作用有限;子集选择法直接通过各变量的带入来比较变量的作用,操作简单易懂,缺点是不适合变量太多以及不能综合比较变量效果;罚模型某种程度上是子集选择法的改进,解决了子集选择法的缺陷,但是操作和解释比较复杂。因此,本文采用双向逐步选择法——一种典型的子集选择法来做变量选择。
二、数据说明
表2-1 变量说明表

本文所用数据来自于某零售店,收集了2015年2月至2019年11月共57条数据10个变量。其中下期营业额来自于营业额,考虑的是当月营业额与下期营业额具有一定的相关性;月份数来自于月份,实际建模时剔除月份而代之以月份数,这里主要是考虑到季节周期因素。
三、数据预处理与描述性分析
先看下数据概要:

由上面输出可以看到各变量之间量纲差异较大,月份取值1-12,而营业额最小都是65.2,因此首先需要对各变量进行变换以消除量纲差异,考虑到如会员数是具有时间趋势的,因此采用极差标准化,即x-mean(x)/(max(x)-min(x)),使得各变量量纲一致且未来短期内的数值不会超过1。另外,为使下期营业额与营业额变换后一致,下期营业额直接使用变换后的营业额。变换后结果如下:

另外,我们可以看看各变量的时间趋势:

由图3-1可以看到,除了月份数,其他变量都存在一定时间趋势,从年份跨度上看趋势更加明显;另外,会员数与留存会员数、新增会员数与流失会员数、商品种类与商品总价这几对变量走势极其相似,推测这几对变量存在共线性,可以通过线性相关性进一步验证。

由图3-2可以看到除了月份数,其他变量都与下期营业额具有较高的线性相关性,另外新增会员数与流失会员数存在高度正相关,即新增会员越多流失会员越多,说明本店会员运营中往往是重视新增会员就忽略维护老会员,或者重视维护老会员就忽略新增会员,也或许是新增会员越注重量的增长越使得质不佳而导致流失会员增多;另一方面,从图可以看到会员数与留存会员数、新增会员数与流失会员数、商品种类与商品总价存在极高的线性相关性,说明这3对变量包含的信息基本相同,因此用线性回归模型建模时需要对这几对变量做筛选和剔除。
四、建模与预测
由上节分析得知自变量存在共线性,需要进一步针对共线性做处理,这里采用双向逐步选择法选择变量。

首先直接对所有变量进行建模,结果发现虽然Adjusted R-squared高达0.9052,但是各变量的检验P值都高于0.05的显著性水平,说明变量需要进一步进行筛选。



通过双向逐步选择法根据AIC准则选择了5个变量:月份数、会员数、新增会员数、留存会员数、商品种类,可以推测月份数是季节影响因素;会员数、新增会员数、留存会员数类似市场占有率的变化,上节分析会员数与留存会员数具有极高的线性相关性,但是并没有剔除,是因为这两个变量之间包含有流失会员数的信息;商品种类是商品丰富程度的指标。模型剔除了3个变量:流失会员数、商品总价、营业额,流失会员数与会员的其他指标具有共线性,商品总价与商品种类具有共线性,营业额与下期营业额的关系应该来源于季节因素。
各变量的检验中,截距项和月份数的P值大于0.05的显著性水平,说明这里季节因素和截距项并不显著,但是显然季节因素多少是存在的,因此仍然保留这两个变量。
由回归系数可以发现会员数的回归系数为负值,逻辑上会员数与营业额应该是正向的关系,所以这里是模型系数与现实不符,属于建模错误,究其原因是对会员相关变量选择时以流失会员为基准了。为了使模型与现实逻辑符合,需要手动修改模型变量,这里将会员数替换为流失会员数。

接下来查看模型拟合图:


由cook’s distance图可以看到样本中没有影响占压倒性的异常点,由残差图也没发现残差呈现某种规律性变化,因此模型可用。

由图4-3可以看到:
1. 新增会员数对下期营业额影响最大,其回归系数超过了1;
2. 流失会员数对下期营业额呈现出负向影响,留存会员数呈现正向影响,说明了维护老会员的重要性;
3.商品丰富度对营业额有一定影响,同时营业额也有微弱的季节影响。


预测结果显示2019年11月业绩为292595.6元,95%置信区间为[191040.2, 394151.0],极差203110.8。
五、结论及建议
根据以上分析:
1. 预测2019年11月业绩约29万元,95%的概率在19.1万到39.4万之间;
2. 可以通过拓展新增会员、加大维护老会员、提升老会员活跃度来提升营业额。
网友评论