安全库存的设置(简单版)
那么,究竟如何设置安全库存呢?需要量化需求的不确定性、量化供应的不确定性和量化服务水平的要求。为了简单起见,我们假设供应是恒定的,比如交期没有变动性。这样我们就只需要量化需求的不确定性和量化服务水平的要求。下面一步一步来说明。
第一步:量化需求的不确定性
简单来说,需求的不确定性,取决于我们能不能有效的预测。当需求难以预测时,预测准确度就低。实际需求与预测之间的误差就打,需求不稳定性就大。我们就需要放更多的安全库存来应对。在数理统计中,我们用“标准差”来量化需求的不确定性。
所以我们通过计算预测误差的标准差,来量化需求的不确定性。标准差越大,表明需求的不确定性越大。这里有个基本的假定,需求历史的代表性,即过去和未来的需求有一定的重复性;预测能力也稳定,即以后的预测准确率与过去相差不大。此外,我们也假定预测误差符合正态分布。
从数理统计的角度看,为了让标准差可靠性高,我们一般要求30个以上的数据点,但实际业务中可能没有这么长的数。但是,我们尽量让数据不少于13个数据点。需求的不确定性: σd = 2163
1.通过Excel计算标准差:STDEV( )函数
2.python代码计算
import numpy as np
actual = [1613, 4025, 4100, 3533, 3241, 5686, 6421, 13637, 13746, 13823, 11747, 13241, 6038]
pred = [3000, 3000, 3000, 3000, 5000, 5000, 5000, 10000, 10000, 15000, 15000, 15000, 8000]
error = np.array(actual) - np.array(pred)
error_std = error.std(ddof=1)
print(error) # [-1387 1025 1100 533 -1759 686 1421 3637 3746 -1177 -3253 -1759 -1962]
print(error_std) # 2163.4817854323237
第二步:量化服务水平的要求
接下来我们来量化服务水平的要求。简单来说,服务水平就是需求来了,库存能够马上现货完全满足的概率。
如果不设置安全库存,光靠预测驱动供应的话,服务水平是多少?答案是50%,假设我们每天预测和供应都是100个产品,实际需求量要么>=100,要么<100(假设各占一般的情况下),那么我们的服务水平就是50%。
然而,50%的服务水平显然是太低了,所以我们就得增加安全库存。如下图所示,增加一个标准差的安全库存,服务水平提高34.13%,达到84.13%;再增加一个标准差的库存,服务水平再提升13.59,接近98%。
画图代码:
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
x = np.linspace(-4, 4, 1000)
plt.figure(figsize=(8, 5), dpi=150)
y = stats.norm.pdf