✔ 当提前期固定 (σL=0) :
SS = Z × σd × √L
📐 需求标准差 & 提前期标准差
需求标准差 σd :衡量需求波动,历史需求数据的离散程度。
提前期标准差 σL :补货提前期的不确定性,如物流、生产波动。
💡 两者共同影响总不确定性,通过“均方根”合成。
⚙️ 实际业务中,σd 常从日/周需求计算,σL 从历史到货天数计算。
| 服务水平 (SL) | 缺货概率 | Z 值 (安全系数) | 解释 |
|---|---|---|---|
| 90.0% | 10.0% | 1.28 | 零售快消,允许一定缺货 |
| 95.0% | 5.0% | 1.65 | ✅ 常用标准,平衡成本 |
| 97.5% | 2.5% | 1.96 | 高可用性,关键物料 |
| 99.0% | 1.0% | 2.33 | 医疗/备件,极高要求 |
| 99.9% | 0.1% | 3.09 | 军工/生命支持 |
📌 Z值 与 服务水平 一一对应,查标准正态分布表可得。
Z = 1.65 意味着需求波动控制在均值+1.65倍标准差内,缺货概率 5%。
输入需求/提前期参数 → 合成标准差 → 结合Z值输出安全库存
import numpy as np
from scipy import stats
# 参数设置
mean_demand = 120 # 平均日需求
std_demand = 30 # 日需求标准差
lead_time = 5 # 平均提前期 (天)
std_lead_time = 1.2 # 提前期标准差
service_level = 0.95 # 服务水平 95%
Z = stats.norm.ppf(service_level) # Z = 1.645
# 合成总标准差
sigma_total = np.sqrt(lead_time * std_demand**2 + mean_demand**2 * std_lead_time**2)
# 安全库存
safety_stock = Z * sigma_total
print(f"Z值: {Z:.3f}")
print(f"合成标准差: {sigma_total:.1f}")
print(f"安全库存: {safety_stock:.1f} 件")
✅ 输出: Z值: 1.645, 合成标准差: 158.7, 安全库存: 261.1 件