我在招聘计划人员,或者评估一个企业的库存计划水平时,都会问到一个同样的问题:你是如何设定安全库存水位的?这个问题的基本程度,就如问一个成年人是怎么用筷子的一样。但在我面试过的几十个计划人员中,能给出满意答案的是凤毛麟角。这再一次证明了,最简单的往往是最难的。
安全库存的高低取决于三个因素:(1)需求的不确定性----需求变动越大,需要的安全库存就越多;(2)供应的不确定性----供应越不稳定,需要的安全库存也就越多;(3)服务水平----服务水平要求越高,安全库存水位也就越高。
相应地,我们也要量化这三方面的因素,"从数据开始,由判断结束",在数据分析的基础上适当调整,得到最后的安全库存水位。为了简单起见,我们假设供应是恒定的,比如交期没有变动性。这样,我们就只需要量化需求的变动性和服务水平。
第一步:量化需求的不确定性
我们首先来量化需求的不确定性。简单地说,需求的不确定性,取决于我们能不能有效地预测。当需求难以预测时,预测的准确度就低,实际需求与预测之间的误差就大,需求的不确定性就大,我们就得放越多的安全库存来应对。在数理统计上,我们用"标准差"来量化需求的不确定性,标准差越大,表明需求越不确定。
对于具体的产品,我们找到过去一段时间每期的预测和实际需求,计算两者之间的误差,围绕预测误差求其标准差,如图1,就能量化需求的不确定性。这里有个基本假定,那就是需求历史的代表性,即过去和未来需求有一定的重复性;预测的能力也稳定,即以后的预测准确度和过往一致。此外,我们也假定预测误差符合正态分布。
图1:量化需求的不确定性
这里的假设是,特定的预测方法会有误差,而以前的误差与未来的误差整体上一致,也就是说,误差的历史有代表性,错的方式也差不多。这就如员工A做事一直很仔细,差错很少,你不会花多少时间检查她做的事;员工B有点马大哈,差错较多,你以前花了很多时间,以后也会花很多时间来检查他的工作----你都在假设两个员工的差错(误差)有延续性,过去的历史可以代表未来。
从数理统计的角度看,为了让标准差的可靠性高,我们一般要求30个以上的数据点。但是,在实际操作中,我们往往没有那么多的数据点。我会尽量不要少于13个,这是一个季度的需求历史,按周统计。如果少于10个数据点的话,我会对统计结果非常谨慎----试想想,如果要画一个像样的正态分布曲线,你也至少得十几个点吧,从数理统计角度描述也是同样的道理。
第二步:量化服务水平的要求
接下来我们量化服务水平的要求。简单地说,服务水平就是需求来了,库存能够完全满足的概率。如果不设安全库存,光靠预测来驱动供应的话,服务水平会是多少?很多人会说100%,那不对,正确的答案是50%:假定预测是每天100个,供应也是每天100个,一半儿的情况下,实际需求会超过100个,我们没法完全满足;一半儿的情况下,实际需求会低于100个,我们能够完全满足,这就得到50%的服务水平。
如果50%的服务水平没法接受,那就得增加安全库存。如图2,增加一个标准差的安全库存,服务水平提高了34个点,达到84%;再增加一个标准差的安全库存,服务水平提高了13.59个点,达到97%;增加第三个标准差的安全库存,服务水平提高了2个点,达到99%。你马上看出,安全库存的边际效应在递减,为了达到最后几个点的服务水平,需要投入很多的安全库存。所以,对于追求100%的服务水平,如果你是销售,尚可理解;但作为供应链职业人,则不可原谅。
图2:量化服务水平的要求
反过来看,如果我们想达到特定的服务水平,需要放多少个标准差的安全库存?我们可以反算出来:Excel中有个函数normsinv()(见图2),能帮助我们做这样的换算。在数理统计中,这就是在计算正态分布的Z值,也可以通过查正态分布的表格得到。这就是在量化服务水平的要求。
简单地说,服务水平对应相应的是一个系数(我们姑且称为"安全系数"),两者之间是一对一的关系:服务水平要求越高,安全系数越大;反之亦然。直观地说,服务水平可以折算成安全系数(Z值)。服务水平越高,安全系数越大,不过两者不是简单的线性关系。
第三步:计算安全库存
在量化了需求的不确定性,量化了服务水平的要求后,安全库存的计算其实挺简单:需求的标准差乘以安全系数,就是安全库存。特别要注意的是,这里的标准差指的是补货周期内的需求的变动性;而我们在图1中计算的标准差呢,一般是以1天、1周或1月为单位。如果两者不一样,我们要做一定的转换,在图3有详细的公式,但要注意在转换的时候,时间的单位要一致,比如需求历史的标准差是按周计算的,那么补货周期也要换算成周。
举个例子。
假定需求历史、预测误差是按周统计,而补货周期是28天的话,该公式就是把每周的标准差转换为每28天(4周)的,后者是前者的倍(注意时间的单位要统一,如果用就大错特错了)。这也符合常识:补货周期越长,补货周期内的不确定性就越大,需求的变动性(标准差)也就越大。这个倍数是开根号的关系,而不是一对一的线性关系,从数理统计学的角度可以证明----如果时光倒流到90年代初,我在大学里学数理统计时,还可以现场证明给你看;如今我虽廉颇未老,不过对数理统计的很多细节,却是不能推演了。
图3:安全库存的计算公式
到现在为止,相信大家对安全库存有了基本了解。我们不想探讨太多的计算细节,大家也不用担心更难的公式了----更多的细节呢,主要在我的《需求预测和库存计划:一个实践者的角度》一书中覆盖,本书主要是从管理的角度来阐述基本的思路。
我想强调的是,安全库存的设置也是个"从数据开始,由判断结束"的过程:量化需求的不确定性、量化供应的不确定性、量化服务水平的要求,计算出一个基准的安全库存,然后根据具体业务情况来调整。比如新产品要导入了,那么老产品的安全库存可适当调低;年头节下需求旺盛,安全库存可适当拔高点等。再比如产品的成本高,就适当少放些安全库存;产品的成本低,就适当拔高安全库存,这样以较低的总体库存,实现较高的总体服务水平。
安全库存的计算本身不难,关键的是我们要计算。我们常犯的错误呢,就是"从判断开始,由判断结束",凭经验、拍脑袋设置一定天数的用量作为安全库存。一刀切,结果就是安全库存高的高,低的低,短缺与过剩共存,整体库存高,整体齐套率低。
当然,基于经验的"一刀切"也有其价值:这些经验值也是整合了很多历史经验,包括我们吃过的苦、受过的罪,能帮我们避免大错特错,所以不要一棍子打死。一方面,有些产品不符合上述公式对正态分布的假设,在我们找到更合适的公式之前,还得靠老经验来计划;另一方面,这些经验值也可以帮我们初步判断,我们按照公式计算出来的安全库存是否大错特错。
比如刚开始用这些公式时,会经常有这样那样的问题,诸如公式套错,数据有问题,公式的基本假定没满足,导致计算的结果跟经验值大相径庭。这很可能是我们算错了的信号,要特别注意。毕竟,作为一个企业,多年这么做下来,现在的做法都是有原因的,那些经验值是有一定的合理性的,至少在避免大错特错上;如果新的方法让老的方法看上去非常不合理,那八成是新的方法有问题。
所以,对于公式计算的结果,首先要过直觉关:看上去靠不靠谱?这是另一种形式的"从数据开始,由判断结束"。尊重自己的直觉。如果你觉得错了,那八成是错了。
评论