从0到1,轻松构建数据预测模型
大家好,我是爱学习的小xiong熊妹。
之前和大家分享了趋势型预测方法,很多小伙伴想看躺平型与周期型预测,今天他们来了。
首先回顾一下,常见的数据走势有三种:
趋势型:连续发展的态势。 躺平型:变动较少,一条直线。 周期型:有规律的周期性波动。
直接看图,能一眼认出来是哪一种(如下图)
认清楚走势以后,就能选择对应的模型啦。
先看躺平型的例子。举例:某门店业绩数据如下图所示,请预测2021年4月的业绩:
看到这张图,很多小伙伴会直呼:这个看起来,和100000的线很像呀,就是围绕100000的线在波动,我能直接按100000去预测吗?
答:当然可以呀。躺平型只要躺的够“平”,完全可以用平均值来做预测值。还有专门的方法叫:移动平均值法,即把近N期的数据平均值,作为预测值。
不过这样做有个问题:看起来不够高大上,领导们又说:“有没有大数据算法来搞搞……”哎,就是总有人迷信这个,那就弄个看起来复杂一点的:用指数平滑法来预测。
指数平滑法预测数据模型
用指数平滑法需要调用excel的分析工具,可以点击上方的:文件→选项,在加载项中选择:分析工具箱
设置好之后,就能在上方:数据 栏目,找到数据分析按钮。点下去,就能看到各种常见的分析工具了。
第一步:做好数据处理(如下图),选择指数平滑方法
第二步:选择输入区域,设好阻尼系数
阻尼系数是啥意思?阻尼系数是一个0到1之间数字,可以简单理解成:
阻尼越大,真实值权重越小,即历史情况参照意义越小
阻尼越小,真实值权重越大,即历史情况参照意义越大
不过大家完全不用纠结这个,完全可以设好几个阻尼系数,预测出来以后,看哪个预测的MSE值越小,就信哪个!简单迅速才能下班早!(关于MSE计算方法参见上一篇)
第三步:做好几个预测值,然后看哪个MSE小。比如设阻尼系数为0.95\0.9\0.8\0.7,分别计算预测数据及MSE值如下:
看图说话,阻尼系数0.8的时候MSE值最小,就它了,搞掂!
实例
再看个季节性预测的例子。举例,某线上店铺,销售业绩走势如下图(单位:万元)如何对2021年第一季度做预测呢?
显然,店铺业绩受双11、双12大促影响明显,4季度是旺季。这种走势也不能直接用趋势线来模拟,模拟出的趋势线R平方只有0.0几,完全不能用。但是,可以通过一个小技巧,把这个数据改造成可以用趋势线模拟的形式。
第一步:先对数据做改造。改造方法如下图,通过数据处理,模拟出季节变化趋势,这种方法叫:季节多元回归。
第二步:进行回归分析。既然叫季节多元回归,自然要调用回归分析,在同样的路径:数据→数据分析里,找到回归分析方法,然后输入参数:
第三步:解读分析数据。这里又是让人脑瓜子嗡嗡的时刻。不过不要怕,对大部分非数据分析专业的小伙伴,只要看几个关键数字就好了.
从结果上看:
1、R平方0.93,很好
2、各个参数的P值,除了X1以外都很小,很好
所以模型可用。还可以把X1:时间这个变量去掉。时间变量代表了长期发展趋势,本身这个数据几个周期也没有很大长期增长,所以去掉也是情理之中的。
有小伙伴可能好奇,做出来的模型为啥系数都是负的,真的没问题吗。没有,注意这个数据本身就是Q4数值很大,那Q1、Q2、Q3的参数肯定就是负的了。
这样就做完啦。想预测下个季度,可以增加一行:2021年1季度,对应的参数,t是21,Q1=1,Q2,Q3都是0,然后代入公式即可。这里留给读者们自己试一下。
总结
以上就是今天整理的简单预测方法。其实真只有几个数字要预测的话,即使丢给专业的算法工程师,他也是这么算的。我就亲眼看见隔壁算法组小哥哥,打开excel拖了几下,然后回个邮件给商品运营组的领导,说:“这是大数据方法预测的,blabla……”那一刻我整个人都震惊了,点赞、收藏、转发一键三连!
可能看完后,还有小伙伴会疑惑:领导们那么喜欢“建模”,他们真的不懂吗。其实这一点我还挺幸运的,因为我之前的领导就是接地气的陈老师,他会把客户的各种奇葩想法挡在门外,所以很少被不懂行的领导折腾。现在在互联网某厂,有专门的算法组处理这些问题,也很少被纠结了。
从我接触的客户/同事来看,还真的是:懂行的不迷信,迷信的不懂行。所以为了早点下班,用一些看似高大上实则轻松快捷的方法还是很有必要的。混过关就好。
小伙伴们自己掌握方法以后,也不用再纠结啦。遇到这些小问题打开excel拖一拖,我们这些查数姑们也能早点下班呢。毕竟拒绝内卷,从我做起,大家一起努力哦。
Python十份资料领取!
别愁了,预测模型这样做!
扫码关注码工小熊
和码工码农们一起搞事情!