在所有的预测问题中,最不靠谱的就是销量预测. --master苏

1. 前言

销量预测是一个古老的问题,进入市场经济以来这个问题变得更加迫切,也得到更多人的关注,特别是进入大数据时代后,随着算法模型被不断提出来,收集数据的成本逐步降低,收集到的数据越来越多,这个问题变得比以前有趣,同时也被寄予更加迫切且不合理的期望,也比以前更难,不仅仅是数据变多了、模型复杂了,而是社会变得复杂了,亚文化兴起,细分领域竞争也逐渐变得激烈,而这些都是要被考虑到预测因素中,你说,在一个不能聚焦的问题中,预测能准才怪。

但是,这个问题依旧活跃,也并将一直活跃下去。对于零售或者生产企业来说,销量预测是一项基本且核心的任务,基于对未来的预期而制定的销售计划,营运计划,采购计划,生产排产计划...这些计划几乎都能追溯到销售预测。

尽管很多时候销量预测不需要什么技术含量,甚至很多时候销量预测就是违反直觉和事实的,可是这并阻止企业发展啊,你能想象这是怎么回事吗,因为人的主观能动性啊。在什么场景下销量预测不需要预测,当然是销售的KPI,这个月卖多少那么下个月就不能少于这个数,今年业绩2千万明年加20%就ok了。预测什么,不需要预测,你开心就好。

所以说,销量是做出来的,不是算出来的。

但是,还是有很多场景是需要预测的,特别是后端供应链备货问题就特别需要做预测,不管前端市场怎么变,当信息流转到后端供应链之后能过滤掉很多市场和消费者的噪音,只留下核心的销量、需求、缺货、成本等少量因素,虽然更加客观科学,但是难度也增加了许多。还有另外一个场景就是做活动促销的预测,像什么周年庆、节假日、造物节等,当然这里面也有很多坑,稍后再讲。

还是进入正题,销量预测的方法有哪些?

2. 销量预测方法

2.1. 主观经验判断法

这应该是最原始也是用得最多的方法了,尽管我们号称进入了大数据时代,但是画曲线拍脑袋的事情还是没少干,很好用不是吗。经验判断法还有一个高大上的名字叫德尔菲法,其实也很简单,就是把几个有知识有经验有能力的人关到一件小房子里大家开会讨论讨论,通过整合多方意见来决定结果。德尔菲方法的好处,一个人错了没关系,大家多讨论讨论结果总不至于差到哪里去。

虽然经验判断法听起来不靠谱,但在实际使用中也差不大哪里去,毕竟都是宏观决策,落实到具体执行的时候还是有许多变通,还有一个原因是,业务还没复杂到非要用大数据才能解决,简单的业务当然经验最好用。

告诉我谁喜欢用这个方法。当然是销售的KPI和老板啦。

2.2. 时间序列法

将多个时间点的历史销量组合起来就是时间序列,在统计学中关于时间序列的讨论太多了,直到现在,说到销量预测,首先想到的不是什么高大上的大数据模型,而是ARIMA这样的经典时间序列模型,以及针对不同特殊情况的简化或变种,比如EMA、Holt-Winters等。

时间序列一般是单因素线性模型,也就是只考虑了历史销量这一个因素,ARIMA、Holt-Winters等模型会尽量挖掘数据隐藏的周期性、趋势性因素,但是别忘了,有多少产品的全部历史数据有周期因素呢,比如服装,有多少服装产品今年卖明年还在卖?少之又少吧,旧款换新款是正常的,能卖两三年才是不正常的事情。如果仅从数据本身,我们顶多能知道其趋势信息,用趋势信息来预测未来,往往会在趋势反转的时候死的很惨,一般是大量备货导致滞销。

但是,从常识来说,一件衣服属于哪个季节是很容易知道的,假设我们知道了这件衣服的季节指数,岂不是很容易代入到ARIMA模型来,即使是今年上新的产品也可以用季节指数来修正ARIMA的预测值了。在实际应用中也很容易想到,就是

为什么是EMA呢,没有周期性的ARIMA和EMA效果不是差不多嘛。这也算是对ARIMA在实际运用中的一个修正吧。

在时序预测上,Facebook开源了一个很好用的框架:prophet,用这个框架可以说是已经将ARIMA的使用傻瓜化了,直接调用API接口就行,用profhet可以拟合分段趋势的序列模型,可以在指定节假日后学习节假日效应等,可以说是非常强大。但是上面说了,时序预测在实际使用中的天然缺陷就是数据不足,prophet也不能例外。prophet的另一个缺点的计算效率,商品数量少还好,像在线商城这种动辄几十万商品,全部计算一遍真是要命啊。

2.3. 机器学习方法

说到有监督的机器学习方法可就多了,像比较传统的多元线性回归,CART树,SVR等,以及这几年大火的梯度提升树GBM,深度学习中的LSTM、CNN也被用于销量预测问题。

这类模型的特点是,要求的数据比较多,要求的维度也多,在时间序列模型中,要求的只有历史销量这个维度,而在大数据的加持下,除了历史销量信息,商品本身的属性,比如颜色、材料、是否应季、成本、供货能力、服务水平等,还要考虑市场的反应情况,消费者是否喜欢,百度搜索或者淘宝指数如何,如果是自营网站的话可以看商品的浏览量、点击量、加购量等电商常用指标等,还要考虑广告支出,像淘宝直通车,基本上就是打了广告就有流量就有成交,那么在不同渠道比如百度推广、淘宝直通车等SEM,EDM等都可以考虑。如果加上弹性价格因子,产品生命周期就更好了。当然,我们的前提假设是这些数据都是有的。

其实只有历史销量也是可以做有监督模型的,比如ARIMA中的MA项就是这个意思,看下面的公式:

是不是很熟悉呢,就是这个意思嘛,用过去第一周、第二周、第三周的销量预测未来一周的销量。看到这里,你应该明白,既然我们拿到这样格式的数据,那就很容易套用GBM,LSTM等这些高大上的模型中去了。

单变量的LSTM也是只考虑历史销量因素,MA,LinearModel等只能学习线性关系,LSTM则可以学习到非线性关系,在KDD的比赛中经常被使用,当然GBM也很好用。

同时,这也是序列预测问题中构造特征的一个关键,也就是怎么将序列数据转变成一个个特征,上面的例子是1周销量的汇总,也可以是一周销量的均值,或者一周销量的斜率,连续两周销量的斜率等,为什么要用斜率呢,斜率代表增长啊,就是ARIMA中的趋势项。

时序的处理有很多技巧,但是构造特征的技巧都差不多,就是时间滑窗改变数据的组织方式,使用xgboost/LSTM模型/时间卷积网络等,KDD上的一个比赛kaggle商品销量预测1st的思路,kaggle商品销量预测5th的思路

对于有监督模型如何考虑收集哪方面的特征,唐新春曾写过一篇文章基于机器学习方法对销售预测的研究,可以说是非常好了,涉及到的因素包括(1)商品自身属性:商品产地、税费、销量、供货、库存、物流、品牌(2)质量:商品换货、复购、退款、用户评价、退货(3)营销推广:商品优惠、商品抢购、促销、首页广告、商品分销(4)季节特性:节假日消费等级(5)价格变化:零售价格、交易税率、交易价格(6)用户行为:浏览行为、咨询行为、收藏行为、购物车欣慰、下单、支付行为(7)竞争对手、口碑、新闻热点、随机因素、非技术因素。

考虑的因素非常全面,但是实际用的话可能有些问题,首先是很多数据是没有的,其次这些指标粒度很粗,比如销量,怎么处理销量这个变量呢,是多阶之后的均值还是求和还是斜率呢,比如口碑,是用百度搜索指数还是网站好评数量呢,节假日肯定严重影响销量,但是怎么构造这个特征,是想表达节假日当天的促进效应还是想表达节假日对前后短期的销量抑制,等等其他。但是他列举的因素可以给我们很好的思路和指引。

2.4. 基于关联网络的预测

这个思路是从购物篮分析关联规则的思路发展而来,姚凯有一篇论文基于商品关联网络的销量预测方法介绍了这种方法,常规的销量预测模型使用商品的历史销量和商品属性等变量来预测销量,很少考虑利用其他商品信息来提高预测精确度,如果能考虑预测产品与相关联其他商品的信息对预测结果也是有帮助的,论文中使用向量白回归模型对预测问题进行建模,同时控制节假日等因素对销量的影响。

这个思路其实也很正常,比如超市做活动,肯定有引流产品、捆绑销售礼品等,那么捆绑销售商品数量自然受到主要商品的影响。但是从数理模型来阐明这种关系的倒是很少见。

3. 问题聚焦

上面介绍了怎么做销量预测,实际上没这么简单,倒不是做特征太复杂,而是没有结合商品特性聚焦问题,怎么说呢,如果对所有商品都用相同的一个模型效果肯定不行,没有定义好问题调参是没什么效果的,这时候就需要聚焦问题了,通过前期的业务分析和数据分析将不同的商品分类,针对每类商品的特殊场景进行建模,才能大大提高预测的准确度。比如,新上市产品没有多少数据,这时候机器学习模型就没多少用武之地了,这时候怎么预测呢?像长尾商品,一个月也不能卖几件,这种特性的商品又该怎么预测呢?常规商品还好,要是爆款又该怎么预测呢?

一般来说,如果针对大批量商品销量预测,都会讲商品进行细分,比如根据品牌分,对不同品牌分别预测,比如按类目分,3C电子产品和箱包鞋帽分开预测。结合销售和供应链场景,还有一个比较简单的分法,将商品划分为:长尾、常规、高销量、新产品这四类,在业界也会分为ABC三类,A类是高销量高利润或者普通销量高利润,C类就是长尾,屈阳在华润万家生活超市金花路分店库存管理研究的论文就是这么分的。

长尾商品,就是那些数据比较多,但是销量不是那么好的商品,在推荐系统领域有一个比较重要的商品就是消化长尾商品。怎么定义长尾,要简单也简单,要复杂也复杂,简单来说就是根据28法则,按销量排序,销量最少的前80%就是长尾商品。长尾商品最早由亚马逊提出,在电商和互联网领域尤为明显。长尾商品的管理一直是供应链管理一个老大难问题,具体不谈了。

那长尾怎么预测呢,按照普通人的想法,其实也没必要预测,卖多少补多少就行了嘛,就算缺货也只是缺几个,影响能有多大呢。结合实际业务来说的话,这也是有道理的,因为就算把一个月的销量都汇总起来,还没达到供应商的最小起订量。

但是推荐系统起来后,长尾商品终于有出头之日,怎么结合推荐系统消化长尾挖掘长尾,也是一个很有趣的话题,毕竟虽然一个商品的销量不多但是顶不住数量多啊。

再说新品,前面也说了,由于没有历史数据所以很难预测新品的销量,但是从正常思维来考虑的话,肯定是参考相似商品的数据来做预测的啊,怎么理解呢,比如说,去年这个款式的衣服能卖100件,那今年类似款的衣服就按100件来进货吧。直白理解很容易,那有什么数理模型来描述这种关系呢?有的,就是BASS模型,可以参考我的另一篇文章最小二乘解BASS,也可以参考赵学斌的一篇硕士论文面向B2C电子商务销售预测模型的研究及应用,讲得比较详细,还特别讨论了需求价格弹性和季节因子影响的BASS模型问题,在一定程度上解决了新品在上市初期的销量预测问题。

常规商品,常规商品没什么好说的,就按前面说到的方法预测就好了。

高销量商品,为什么要单独拿出来说,是因为高销量商品对供应链的影响比较大,同时销量趋势转瞬即逝,类似爆款,也就小爆一段时间,预测非常不准,但是利润非常可观。此外对供应链的影响,从订货到货也需要小段时间,说不定到货之后爆款期已经过去,滞销怎么办啊。高销量商品更多应该按照促销活动来运营,要对那些商品做活动,给多大的广告营销费用,多少部门配合,供应链怎么配合,如何调货等。如果供应链自己处理爆款产品肯定很被动,说到配合,供应链领域有一个供应链运作参考模型SCOR,很有意思的一个管理概念,华为这样的大公司很早就在实践了。

4. 怎么用

前面说了这么多预测的方法,要怎么用呢。销量预测,结果还是要反映到后端供应链的运作中来。好,我们假设一个场景,我们预测一个商品未来1个月能卖100件,怎么备货?如果说就备货100件,结果会很尴尬啊。

在供应链领域有一个经济订货批量EOQ的概念,就是说,要结合当前库存,需求预测,仓储成本,物流成本,人工成本来确定每次要采购多少,而不是要多少就采购多少。在运筹学书籍中有这个概念,也可以在京东供应链对外公布的PPT全面解读大数据驱动的京东供应链体系 中找到这个概念图,当然从简单操作来说,在服务水平约束情况下,不用管仓储成本物流成本人工成本这些,直接按库存和需求预测以及补货周期来确定要补多少货就OK啦。需求变化,采购提前期变化,所衍生的问题也是在实际场景中经常发生的,可以参考清华的一篇博士论文时变运输周期影响下的供应链系统联合批量问题-王海英.

在多级供应链中,这个问题要复杂一些,不过大部分文章的基本思路都是用启发式算法做暴力搜索,比如罗明在遗传算法在物流仓储优化中的应用研究的论文中使用遗传算法求解6级供应链的商品制造和调拨的问题,另一篇比较有意思的文章是孙方东的多阶段数量折扣订货模型优化与遗传算法求解,差不多是这个意思。

说完了单个商品补货,说个有趣的话题,多个商品怎么联合备货?考虑这么一种情况,一个商品A最小起订量是30件,订100件打9折,200件打8折,如果另一个商品B也在同一家供应商订货,只要A+B总量200件就8折,买的多仓库的压力就大,但是物流费用降下来了,这时候要怎么办呢。这是一个大规模运筹优化问题,这里推荐两本书吧联合批量问题的建模与优化方法,供应链环境中订单分配及订购批量决策研究,对这个问题有所帮助。

5. 后话

写了一大堆,算是对一年多的读书工作的知识总结吧,有些笼统,也不方便讲的太详细,如有疏漏或者不对的地方,请告诉我,一起讨论讨论。

6. 参考

  • kaggle商品销量预测1st的思路
  • kaggle商品销量预测5th的思路
  • 基于机器学习方法对销售预测的研究
  • 供应链单级多周期库存补货模型
  • 时尚供应链读书笔记
  • 第三方服务F-ONE
  • 第三方服务JDA
  • 第三方服务联合商通
  • 第三方服务OIBP
  • 第三方服务llamasoft
  • ABC分类
  • 需求视角下产品分类法
  • 库存风险管理
  • web:阿里智慧供应链如何实现精准预测
  • web:全面解读大数据驱动的京东供应链体系
  • web:京东物流产品手册
  • 书籍:卓越供应链SCOR模型使用手册
  • 书籍:供应链环境中订单分配及订购批量决策研究
  • 书籍:联合批量问题的建模与优化方法
  • 书籍:战略供应链管理
  • 书籍:物流运筹学
  • 书籍:供应链架构师
  • 论文:遗传算法在物流仓储优化中的应用研究-罗明
  • 论文:华润万家生活超市金花路分店库存管理研究-屈阳
  • 论文:时变运输周期影响下的供应链系统联合批量问题-王海英
  • 论文:多阶段数量折扣订货模型优化与遗传算法求解-孙方东
  • 论文:面向B2C电子商务销售预测模型的研究及应用-BASS-赵学斌
  • 论文:基于商品关联网络的销量预测方法

关于销量预测方法和采购备货问题相关推荐

  1. scipy回归分析_销量预测方法及案例分析

    工作中,销量预测我们经常能碰到,如电商平台,会根据之前几个月销量和往年销量,预测未来几个月的销量,及时调整备货,细分到具体每个商品厂家,也会根据过往订单销量,有计划的生成商品,避免滞销或脱销. 本篇文 ...

  2. 电商销量预测方法综述

    摘要 随着数字营销4.0的日趋成熟,大数据营销成为营销科学的研究重点,而其中,销量的准确预测具有重要意义,它对于自身营销规划.市场分析.物流规划都有重要意义.但是销量的预测受影响复杂,传统的基于统计的 ...

  3. 赛狐ERP|假期模式补货建议,解决春节备货难题

    马上就到春节假期了,有两个让亚马逊卖家特别头疼的难题: 工厂放假停工 拿不到货 尤其今年不同于往年,各种因素的影响让供应商的放假时间特别早,工厂放假停工以及年后生产排期的不确定性,会导致卖家很长一段时 ...

  4. 基于时间序列分析方法的零售业快消品销量预测研究

    前言 我国快消品市场空间大.根据数据,2016 年我国包含包装食品.含酒精饮料.软饮料.日化品在内的快消品零售额为 3.2 万亿元,同比增长 5.1%,市场空间庞大.从流通渠道看,快消品的流通渠道总共 ...

  5. Kaggle 商品销量预测季军方案出炉,应对时间序列问题有何妙招

    https://baijiahao.baidu.com/s?id=1595331607299762312&wfr=spider&for=pc 雷锋网 AI 研习社消息,Kaggle 上 ...

  6. 华钜同创:各大卖家提前备货万圣节,再不准备就晚啦!

    距离2021年万圣节(11月1日)还有95天.看似还很遥远,可是机智的卖家们都早早开始选品.备货了! 根据以往的数据,每年下半年一开始,亚马逊上与万圣节(Halloween)相关的商品的搜索量便开始缓 ...

  7. 让模型为你做销量预测【关于电商库存深度补单的思考】

    第一次发文章,因为公司的一些需要,最近在研究关于如何科学的补单和解决库存深度的问题,在结合自己几年电商的所见所闻以及自己的思考,觉得所思所想还是有一定的参考意义,所以就发上来和大家分享一下 在几年的电 ...

  8. 苹果新iphone备货超千万,不支持5G恐难卖

    产业链消息,苹果正在为新机型的备货,与三星.索尼等厂家商谈零部件供应事宜. 一.新iPhone备货曝光,订单较2018年减少1/3 目前苹果与三星的洽谈引起行业高度关注.一方面,由于三星正在遭受日本方 ...

  9. 买不到的魅族:备货难产还是饥饿营销?

    创事记 买不到的魅族手机,是供应链产能不足,还是饥饿营销策略?可以肯定,竞争越来越激烈当下,"严重缺货"会让魅族错过前期最佳销售时间,失去市场竞争力. 作者|刘珊珊 编辑|杨  铭 ...

最新文章

  1. 为什么您应该使用基于标准的开发实践
  2. 突然而降的福利,看看你砸到没...
  3. R-ArcGIS探秘(1)安装以及Sample执行
  4. vue为什么要求组件模板只能有一个根元素
  5. DOM4J介绍与代码示例 (强大的xml处理工具)
  6. Asp.Net Core使用Skywalking实现分布式链路追踪
  7. 灵魂拷问:a = 1 + 2 究竟是怎么被 CPU 执行的
  8. JS根据文本框内容匹配并高亮显示
  9. 递归走迷宫java,java递归实现的迷宫游戏
  10. 《南溪的目标检测学习笔记》——后处理方法的学习笔记
  11. 中国送餐行业市场供需与战略研究报告
  12. Vue3传值(一) props: 父组件向子组件传值
  13. DirEqual for Mac(文件夹快速比较工具)
  14. windowsC盘msp文件清理
  15. c语言 输入5为学生成绩求最高,求C语言小程序 输入5个学生成绩 输出最高成绩和其对应序号(0~5)若有并列则输出并列...
  16. 妙招防止非法入侵Win2000/XP系统(转)
  17. adb下载、安装、环境配置
  18. OpenCV-Calibration-Detailed Description翻译
  19. Linux Kernel Makefiles
  20. PHP 开发者应了解的 24 个库

热门文章

  1. 七成职场精英坦言压力太大
  2. Spring父子容器
  3. 百度搜索栏历史记录(test)
  4. MITA触摸屏维修WP4053米塔工控机控制屏维修
  5. Java面试系列-MongoDB
  6. 网站被攻击不用愁,教你一招5分钟就能解决
  7. 如何使用vps 异地组网_对异地组网一窍不通的我分分钟就能上手了 - IT168试客
  8. 企业如何制作优秀的产品手册?
  9. java基于RXTXcomm.jar的串口通信
  10. java基础之java语言基础