价格变化的解剖:斯勒茨基分解

把一次降价拆成替代效应与收入效应

消费理论
斯勒茨基方程
交互课件
拖动价格滑块将价格总效应拆解为替代效应与收入效应,对比斯勒茨基与希克斯补偿及吉芬品边界条件。
作者

Shawn

Gemini 3.7 Flash

发布于

2026年8月27日

本文依据 Muñoz-Garcia《Advanced Microeconomic Theory》第 2–3 章及配套课程讲义撰写,属于微观经济学专栏的消费理论模块。阅读前建议先过一遍对偶性与罗伊恒等式的基本框架。

注记本讲核心目标
  1. 把价格变化引起的总效应(TE)拆成替代效应(SE)收入效应(IE)两步;
  2. 精确区分两种“中间预算线”:斯勒茨基补偿(保持购买力)与希克斯(Hicks)补偿(保持效用),并理解后者的财富削减更大;
  3. 掌握斯勒茨基方程的推导与符号逻辑:正常品、劣等品、吉芬品各对应怎样的 SE/IE/TE 组合;
  4. 会用弹性形式 \(\tilde\varepsilon_{p,Q} = \varepsilon_{p,Q} + \varepsilon_{w,Q}\cdot\theta\) 判断什么时候收入效应可以忽略。

一次降价,两股力量

汽油降价了。你的第一反应也许是“多开车”——汽油相对于其他商品变便宜了。但还有第二股力量在暗中起作用:同样的预算如今能买到更多的东西,你实际上变富了一点,这股财富感也会改变你的汽油消费。

这就是斯勒茨基(Slutsky)分解的全部直觉:

\[\underbrace{\text{总效应 TE}}_{\text{价格变化的净结果}} \;=\; \underbrace{\text{替代效应 SE}}_{\text{相对价格变化,购买力冻结}} \;+\; \underbrace{\text{收入效应 IE}}_{\text{购买力变化,相对价格冻结}}\]

麻烦在于,现实中两股力量同时发生,我们观察到的只是一个最终结果。斯勒茨基分解的价值是设计了一个思想实验:构造一条“中间预算线”,把同时发生的过程人为地拆成先后两步。下面就来操作这条中间线。

构造中间预算线:两种补偿

设消费者的初始状态为价格 \(p = (1, 1)\)、收入 \(w = 100\),最优消费束为 \(A\)。现在商品 1 降价至 \(p_1' < 1\)。拆解的关键问题是:如果只让相对价格变化、但设法冻结购买力,消费者会怎么动?

这需要先给“冻结购买力”一个精确含义。有两种标准做法,对应两条不同的中间预算线:

  • 斯勒茨基补偿(保持购买力):调整财富,使消费者恰好还买得起原来的消费束 \(A\)。降价让原束变便宜了,所以补偿方式是削减财富,削减量为 \(\Delta w = \Delta p_1 \cdot x_1^A < 0\)。中间预算线过 \(A\) 点、与新价格下的最终预算线平行;由此画出的需求曲线也叫不变购买力(CPP)需求曲线
  • 希克斯补偿(保持效用):调整财富,使消费者恰好停在原来的无差异曲线上。这将削减更多财富,原因见下文。

交互演示:拖动滑块,看两步分解

下面是柯布–道格拉斯效用 \(u(x_1,x_2) = x_1^{\alpha} x_2^{1-\alpha}\) 的世界。拖动新价格 \(p_1'\),观察预算线如何先绕 \(A\) 旋转(替代效应),再平移到最终位置(收入效应)

▷ 展开 / 收起代码
viewof p1new = Inputs.range([0.4, 0.95], {value: 0.6, step: 0.01, label: html`新价格 p₁′(原 p₁ = 1)`})
viewof alpha = Inputs.range([0.1, 0.9], {value: 0.5, step: 0.01, label: html`商品 1 的支出份额 α`})
viewof comp = Inputs.select(["slutsky", "hicks"], {value: "slutsky", label: html`中间预算线的补偿方式`,
  format: x => x === "slutsky" ? "斯勒茨基:买得起原束(购买力不变)" : "希克斯:停在原无差异曲线(效用不变)"})
▷ 展开 / 收起代码
p10 = 1; p2 = 1; w = 100

// 初始最优 A:马歇尔需求 x1 = α·w/p1
A = [alpha * w / p10, (1 - alpha) * w / p2]
u0 = A[0] ** alpha * A[1] ** (1 - alpha)   // 初始效用水平

// 斯勒茨基补偿财富:w′ = w + (p1′ − p1)·x1A(降价时 w′ < w)
wS = w + (p1new - p10) * A[0]
// 希克斯补偿财富:支出函数 e(p,u) = u·(p1/α)^α·(p2/(1−α))^(1−α)
eH = u0 * (p1new / alpha) ** alpha * (p2 / (1 - alpha)) ** (1 - alpha)

// 中间最优点 B(按所选补偿方式)与最终最优点 C
B = comp === "slutsky"
  ? [alpha * wS / p1new, (1 - alpha) * wS / p2]
  : [alpha * eH / p1new, (1 - alpha) * eH / p2]
C = [alpha * w / p1new, (1 - alpha) * w / p2]
uB = B[0] ** alpha * B[1] ** (1 - alpha)   // B 点效用(斯勒茨基模式下略高于 u0)

// 三个效应(对 x1 的增量)
TE = C[0] - A[0]; SE = B[0] - A[0]; IE = C[0] - B[0]

// 水平效应箭头(Plot 0.6.11 无 arrow mark,用线段 + 三角字符实现,自动判向)
arrowMark = (x1, x2, y, stroke, dash) => [
  Plot.line([[x1, y], [x2, y]], { stroke, strokeWidth: 1.8, strokeDasharray: dash }),
  Plot.text([[x2, y]], { text: [x2 >= x1 ? "▸" : "◂"], dy: 4.5, fontSize: 12, fill: stroke, fontWeight: "bold" })
]
▷ 展开 / 收起代码
// ===== 数值面板 =====
html`<table class="table table-sm" style="max-width:520px">
  <tr><td>补偿财富(斯勒茨基)</td><td>w′ = <b>${wS.toFixed(2)}</b></td></tr>
  <tr><td>补偿财富(希克斯)</td><td>e(p′, u⁰) = <b>${eH.toFixed(2)}</b></td></tr>
  <tr><td>替代效应 SE = x₁ᴮ − x₁ᴬ</td><td><b>${SE.toFixed(2)}</b></td></tr>
  <tr><td>收入效应 IE = x₁ᶜ − x₁ᴮ</td><td><b>${IE.toFixed(2)}</b></td></tr>
  <tr><td>总效应 TE = x₁ᶜ − x₁ᴬ</td><td><b>${TE.toFixed(2)}</b>(= SE + IE)</td></tr>
</table>`
▷ 展开 / 收起代码
ic = (u, t) => (u / t ** alpha) ** (1 / (1 - alpha))   // 无差异曲线 x₂ = (u/x₁^α)^(1/(1−α))
xmax = Math.max(w / p1new, w / p10) * 1.02
ymax = (w / p2) * 1.02
wB = comp === "slutsky" ? wS : eH
u1 = C[0] ** alpha * C[1] ** (1 - alpha)

Plot.plot({
  height: 430,
  x: { label: "x₁", domain: [0, xmax] },
  y: { label: "x₂", domain: [0, ymax] },
  marks: [
    // 三条预算线:初始(红)、补偿(紫虚线)、最终(绿)
    Plot.line([[0, w / p2], [w / p10, 0]], { stroke: "#ef4444", strokeWidth: 2 }),
    Plot.line([[0, wB / p2], [wB / p1new, 0]], { stroke: "#8b5cf6", strokeWidth: 2, strokeDasharray: "6,3" }),
    Plot.line([[0, w / p2], [w / p1new, 0]], { stroke: "#10b981", strokeWidth: 2 }),
    // 无差异曲线:过 A(实线)、过 B(淡)、过 C(淡)
    Plot.line(d3.range(0.8, xmax, 0.4).map(t => [t, ic(u0, t)]), { stroke: "#3b82f6", strokeWidth: 2 }),
    Plot.line(d3.range(0.8, xmax, 0.4).map(t => [t, ic(uB, t)]), { stroke: "#3b82f6", strokeOpacity: 0.4, strokeWidth: 1.2 }),
    Plot.line(d3.range(0.8, xmax, 0.4).map(t => [t, ic(u1, t)]), { stroke: "#3b82f6", strokeOpacity: 0.4, strokeWidth: 1.2 }),
    // 三个最优点与标签
    Plot.dot([A, B, C], { fill: ["#ef4444", "#8b5cf6", "#10b981"], r: 6, stroke: "black" }),
    Plot.text([A, B, C], { text: ["A", "B", "C"], dy: -12, fontSize: 14, fontWeight: "bold" }),
    // 效应箭头(横置在图下方,教科书式画法)
    ...arrowMark(A[0], B[0], ymax * 0.10, "#2563eb"),
    Plot.text([[(A[0] + B[0]) / 2, ymax * 0.10]], { text: ["SE"], dy: -8, fontSize: 12, fill: "#2563eb", fontWeight: "bold" }),
    ...arrowMark(B[0], C[0], ymax * 0.05, "#f59e0b"),
    Plot.text([[(B[0] + C[0]) / 2, ymax * 0.05]], { text: ["IE"], dy: -8, fontSize: 12, fill: "#f59e0b", fontWeight: "bold" }),
    ...arrowMark(A[0], C[0], ymax * 0.15, "#6b7280", "4,3"),
    Plot.text([[(A[0] + C[0]) / 2, ymax * 0.15]], { text: ["TE"], dy: -8, fontSize: 12, fill: "#6b7280", fontWeight: "bold" })
  ],
  title: "斯勒茨基分解:A → B(替代效应),B → C(收入效应)"
})
提示你应该看到什么
  • 拖低 \(p_1'\):红色初始预算线绕 \(A\) 旋转成紫色补偿线,消费者沿无差异曲线滑到 \(B\)——这一步只有相对价格在起作用;随后预算线平行外推到绿色最终位置,\(B\) 升到更高无差异曲线上的 \(C\)——这一步只有购买力在起作用。
  • 切换到希克斯补偿:紫色线整体更靠近原点,\(B\) 恰好落回过 \(A\) 的原无差异曲线。数值面板里 \(e(p', u^0) < w'\) 恒成立。
  • 拖大 \(\alpha\):商品 1 的支出份额上升,收入效应随之放大(IE 项里乘着 \(x_1\)),总效应越来越被收入效应主导。

为什么希克斯补偿要削减更多财富?

这是初学最容易困惑的一步,值得单独说透。斯勒茨基补偿只要求“买得起原束 \(A\)”。但降价之后相对价格已经改变,消费者没有理由停在 \(A\)——在买得起 \(A\) 的前提下,他会沿无差异曲线滑向更偏好的 \(B\) 点。于是必有 \(u(B) \geq u(A)\);只要偏好严格凸、替代确实发生,不等式就严格成立:\(u(B) > u(A)\)。换句话说,斯勒茨基补偿是一种过度补偿——它让消费者停在比原水平略高的无差异曲线上。

要把效用精确拉回原水平,就得在斯勒茨基削减的基础上再多削一点财富。这正是希克斯补偿削减更多的原因。两种补偿对需求增量的排序因此是(以降价、正常品为例):

\[\underbrace{x_1^{H} - x_1^{0}}_{\text{希克斯增量(最小)}} \;<\; \underbrace{x_1^{CPP} - x_1^{0}}_{\text{斯勒茨基增量}} \;<\; \underbrace{x_1^{W} - x_1^{0}}_{\text{马歇尔(Marshall)增量(最大)}}\]

价格变化越微小,三种度量的差距越小——这正是“收入效应可忽略时消费者剩余 \(CS\)、补偿变差 \(CV\) 与等价变差 \(EV\) 近似相等(\(CS \simeq CV \simeq EV\))”的几何来源(\(CV\)\(EV\) 的完整讨论将另文展开)。

斯勒茨基方程:从图到式

图形拆解对应如下恒等式。对商品 \(l\) 的自身价格:

\[\underbrace{\frac{\partial h_l(p, u)}{\partial p_l}}_{\text{替代效应(}\le 0\text{)}} \;=\; \underbrace{\frac{\partial x_l(p, w)}{\partial p_l}}_{\text{总效应}} \;+\; \underbrace{\frac{\partial x_l(p, w)}{\partial w}\, x_l(p, w)}_{\text{收入效应}}\]

移项即得常见形式 \(\dfrac{\partial x_l}{\partial p_l} = \dfrac{\partial h_l}{\partial p_l} - \dfrac{\partial x_l}{\partial w} x_l\),读作“总效应 = 替代效应 − 收入效应”。注意微分形式以涨价方向为基准(自身价格上升、需求如何变),与上文“降价”的图解方向相反——把各项符号整体翻转即可对应。

回忆 UMP 与 EMP 的对偶关系(详见对偶性与罗伊恒等式):希克斯需求与马歇尔需求通过支出函数连接,

\[h_l(p, u) = x_l\big(p,\; e(p, u)\big)\]

两边对 \(p_l\) 求偏导,右边用链式法则(财富通道走支出函数):

\[\frac{\partial h_l}{\partial p_l} = \frac{\partial x_l}{\partial p_l} + \frac{\partial x_l}{\partial w}\cdot\underbrace{\frac{\partial e(p,u)}{\partial p_l}}_{=\,h_l(p,u)\ \text{(谢泼德引理)}}\]

代入谢泼德引理,并在初始最优处取 \(u^0 = v(p, w)\)——此时 \(h_l(p, u^0) = x_l(p, w)\)——即得斯勒茨基方程。\(\blacksquare\)

推导中唯一引用的外部结果是谢泼德引理,而它本身是包络定理的直接推论,见交互演示:包络定理与消费者对偶。讲义在劳动供给一节用的正是同一个方法:把恒等式两边对工资而非价格求导,就得到劳动供给版的斯勒茨基方程。

矩阵形式把所有价格反应写成斯勒茨基矩阵

\[S(p, w) = D_p x(p, w) + D_w x(p, w)\, x(p, w)^{\top}, \qquad s_{lk} = \frac{\partial x_l}{\partial p_k} + \frac{\partial x_l}{\partial w} x_k\]

讲义给出两个重要结论(此处不证):其一,若 \(x(p,w)\) 可微、满足瓦尔拉斯定律、零次齐次与 WARP,则 \(S(p,w)\) 负半定——特别地自身替代效应 \(s_{ll} \le 0\),替代永远与价格反向;其二,若偏好满足局部非饱和性与严格凸性(由连续效用函数表示),则 \(S(p, w)\) 还是对称的。

三类商品:符号表与吉芬品

现在把符号逻辑补全。以降价为例(与讲义口径一致;涨价时各项整体反号):

商品类型 SE IE TE 需求曲线
正常品 \(+\) \(+\) \(+\) 向下倾斜
劣等品 \(+\) \(-\) \(+\) 向下倾斜
吉芬品 \(+\) \(-\) \(-\) 向上倾斜

三条逻辑链值得记牢:

  1. 替代效应永远为正(降价时):由 \(s_{ll} \le 0\) 保证,与商品类型无关;
  2. 劣等品的收入效应为负,但未必压过替代效应\(|\mathrm{IE}| < |\mathrm{SE}|\) 时总效应仍为正——劣等品的需求曲线依然向下倾斜;
  3. 吉芬品必是劣等品,反之不然:只有负的收入效应在绝对值上压过替代效应(\(|\mathrm{IE}| > |\mathrm{SE}|\)),总效应才变号,需求曲线才向上倾斜。

吉芬品为什么如此罕见?它要求商品劣等(收入越高消费越少),同时占预算的份额很大(收入效应项里乘着 \(x_l\),份额大才有分量)。“穷人的主食”是标准的教科书想象:主食涨价让人实际变穷,穷人反而被迫放弃昂贵的副食、买回更多主食。这也解释了为什么住房、汽油这类大份额商品的收入效应值得认真对待,而大蒜、食盐的收入效应可以忽略。

三档对照:同一分解几何

下面三个面板复用同一套几何(同样的初始与最终预算线、同样的替代步 \(A \to B\)),只有收入步 \(B \to C\) 的方向不同。无差异曲线为构造的概念示意(非特定效用函数),但每个点都严格落在相应预算线上,每条曲线在切点处与对应预算线相切。

▷ 展开 / 收起代码
mkCurve = (x0, y0, m, k) => d3.range(Math.max(1, x0 - 8), Math.min(38, x0 + 8) + 0.25, 0.25)
  .map(t => [t, y0 + m * (t - x0) + k * (t - x0) ** 2])

panelPlot = (title, C) => {
  const A0 = [10, 10], B0 = [14, 8]
  return Plot.plot({
    height: 270,
    x: { label: "x₁", domain: [0, 40] },
    y: { label: "x₂", domain: [0, 23] },
    marks: [
      Plot.line([[0, 20], [20, 0]], { stroke: "#ef4444", strokeWidth: 1.8 }),
      Plot.line([[0, 15], [30, 0]], { stroke: "#8b5cf6", strokeWidth: 1.5, strokeDasharray: "5,3" }),
      Plot.line([[0, 20], [40, 0]], { stroke: "#10b981", strokeWidth: 1.8 }),
      Plot.line(mkCurve(10, 10, -1, 0.05), { stroke: "#3b82f6", strokeWidth: 1.8 }),   // 过 A,切初始线(斜率 −1)
      Plot.line(mkCurve(14, 8, -0.5, 0.05), { stroke: "#3b82f6", strokeWidth: 1.2, strokeOpacity: 0.55 }), // 过 B,切补偿线(斜率 −0.5)
      Plot.line(mkCurve(C[0], C[1], -0.5, 0.05), { stroke: "#3b82f6", strokeWidth: 1.2, strokeOpacity: 0.55 }), // 过 C,切最终线
      Plot.dot([A0, B0, [C[0], C[1]]], { fill: ["#ef4444", "#8b5cf6", "#10b981"], r: 5.5, stroke: "black" }),
      Plot.text([A0, B0, [C[0], C[1]]], { text: ["A", "B", "C"], dy: -11, fontSize: 13, fontWeight: "bold" }),
      ...arrowMark(10, 14, 1.8, "#2563eb"),
      Plot.text([[12, 1.8]], { text: ["SE"], dy: -7, fontSize: 11, fill: "#2563eb", fontWeight: "bold" }),
      ...arrowMark(14, C[0], 0.7, "#f59e0b"),
      Plot.text([[(14 + C[0]) / 2, 0.7]], { text: ["IE"], dy: -7, fontSize: 11, fill: "#f59e0b", fontWeight: "bold" }),
      ...arrowMark(10, C[0], 2.9, "#6b7280", "4,3"),
      Plot.text([[(10 + C[0]) / 2, 2.9]], { text: ["TE"], dy: -7, fontSize: 11, fill: "#6b7280", fontWeight: "bold" })
    ],
    title: title
  })
}

html`<div>${panelPlot("正常品:IE 与 SE 同向", [16, 12])}
  ${panelPlot("劣等品:IE 反向,但 |IE| < |SE|", [13, 13.5])}
  ${panelPlot("吉芬品:IE 反向且压过 SE,TE 变号", [8, 16])}</div>`

三个面板里 \(C\) 点都严格落在绿色最终预算线上(\(x_2 = 20 - 0.5 x_1\)):正常品 \(C = (16, 12)\),总效应 \(+6\);劣等品 \(C = (13, 13.5)\),总效应 \(+3\),被负的收入效应抵掉了一部分;吉芬品 \(C = (8, 16)\),总效应 \(-2\)——降价反而少买。第三块面板就是“需求曲线向上倾斜”的几何含义。

弹性形式:收入效应什么时候可以忽略?

把斯勒茨基方程两边同乘 \(\frac{p_1}{x_1}\)、再乘 \(\frac{w}{w}\) 整理,得到弹性形式:

\[\underbrace{\tilde\varepsilon_{p,Q}}_{\text{补偿弹性(希克斯)}} = \underbrace{\varepsilon_{p,Q}}_{\text{自身价格弹性}} + \underbrace{\varepsilon_{w,Q}}_{\text{收入弹性}} \cdot \underbrace{\theta}_{\text{支出份额 } p_1 x_1 / w}\]

它把“收入效应可不可以忽略”变成两个可查的量:

  • 支出份额 \(\theta\) 很小(大蒜、食盐):价格变化对实际购买力的影响微不足道;
  • 收入弹性 \(\varepsilon_{w,Q}\) 很小:即使购买力变了,消费也不怎么响应。

两者任一成立,就有 \(\tilde\varepsilon_{p,Q} \simeq \varepsilon_{p,Q}\):希克斯需求与马歇尔需求几乎重合,\(CV \simeq EV \simeq CS\)——这就是为什么实证论文经常理直气壮地用消费者剩余近似福利变化。反过来,\(\theta\)\(\varepsilon_{w,Q}\) 都大的商品就必须老老实实用补偿度量。

两个应用(数字来自课程讲义)

住房\(\theta = 0.4\)\(\varepsilon_{w,Q} = 1.38\)\(\varepsilon_{p,Q} = -0.6\)。补偿弹性为

\[\tilde\varepsilon_{p,Q} = -0.6 + 1.38 \times 0.4 = -0.05\]

房价上涨 10%,无补偿时消费减少 6%,有补偿时只减少 0.5%——住房占预算太重,收入效应几乎完全抵消替代效应。

美国 1981 年对日汽车自愿出口限制(Winston, 1987):日本车价格因此高约 20%、美国车高约 8%,而汽车既贵、收入弹性又高,消费者剩余显然不适用。Winston 用补偿变差度量,得到 \(CV = -140\) 亿美元——分摊到约 1.79 亿车主头上,人均约 78 美元。同一逻辑也出现在 Hausman 对沃尔玛降价带来的福利增益估计中(低收入家庭的 \(\theta\) 不可忽略,故用 \(CV\),测得福利改进 3.75%)。

最后一个边界情形:什么偏好下价格变化完全没有收入效应?答案是拟线性偏好 \(u(x_1, x_2) = v(x_1) + x_2\)——所有收入变化都流进计价物 \(x_2\)\(\partial x_1 / \partial w = 0\)。这也是理论教材最爱用拟线性偏好的原因之一:它把斯勒茨基分解里的收入效应一键清零。

同样的分解逻辑可以原样平移到劳动供给(工资上升的替代与收入效应、后弯供给曲线)——讲义用与本文推导完全相同的方法处理了这一情形,此处按下不表,另文详述。

小结

  • 价格变化的总效应 = 替代效应 + 收入效应,中间预算线是拆解工具;
  • 斯勒茨基补偿冻结购买力(买得起原束,是过度补偿),希克斯补偿冻结效用(削减更多),降价正常品下增量排序 \(H < CPP < W\)
  • 斯勒茨基方程 \(\frac{\partial h_l}{\partial p_l} = \frac{\partial x_l}{\partial p_l} + \frac{\partial x_l}{\partial w} x_l\) 由对偶恒等式一步微分得到;\(S(p,w)\) 负半定(+ 严格凸偏好下对称);
  • 替代效应永远与价格反向;吉芬品必是劣等品且预算份额巨大,极其罕见;
  • 弹性形式 \(\tilde\varepsilon_{p,Q} = \varepsilon_{p,Q} + \varepsilon_{w,Q}\theta\) 给出“何时可忽略收入效应”的操作判据。

下一篇回到对偶链条的另一半:生产者理论中的成本最小化与谢泼德引理

None🤖 AI 助教「乐高」

拖完滑块还有疑惑?直接向 AI 助教「乐高」提问——它基于本站课程讲义回答,公式用 LaTeX 排版,回答附带讲义溯源。可以试试:

  • 为什么在斯勒茨基分解中,希克斯补偿削减的财富量严格大于斯勒茨基补偿?
  • 正常品、劣等品与吉芬品的替代效应与收入效应符号关系是什么?
  • 请详细写出用包络定理证明罗伊恒等式(Roy’s Identity)的完整步骤。