1. 项目和数据描述
-
项目概述
数据来源于某家大型连锁仓储式超市。客户希望了解:
- 在过去四个财政年中,每一个广告渠道(媒体)对销售业绩的贡献。(注:可具体为建模分析每个渠道的销售弹性,也就是每增加一个百分比在某渠道的支出,带来多少百分比销售额的增长。需要描述性模型 Descriptive Model)
- 如何根据描述性模型优化配置每个渠道的广告支出。(注:需要一个策略规范模型 Normative Model, 报告后篇会讨论。)
-
数据描述
-
因变量 - 旗下20家主要分店每日销售额指数,总时间跨度大约为四个财年,大约1461天(包括公共假日)。所以,以面板数据(Panel ) 来看,是 1461 * 20 的矩阵。
-
上图例举部分分店的统计描述,可以看到销售额以指数形式体现,设数据周期的第一天销售指数为1, 如第二天销售额增长1%,则第二天的销售指数为1.01,以此类推。最小的销售指数是0,说明当天是法定假日,仓储不开门,无销售纪录,在建模时可以把这些极个别的法定假日排除。去掉法定休假日后,20家平均销售指数的趋势图如下:
-
自变量 - 总计13个广告渠道的周支出,且平均到日。例如,某周某渠道支出为700元,该周7天营业,则日均支出为100元。广告渠道定义如下:
每个渠道的支出数据,以真实支出数据为表现,若某渠道在某周数据点为0,则表示该渠道该周没有相应的广告费用支出。 -
其他变量 - 销售日期。该变量将在模型中成为重要的辅助变量。包括根据日期建例如星期一到星期日的控制变量。因为是日销售模型,所以时间序列里面有很明显的周频率趋势:
以及图1中特定时间段的“销售增长趋势”
-
因变量 - 旗下20家主要分店每日销售额指数,总时间跨度大约为四个财年,大约1461天(包括公共假日)。所以,以面板数据(Panel ) 来看,是 1461 * 20 的矩阵。
2. 数据连接
Google_Drive_Data-Division-Advertising
3. 基本模型框架和主要问题
-
Adstock 概念
![][Adstock]
[Adstock]: http://latex.codecogs.com/gif.latex?AdStock_%7Bt%7D%20%3D%20%5Clambda%20%5Ctimes%20Adstock_%7Bt-1%7D%20+%20%281-%5Clambda%20%29%5Ctimes%20ln%28Advertising_%7Bt%7D+1%29
Adstock 是 市场研究中用来描述广告长期效果和短期效果的累积计量。其中 lambda 为延迟因子, 表示当期广告延迟效果的百分比。
上述公式可以简略表述为: 某渠道,当日广告的效应,等于该渠道之前广告的长期效应的累积,加上当日的短期效应,也就是(1-lambda) 和后面的部分。
原数据的13个渠道支出自变量均为当日或当周直接支出,需要通过网格搜索(grid-search) 来调参,调参的目标可以是总回归方程的损失函数,也可以是简单的 R^2 拟合度。最终要把13个原数据中的渠道支出,变成13个以下的Adstock变量。
单位根/随机走步 问题的解决
因变量销售额具有很强的时间序列属性,可以预料会有比较强的随机走步(Random Walk )性质,尤其在图1中,周期性重复的销售增长趋势段,可能为伴随漂移(Drift)的随机走步。通过对因变量(平均指数)的Dickey-Fuller 检验,发现周均数据有lag-1单位根,每日数据有lag-6和lag-7单位根。如果不解决这个问题而直接套用回归模型,得到的回归参数是有偏的。对渠道的销售弹性则无从谈起。解决问题的思路,后篇继续讨论。混合估计模型(Pooled Regression Model )
建议使用混合估计模型,把全部20家分店的销售数据都作为因变量考虑进去,而不是聚合模型(只用平均销售指数 作为因变量。使用混合模型的好处,是增强回归参数的统计显著性。
欢迎各位喜欢数据分析的朋友下载数据来玩,欢迎拥有统计学、计量经济学、市场营销学、数据挖掘、机器学习背景的朋友提供建议和批评。这是一个应用性很强的项目,希望通过这种项目结识不同知识背景的朋友,大家一起进步。
待续。。。