Rossmann Store 便利店销量预测数据分析


 

简介:
Rossmann成立于1972年,是德国最大的日化用品超市,在7个欧洲国家有3000多家药店。商店不定时会举办短期的促销活动以及连续的促销活动以此来提高销售额。除此之外,商店的销售还受到许多因素的影响,包括促销、竞争、学校和国家假日、季节性和周期性。
本文旨在分析影响商店销售的相关因素,并预测未来店铺的销售额。 据以1115家Rossmann连锁商店为研究对象,从2013年1月1日到2015年7月共计录1017209条销售数据(27个特征)。首先使用R语言实现对数据的清洗整理,其次对数据进行快速探索分析,分析了Rossmann Store店铺销售数据特征、竞争对手数据特征,以及考察了促销活动、竞争、节假日、季节等因素对销售额的影响。最后运用历史数据对超市建立销量预测模型,预测2015月8月1日到2015年9月17日的店铺销售情况。

 
 整篇报告框架如下:
 

 

一、店铺特征分析

1.1 店铺类型

下图中圆形的大小表示各个类型的店铺数据量的大小,图形的颜色代表不同店铺的类型。
从店铺类型的分布上来看,一共有4种类型的商店,a类店铺的数据量最大,达到所有数据的一半以上,d类和c类次之,数据量最少的是b类店铺,只占到1.56%。

 

1.2 商店的开门情况

数据显示并非所有的数据都显示店铺营业的,显示店铺营业的数据有888392条(83.01%);有16.99%的数据(172817条)记录了店铺当天关门。

由于数据中店铺关闭的数据所占比例较大,因此需要对数据进行进一步细分,看看是否有什么因素和商店开门情况相关。
根据星期对店铺营业情况进行划分,可以发现 星期一到星期六的数据大体差不多,只有极少数的数据显示商店关闭,但是星期天的数据中,显示关门的商店占据相当大的比例;停止营业的数据几乎都集中在星期天。
由此可以推测, 星期天极有可能是Rossmann商店的固定休息日,而星期一至星期六是商店的固定营业时间。

 

 
 
 根据节假日对店铺营业情况进行细分,从图中可以看出, 节假日店铺关门的比例远远高于非节假日。由此可以得出,大部分商店在节假日固定休息。
 

 

 
 
1.3 顾客数量分布和销售额数据分布
 
下图为商店的平均销售额、平均顾客数量分布图,横轴表示店铺ID,纵轴分别表示日平均顾客数量(人)和日平均销售额(欧元), 按照顾客数量由高到低进行排序
从图中可以看出, 在商店营业的情况下,平均每天顾客人数最多达到了3403人,日均销售额最多达21757欧元
所有店铺平均顾客数量为755人/天,平均销售额为6935欧元/天,人均花费9.185欧元/天。
从整体上看,顾客数量和销售额保持同趋势变化,但是这并不意味着顾客光顾的数量越多,店铺销售额就越高;在顾客数量差不多的店铺之间,销售额可能存在很大差异。
 

 

小结:

依次从商店类型、营业情况、顾客数量和销售额对店铺特征进行描述,结果显示 如下:

1. 以商店类型来分,一共有4种类型,不同类型的商店的数据量差别较大。
2. 以店铺营业情况来分,超百分之十的数据显示店铺暂停营业,其原因主要为星期天固定休息、节假日休息。
3. 以顾客数量和销售额对数据进行探究,不同的商店的顾客数量和销售额差异较大。

 

 二、商店销售额相关性因素分析
 
 1. 内部因素
根据数据提供的字段,本文将从店铺类型分布,顾客数量分布,短期促销活动、连续促销活动等4个角度进行切入,探究影响销售额的内部因素。
 
 1.1 店铺类型与销售额关系
从下图中不难发现,商店类型和商店销售额有重要关系。
1. b类型的商店平均销售额最高,达到8000欧元以上,远远高于其他三种类型;其余三种类型的店铺销售额差不多;
2. a、c、d类商店的2015年平均销售额同比2014年和2013年的数据几乎没有发生变化,而b类商店的平均销售数据保持稳定增长
3. b类店铺较其他店铺对季节敏感性更强,随季节波动的销售额变化幅度最大。

 

1.2  顾客数量与销售额关系
下图为顾客数量与销售额散点图,为了更好的发现数据之间的关系,可以 对顾客人数和销售额同时取对数处理。
可以看出,经过数据变换之后, 顾客数量和销售额呈现了较强的正相关性。
 

 

 
 
1.3 促销活动与销售额关系(短期促销活动Promo和连续促销活动Promo2)
通过下面两张图可以判断促销对店铺销售业绩的影响。
数据显示, 未参与短期促销活动的商店的平均销售额远远低于参加短期促销活动的商店;参与长期促销活动的店铺则相反,尽管采用长期促销的策略来增加商店的销售额业绩,但其数据仍然低于未参加促销的商店的数据。
短期促销可以较好地刺激消费,图表所示, 当天进行短期促销活动的店铺平均销售额达到7970欧元,远远高于没有进行短期促销活动的店铺(平均4402欧元/天);
和短期促销相反,对于连续促销活动,未参加的店铺的销售额反而比参加活动的商店高700欧元左右(平均6127欧元/天)。
 
其中的原因可能在于店铺本身存在差异性,那些参加连续促销活动的商店可能本身就是因为销售额过低,所以需要参加连续销售活动来提高商店的业绩,而对于那些本身销售额较高的商店来说,连续促销对于这些店铺来说效果并不那么显著,因此它们不需要采取长期促销策略。
 

 

 

 

 

 2. 外部因素:

根据数据提供的字段,本文将从季节、国家节假日、学校假期、星期、最近的竞争商铺的距离等5个角度进行切入,探究影响销售额的外部因素。
 
2.1 季节与销售额关系
销售业绩的波动呈现周期性和淡旺季分布,其中每年的峰值表现在4季阶段,其次是2季阶段,而1季阶段(峰值之后的1月、2、3月份),销售额急剧下降。
对于商店来说,产品的季节性和周期性在一定程度上能够决定商品销量的好坏,使得商店销售额出现下图中的波动。
 
 

 

 

 
 
2.2 星期、法定节假日、学校假期与销售额关系
在商店特征分析中,我们发现 绝大部分商店在节假日、星期天关门,除去这些数据之后,可以看出, 和非节假日的销售数据相比,节假日的销售额明显要高得多;星期天的平均销售额也明显好于非星期天的平均销售额;同时,尽管没有数据显示学校假期可能会导致店铺停止营业,但数据表明学校放假的时间段商店的销售额高于非学校假期的时间段。
 
从原因上分析, 一方面,同类店铺暂停营业的行为大大减少了市场竞争;另一方面,周末、节假日期间客流量的增加也为商店销售额的提升提供可能性。
 

 

 
 
 
 
 
2.3 同类竞争店铺相隔距离与销售额关系
 同类型竞争商店可能会影响商店的销售额。 同类竞争店铺相隔距离越近,意味着这类商店通常位于销售较高的城市中心地区或拥挤地区, 因此距离越近的商店销量倾向于越高;但是,距离越近,也意味着同一的商区的客户会被竞争对手分一杯羹,销售额有可能会减少。
 
从下图中可以看出, 同类竞争店铺相隔距离与销售额并没有呈现出明显的规律变化。在一个好的/坏的地区有/没有竞争对手,这两者产生的影响相互抵消了。
 

 

 
三、构建销量预测模型
 
1.明确目标,设定评估标准
便利店销售模型的目标是根据Rossmann Store 2013年1月1日到20157月31日的数据,预测之后48天商店的销售额。该问题为回归类有监督学习模型。
 
因为Kaggle网站规定的评估方法为均方根百分比误差(RMSPE)
 
,因此在选择需要建立的模型的时候,需要自定义函数,以此评估模型的好坏,从而优化模型结果。
 
 2. 数据预处理,处理空值和异常值
对数据中出现的空值和异常值,我们使用众数、中位数进行插补、删除字段等多种方法处理数据;
数据经过清洗后,并筛选出店铺营业并且销售额不为0的数据(共计844392条),经过特征选择后,再拆分出70%训练数据集和30%测试数据集。
 
3.特征工程选择
通过前文的商店销售额相关因素分析,提取店铺是否营业、店铺类型、短期促销、连续促销、日期、法定假期、学校假期、同类竞争店铺相隔距离等9个特征作为贷款营销预测模型的特征值。同时对特征进行进一步拆分组合:处理时间戳,通过将日期(DATE)字段拆分成年、月、日三个字段;分解分类变量,将所有非数值型字段转化成因子型,并转换成独热(One-hot)编码。
 
4、训练模型,选择模型及调节超参数进而优化结果
在模型使用上,本文尝试用时间序列、Random Forest和xgboost模型进行商店销量的预测。最后根据评估的结果,选择最佳模型进行进一步的调参优化。
 
5、评估模型结果
最后通过比较,xgboost模型表现较好,RMSPE为0.1946, 最终输出结果如下(部分):
 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM