🧠 第十二章 金融与农业:驱动智能决策与产业升级
📄 一句话概括

同一份需求预测,三种成本结构,三个订货量: 成本 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 秒实验

  1. 把 sigma 从 0.35 加到 0.70(需求更不确定),看最优订货量与利润占比。 订货量向两端走(分位不变但分布更宽),而「按均值订」的损失会变大——不确定性越高, 策略越值钱。
  2. 把第三行的残值从 0 改成 3(可以退货),看临界分位。 会从 0.20 抬到很高——超储成本降下来之后,就该多订了。 这说明「退货条款」是一个订货策略工具,不只是商务条款。
  3. 把「按均值订」换成「按中位数订」,再看三行。 第一行会变成 100%(完全最优),另外两行更差——因为对称赔率下中位数正是最优分位。

常见误区

  1. 「预测越准,订货越准」。预测完全已知时,按均值订仍可能只剩 52% 的利润。
  2. 「订货量应该等于预测值」。 预测值是均值或中位,而最优订货量是分位点,两者只在对称赔率下相等。
  3. 「先上 AI 预测模型,订货慢慢再说」。 估准 Co 和 Cu 的投入产出比,比把 R2 从 0.9 提到 0.95 高得多。
自测三问(点开对答案) 1. 临界分位公式 Cu 除以(Cu 加 Co)里为什么没有预测精度? —— 它决定的是「取分布的哪个位置」,与分布本身的来源无关; 预测精度影响的是这个分布有多准,不是取哪一点。 2. 为什么赔率越不对称,按均值订的损失越大? —— 均值偏向分布的重心,而最优分位由代价比推向一端;不对称越强,两端离均值越远。 3. 为什么说「估准 Co 比优化预测更划算」? —— 因为订货量对 Co 极度敏感(残值从 0 变 3 就能大幅改变分位), 而提升预测精度对最终利润的边际贡献很小。

第十二章到此收口,全书二十四个场景也走完了。 回头看,每一节真正值钱的都不是模型,是「问题怎么写」。

相关笔记