跳到主要内容

报童模型

一、直观理解:今天的报纸明天不值钱​

报童模型(newsvendor)研究单周期随机需求下的订货量:订多了期末残值低甚至报废,订少了缺货损失利润与信誉。最优订货量由临界分位决定,而不是简单等于期望需求。

适合:时装、生鲜、节日商品、机票超售的经典原型,以及任何“单期决策、期末清仓”的问题。

二、适用场景与优缺点​

类型说明
适用场景单周期;需求随机且分布可估;边际超订成本与缺货成本可定义。
核心优点最优解形式优美(分位数);经济含义清晰;易扩展到价格联合决策。
局限与缺点多周期需另建模型;分布估计误差影响分位;缺货成本难货币化时需情景分析。

三、核心原理​

单位进货成本 cc,售价 pp,残值 ss(p>c>sp>c>s),缺货损失 ll(可含商誉)。

边际分析:增加第 QQ 件的期望收益平衡时,

F(Q∗)=p−c+lp−s+l=cucu+coF(Q^*)=\frac{p-c+l}{p-s+l}=\frac{c_u}{c_u+c_o}

其中 cu=p−c+lc_u=p-c+l 为欠订单位成本,co=c−sc_o=c-s 为超订单位成本,FF 为需求 CDF。

若 l=0l=0,经典形式 F(Q∗)=(p−c)/(p−s)F(Q^*)=(p-c)/(p-s)。

四、实践要点​

  1. 用历史需求估 FF(参数或经验分位);
  2. 明确 s,ls,l 口径;
  3. 比较 Q∗Q^* 与 E[D]\mathbb{E}[D];
  4. 做分布误设的稳健性检查。

五、MATLAB 示例​

%% 报童模型:需求 ~ Normal(mu, sigma)
mu = 100; sigma = 20;
p = 10; c = 4; s = 1; l = 2;
cu = p - c + l;
co = c - s;
crit = cu / (cu + co);
Qstar = norminv(crit, mu, sigma);

fprintf("临界分位 = %.3f\n", crit);
fprintf("最优订货量 Q* = %.2f\n", Qstar);
fprintf("期望需求 = %.2f\n", mu);

% 期望利润函数
N = 20000;
rng(1);
D = max(normrnd(mu, sigma, N, 1), 0);
Qs = linspace(mu-3*sigma, mu+3*sigma, 80);
EPi = zeros(size(Qs));
for i = 1:numel(Qs)
Q = Qs(i);
sales = min(D, Q);
leftover = max(Q - D, 0);
shortage = max(D - Q, 0);
Pi = p*sales + s*leftover - c*Q - l*shortage;
EPi(i) = mean(Pi);
end

figure;
plot(Qs, EPi, "LineWidth", 1.5); hold on;
xline(Qstar, "--r");
xlabel("Q"); ylabel("期望利润");
title("报童模型期望利润 vs 订货量");
grid on; legend("E[\\pi(Q)]", "Q^*");

经验分位法(非参数):

demandHist = [80 90 95 100 105 110 120 130]; % 示例样本
crit = 0.7;
Qnp = quantile(demandHist, crit);
fprintf("非参数分位订货量 = %.2f\n", Qnp);

六、如何解释结果​

报告需求分布、cu,coc_u,c_o、临界分位、Q∗Q^*、期望利润/服务水平 P(D≤Q∗)\mathbb{P}(D\le Q^*)。解释“为何不订在均值”:当缺货比积压更贵时 Q∗>μQ^*>\mu,反之更小。

七、常见误区​

1. 永远订期望需求​

只有成本对称且分布对称时才近似成立。

2. 残值大于成本​

参数不合理。

3. 多期库存仍用单期报童​

需 base-stock 等模型。

4. 分布尾部没数据却用正态远分位​

应谨慎并做敏感性。

附:建模流程中的落地清单(报童模型)​

要把方法真正写进论文,建议补齐以下模块,而不是只贴一个最终数字。

1. 问题对齐与假设​

说明题目中的输入/输出如何映射到本方法,并显式列出关键假设。假设越清楚,后面的敏感性分析越有对象。

2. 关键关系​

F(Q∗)=cu/(cu+co)F(Q^*)=c_u/(c_u+c_o),最优订货量是需求分布的临界分位。

3. 补充实现片段​

mu=100;sig=20;cu=8;co=3; Q=norminv(cu/(cu+co),mu,sig); fprintf('Q*=%.2f crit=%.3f\n',Q,cu/(cu+co));

4. 报告要素​

成本参数、分位、Q∗Q^*、服务水平、期望利润。

5. 不适用情形​

永远订均值;多周期硬套单期。

6. 与验证章节的衔接​

至少做一项:参数扰动、与基线方法对照、极限情形检查。把“方法正文”和“全局方法论(第15门类)”连起来,结论才站得住。

附:结果解读示例与常见审稿问题​

结果解读示例​

假设已经得到主要数值输出。写作时应把数字翻译回题目语言,例如:

  • “在基准参数下指标为 A;当关键参数变化 ±10% 时,指标波动约 B%,方案排序未变。”
  • “算法在 R 次独立重复中有 S 次收敛到同一结构解,说明结论对初始化不敏感。”
  • “与简化基线相比,本方法在验证集误差降低 Δ,但计算时间增加,权衡后仍采用。”

如果只有表格没有句子,评委很难判断你是否真正理解结果。

参数与数据的最小敏感性​

即使篇幅有限,也建议给出一个小表:选取 1–3 个最关键参数,各取偏低/基准/偏高三档,报告输出变化。这比大段空泛的“模型具有较强鲁棒性”更有说服力。

可复现信息​

在附录或正文脚注中记录:软件版本、随机种子、关键容差、数据截取时间范围。另一人按文档应能得到同量级结果。

审稿式自问​

  1. 方法假设在题目数据上是否可检查?
  2. 若最敏感参数估计错误 20%,结论是否翻盘?
  3. 是否存在更简单方法达到相近效果?
  4. 图表是否都能用一句话概括?
  5. 局限是否写得具体,而不是套话?

把上述自问的答案写进论文,方法章节会明显更“像完成了建模”,而不是“像完成了公式摘录”。

八、小结​

报童模型用边际成本平衡导出最优订货分位 cu/(cu+co)c_u/(c_u+c_o),是随机需求单周期库存的核心。它把“服务水平”与经济成本直接相连,是连接概率与运营决策的典范。