同一份需求预测,三种成本结构,三个订货量: 成本 6 元时订 100 件,成本 3 元时订 150 件,成本 8 元时只订 74 件。 而「按均值订」永远是 106 件——利润只有最优的 99%、93%、52%。 差距的根源不是模型不准,是「多订一件」和「少订一件」的代价不对称。
12.3 前两节都是「生产端」。这一节走到链条的另一头:备多少货。 这是全书最后一个 Demo,也是最反直觉的一个——它说「预测准不准,和订多少, 关系没你想的那么大」。
一、订货量不由预测决定
这是供应链里最普遍的一条误解: 「我的需求预测越准,订货就越准」。 所以很多团队把预算全投在预测模型上。 但单周期订货(报童模型)的正确答案是:订货量 = 需求分布的某个分位数, 而分位点由两个错误的代价比决定。 多订一件的代价叫 Co(超储成本):压货、仓储、资金占用、过期报废。 少订一件的代价叫 Cu(缺货成本):少赚的毛利,加上客户流失。 临界分位 = Cu 除以(Cu 加 Co)。 这个式子只看赔率,不看预测精度。 Demo 造 40 万次需求抽样(对数正态,中位 100,sigma 0.35,均值 106.3), 然后三组成本结构各算一次最优订货量,再对比「按均值订 106 件」的利润。
二、三种赔率,三个答案
| 售价/成本/残值 | Cu | Co | 临界分位 | 最优订货 | 利润占比 |
|---|---|---|---|---|---|
| 10 / 6 / 2 | 4 | 4 | 0.50 | 100 | 99% |
| 10 / 3 / 2 | 7 | 1 | 0.88 | 150 | 93% |
| 10 / 8 / 0 | 2 | 8 | 0.20 | 74 | 52% |
| 三行的差别只在成本,但订货量差得很远:100、150、74。 | |||||
| 第一行:成本 6、残值 2,多订一件亏 4 元,少订一件也亏 4 元。 | |||||
| 两头对称,所以临界分位就该是 0.50,订中位数 100 件。 | |||||
| 第二行:成本 3、残值 2,多订一件只亏 1 元,少订一件亏 7 元。 | |||||
| 明显该多订——临界分位抬到 0.88,订 150 件。 | |||||
| 第三行:成本 8、残值 0,多订一件亏 8 元,少订一件只亏 2 元。 | |||||
| 该少订——临界分位降到 0.20,只订 74 件。 | |||||
| 所以订货量不该由「预测的均值」决定,该由「两个错误的代价比」决定。 | |||||
| 这就是报童模型的核心:和预测准不准没关系,和赔率有关系。 |
三、按均值订会亏多少
看最后一列:按均值订,利润只有最优的 99%、93%、52%。 第一行几乎没损失(因为对称),第三行只剩一半。 这个模式很有说服力:赔率越不对称,按均值订的损失越大。 而真实的生意几乎都是不对称的——生鲜报废率高(Co 大)、爆款缺货丢客户(Cu 大),两头都会出现。 还有一个细节:需求均值是 106.3,比中位数 100 高 6%。 所以「按均值订」已经比「按中位数订」多订了一截,仍然不够。 因为均值不是分位点,它们只在对称分布下才重合。 一个常见的误解是:「我的预测模型 R2 有 0.9,订货应该很准」。 错。R2 高只说明你预测得准,不代表该订多少。 订货量是「预测分布」加「赔率」一起算出来的,预测只占一半。
四、落地:先估 Co,再谈模型
实务上真正难的也不是预测,是估准 Co(压货成本)。 残值、仓储、资金占用、过期报废——这些数往往没人认真算过。 而它们直接决定订多少。 一个实用的估算方式是把 Co 拆成四项: ① 进货价减残值(最直观的一项);② 仓储与资金占用(按月折算);③ 过期报废的概率折算; ④ 降价清仓的折价幅度。 四项加起来,往往比直觉大好几倍。 而 Cu 也不只是毛利。 缺货的真实代价包括:这次少赚的毛利、客户转投竞品的流失率、以及平台算法对「缺货商品」的降权。 后两项在电商里往往远大于毛利本身。 最后一句:供应链智能化的顺序应该是「先把赔率算清,再优化预测」。 因为赔率错了,再准的预测也会给出错的订货量; 而赔率对了,哪怕用历史均值当预测,也能拿到大部分利润。
五、动手 Demo:订货决策:成本 3 元时该订 150 件,按均值订只订 106 件
需求服从对数正态(中位 100,sigma 0.35),抽样 40 万次做模拟。 对三组售价/成本/残值分别算 Cu、Co 与临界分位,用需求分布的分位点求最优订货量, 再与「按均值订 106 件」的利润对比;最后看需求均值比中位数高多少。
dem = np.exp(rg.normal(np.log(100.0), 0.35, 400000))
def gain(price, cost, salvage, q):
sold = np.minimum(dem, q)
rest = q - sold
return (price * sold + salvage * rest - cost * q).mean()
cu = price - cost # 少订一件的损失
co = cost - salvage # 多订一件的损失
q_star = np.quantile(dem, cu / (cu + co))
实跑输出:
--------------------------------------------------------------------
订货决策:成本 3 元时该订 150 件,按均值订只订 106 件
--------------------------------------------------------------------
需求 对数正态,中位 100,sigma=0.35
需求均值 106.3 件(比中位高 6%)
临界分位 超储成本 Cu 除以(Cu 加 Co)
模拟 400000 次需求抽样
售价/成本/残值 Cu Co 临界分位 最优订货 均值订货 利润占比
-------------------------------------------------------------------
10 / 6 / 2 4 4 0.50 100 106 99%
10 / 3 / 2 7 1 0.88 150 106 93%
10 / 8 / 0 2 8 0.20 74 106 52%
**三行的差别只在成本,但订货量差得很远。**
第一行:成本 6、残值 2,**多订一件亏 4 元,少订一件也亏 4 元。**
**两头对称,所以临界分位就该是 0.50,订 100 件。**
第二行:成本 3、残值 2,**多订一件只亏 1 元,少订一件亏 7 元。**
**明显该多订——临界分位抬到 0.88,订 150 件。**
第三行:成本 8、残值 0,**多订一件亏 8 元,少订一件只亏 2 元。**
**该少订——临界分位降到 0.20,只订 74 件。**
**所以订货量不该由「预测的均值」决定,该由「两个错误的代价比」决定。**
**这就是报童模型的核心:和预测准不准没关系,和赔率有关系。**
再看最后一列:**按均值订,利润只有最优的 99% 到 52%。**
**而且需求均值本身比中位高 6%——所以「按均值订」已经比「按中位订」多订了一截,仍然不够。**
一个常见的误解是:**「我的预测模型 R2 有 0.9,订货应该很准」。**
**错。R2 高只说明你预测得准,不代表该订多少。**
**订货量是「预测分布」加「赔率」一起算出来的,预测只占一半。**
**实务上真正难的也不是预测,是估准 Co(压货成本)。**
**残值、仓储、资金占用、过期报废——这些数往往没人认真算过。**
**而它们直接决定订多少。**
要说明:需求分布、价格成本残值都是我**设的**。
**真实供应链还有提前期、最小起订量、多级库存、季节性。**
**但「临界分位由代价比决定」这个结构,在任何单周期订货问题里都成立。**
done -> _out_39w.txt
这张表要横着看三行,会发现「最优订货」这一列比「临界分位」这一列更极端。 分位从 0.20 到 0.88(4 倍多),订货量从 74 到 150(2 倍)。 因为对数正态的右尾长,高分位之间的间隔更宽。 第三行的 52% 是最值得警惕的数字: 预测完全准确、需求分布完全已知,只是「按均值订」而不是「按分位订」,利润就掉了一半。 这说明「订货策略」和「预测模型」是两个独立的杠杆,而且前者更便宜。 第一行 99% 也很有意思:当两个错误的代价对称时,按均值订几乎无损。 所以「按均值订」不是永远错,它只在赔率不对称时错——而真实的生意几乎都是不对称的。 要说明:需求分布、价格成本残值都是我设的。 真实供应链还有提前期、最小起订量、多级库存、季节性。 但「临界分位由代价比决定」这个结构,在任何单周期订货问题里都成立。
30 秒实验
- 把 sigma 从 0.35 加到 0.70(需求更不确定),看最优订货量与利润占比。 订货量向两端走(分位不变但分布更宽),而「按均值订」的损失会变大——不确定性越高, 策略越值钱。
- 把第三行的残值从 0 改成 3(可以退货),看临界分位。 会从 0.20 抬到很高——超储成本降下来之后,就该多订了。 这说明「退货条款」是一个订货策略工具,不只是商务条款。
- 把「按均值订」换成「按中位数订」,再看三行。 第一行会变成 100%(完全最优),另外两行更差——因为对称赔率下中位数正是最优分位。
常见误区
- 「预测越准,订货越准」。预测完全已知时,按均值订仍可能只剩 52% 的利润。
- 「订货量应该等于预测值」。 预测值是均值或中位,而最优订货量是分位点,两者只在对称赔率下相等。
- 「先上 AI 预测模型,订货慢慢再说」。 估准 Co 和 Cu 的投入产出比,比把 R2 从 0.9 提到 0.95 高得多。
自测三问(点开对答案)
1. 临界分位公式 Cu 除以(Cu 加 Co)里为什么没有预测精度? —— 它决定的是「取分布的哪个位置」,与分布本身的来源无关; 预测精度影响的是这个分布有多准,不是取哪一点。 2. 为什么赔率越不对称,按均值订的损失越大? —— 均值偏向分布的重心,而最优分位由代价比推向一端;不对称越强,两端离均值越远。 3. 为什么说「估准 Co 比优化预测更划算」? —— 因为订货量对 Co 极度敏感(残值从 0 变 3 就能大幅改变分位), 而提升预测精度对最终利润的边际贡献很小。第十二章到此收口,全书二十四个场景也走完了。 回头看,每一节真正值钱的都不是模型,是「问题怎么写」。
- ☐ (全书完)