讲效用最大化这一章,我见过太多这样的场面:黑板上写着需求函数、间接效用函数、支出函数三个标题,底下同学抄着抄着就开始问,这三个函数到底是不是三个东西?为什么算完需求函数还要算间接效用函数?支出函数又是从哪里冒出来的?这种困惑很正常,因为教材往往把这几个概念分散在不同章节,好像各管各的。但实际它仨背后是同一个消费者选择问题,只是换了两副眼镜看。这篇文章就把整条线一次性理清:需求函数、间接效用函数、支出函数从哪里来、怎么算、怎么互相验证、怎么拿去算福利补偿,中间穿插我反复讲给学生的自检方法和踩坑记录。适合正在啃中级微观经济学、或者备考时被对偶关系绕晕的读者,也适合已经在用实证需求模型但想回头补理论底子的人。
1. 三个函数从哪里来:同一组偏好换两种问法
先说清楚一个容易被忽略的事实:这三个函数不是并列的三块知识点,而是从同一个消费者选择模型里长出来的。模型本身只有两样东西:效用函数 u(x) 和预算约束 p·x ≤ m。剩下的,都只是问问题的方式不同。
1.1 先让消费者做选择:效用最大化问题与马歇尔需求函数
最标准的问法是:给定价格向量 p 和收入 m,消费者在预算集里挑一个消费束,让自己效用最高。写成优化问题就是 max u(x) 受约束于 p·x ≤ m。这个问题的解 x(p,m),就是马歇尔需求函数,也叫普通需求函数。
注意这个名字里的“马歇尔”对应的是“普通”的意思,强调它是消费者在真实预算约束下的实际选择。你给它一组价格和收入,它告诉你消费者会买多少。这个函数是后面一切的起点,因为一旦求出它,间接效用函数就是把最优消费束代回效用函数而已。
我习惯用一个生活类比帮学生建立画面:预算约束像一片地形图,你手里有一笔钱,要在地形图上找一个海拔最高的点。马歇尔需求函数就是那个最高点在地图上的坐标,坐标是随着地形参数和你的钱数变化的。
1.2 把最优解代回效用:间接效用函数是“最大值函数”
马歇尔需求函数是坐标,那么把坐标代回效用函数得到的高度,就是一个新函数:v(p,m) = u(x(p,m))。这个函数叫间接效用函数。
为什么叫“间接”?因为效用本身是不能直接观察的,你只能观察价格和收入。间接效用函数就是用“价格和收入”这两个可观察变量,间接表示消费者能达到的最高效用水平。它是一个最大值函数,输入是 (p,m),输出是效用值。
这里有个容易踩的误区:有人以为间接效用函数就是把需求函数和效用函数“机械地拼起来”,所以不太理解它为什么要单独命名。其实它的身份是“最优值函数”——不是随便一个效用值,而是在每个价格收入组合下真正实现的最大值。这一点在后面讲罗伊恒等式时特别关键,因为包络定理正是作用在“最优值函数”上的。
1.3 反过来问成本:支出函数与支出最小化问题
第三个函数来自一个反着问的问题:如果消费者想达到某个效用水平 u,在给定价格 p 的前提下,最少要花多少钱?这个问题叫支出最小化问题(EMP),写成 min p·x 受约束于 u(x) ≥ u。它的解是最小支出 e(p,u),也就是支出函数。
很多人第一次看到这里会愣住:研究效用最大化,为什么要研究支出最小化?其实这两个问题是同一个边界的两个方向:效用最大化是在预算线上找“最高点”,支出最小化是在无差异曲线上找“最低成本点”。在消费者理论里,这两个方向是精确互补的,就像同一座山从南坡看和从北坡看,山顶和最低路径是同一个地方。
严格说,消费者理论完整体系里其实是四个对象:马歇尔需求、希克斯需求、间接效用、支出函数。标题只提三个,是因为希克斯需求可以由支出函数通过谢泼德引理直接求导得到,它是支出函数的“副产品”。所以先掌握这三个,整个框架就立住了。
2. 柯布-道格拉斯效用的一整套手推流程
理论讲得再热闹,不亲手推一遍等于没学。我用最经典的柯布-道格拉斯效用函数 U = x1^a · x2^(1-a) 走一遍完整流程。这个函数形式是几乎所有教材的开胃菜,因为它的需求函数有非常漂亮的闭式解,而且每一步都能手算验证。
2.1 拉格朗日法求解马歇尔需求函数的标准步骤
问题是 max x1^a · x2^(1-a),约束为 p1·x1 + p2·x2 = m。注意这里我直接写成等号,因为在局部非饱和偏好下,消费者会把预算花光,不会剩钱。
构造拉格朗日函数: L = x1^a · x2^(1-a) + λ(m - p1·x1 - p2·x2)
对 x1、x2、λ 分别求偏导并令其为零: ∂L/∂x1 = a·x1^(a-1)·x2^(1-a) - λ·p1 = 0 ∂L/∂x2 = (1-a)·x1^a·x2^(-a) - λ·p2 = 0 ∂L/∂λ = m - p1·x1 - p2·x2 = 0
前两个条件相除,消掉 λ,得到: a·x2 / ((1-a)·x1) = p1/p2
这个式子叫边际替代率等于价格比,它的经济学含义很清楚:消费者最后一元钱花在两种商品上的边际效用必须相等,否则就可以通过调整消费组合变得更好。
把上式变形得 x2 = (1-a)/a · (p1/p2)·x1,代入预算约束,经过几步代数运算后得到:
x1(p,m) = a·m / p1 x2(p,m) = (1-a)·m / p2
这就是柯布-道格拉斯偏好下的马歇尔需求函数。如果你已经学过这个结论,应该会注意到一件很妙的事:参数 a 和 1-a 恰好就是两种商品上的预算份额。也就是说,消费者会把收入的 a 比例花在商品1上。这个性质不是巧合,而是柯布-道格拉斯函数的对数性质决定的,后面做数值验证时能派上大用场。
2.2 反解支出函数:从间接效用函数出发的捷径
有了马歇尔需求函数,先把间接效用函数求出来。把两个需求函数代回效用函数:
v(p,m) = (a·m/p1)^a · ((1-a)·m/p2)^(1-a)
整理系数,记 B = a^a · (1-a)^(1-a),则:
v(p,m) = B·m / (p1^a · p2^(1-a))
这是一个非常标准的间接效用函数形式:关于收入 m 是线性递增的,关于价格是递减的。
现在求支出函数,这里有一个很多人不知道的捷径:由于在柯布-道格拉斯偏好下,效用最大化和支出最小化是一对对偶问题,支出函数可以直接从间接效用函数反解出来。也就是令 v(p,m) = u,然后解出 m:
e(p,u) = u · p1^a · p2^(1-a) / B
你当然也可以从支出最小化问题出发,用拉格朗日法重新推一遍,最后得到的结果必然一致。我之所以在这里推荐反解,是因为它顺便验证了对偶关系的正确性:同一个消费者问题,从一个方向推到另一个方向,答案必须碰头。如果推出来的两个函数对不上,说明中间某一步有问题。
2.3 代入具体数字验证一遍恒等式
理论推导容易飘,我习惯用具体数字把所有函数“钉死”。设 a = 0.4,m = 100,p1 = 2,p2 = 5。
先算马歇尔需求: x1 = 0.4 × 100 / 2 = 20 x2 = 0.6 × 100 / 5 = 12
消费者会买 20 单位商品1、12 单位商品2,总支出 2×20 + 5×12 = 100,正好花光。
代回效用函数:U = 20^0.4 × 12^0.6。算一下近似值,20^0.4 ≈ 3.31,12^0.6 ≈ 4.45,乘积约 14.72。这个数字就是 v(2,5,100)。
再用支出函数反推:e(2,5,14.72) = 14.72 × 2^0.4 × 5^0.6 / B,其中 B = 0.4^0.4 × 0.6^0.6 ≈ 0.51,分子约 14.72 × 3.47 ≈ 51,除以 0.51 后刚好回到 100。
这三步数字互相咬合,说明需求函数、间接效用函数、支出函数三条线在同一个数值点上是一致的。以后你随便举一个效用函数,都可以用这个流程自检。
3. 三个函数之间的数学桥梁:罗伊恒等式与谢泼德引理
很多教材会把罗伊恒等式和谢泼德引理放在“对偶理论”一节里,看起来像是要背的新公式。实际上它们都是包络定理在不同问题里的两个应用,本质是同一个思想:最优值函数对参数的偏导数,可以直接通过拉格朗日函数对该参数的偏导数计算,而不必先求最优解再代入。
3.1 包络定理视角:偏导怎么“读出”需求
先看间接效用函数 v(p,m)。在最优解处,拉格朗日函数对价格 p1 求偏导:
∂L/∂p1 = -λ·x1
由包络定理,最优值函数对参数的偏导等于拉格朗日函数对参数的偏导(在最优解处取值),所以:
∂v/∂p1 = -λ·x1
同时,拉格朗日函数对收入 m 求偏导是 λ,也就是 ∂v/∂m = λ。代进去得到:
∂v/∂p1 = -(∂v/∂m)·x1
整理成 x1 = -(∂v/∂p1)/(∂v/∂m),这就是罗伊恒等式:间接效用函数对价格的偏导除以对收入的偏导,再取负号,恰好等于马歇尔需求函数。
你可以把 λ 理解为收入的“边际效用”——多一元钱能带来多少额外效用。价格上升之所以会压低间接效用,就是因为它让每一元钱的实际购买力变弱了。用包络定理看,价格变化的负效应大小等于最优消费量乘以收入的边际效用,所以“效用损失除以边际效用”就还原出需求量。
3.2 罗伊恒等式的负号为什么不能丢
罗伊恒等式最容易被骂的一点,就是那个负号。很多同学在考场上推到最后,忘记加负号,结果得到一个负的需求量,还硬着头皮往下写。
判断负号其实很简单:间接效用函数对价格求偏导一定是负的,因为价格上升不可能让消费者过得更好;而 ∂v/∂m 一定是正的,因为收入增加不可能让消费者更差。两个一除是负数,需求量必须是正数,所以外面必须加负号才能负负得正。
用前面柯布-道格拉斯的例子验证一次。v(p,m) = B·m / (p1^a·p2^(1-a)),求偏导后罗伊恒等式右边是: -(∂v/∂p1)/(∂v/∂m) = -[-a·B·m/(p1^(a+1)·p2^(1-a))] / [B/(p1^a·p2^(1-a))] = a·m/p1,与马歇尔需求完全一致。这一步建议你亲手算一遍,算完你对这个公式的记忆会牢固很多。
3.3 支出函数的导数就是希克斯需求
再看支出函数那边。支出最小化问题的拉格朗日函数可以写为 L = p·x + μ(u - u(x)),在最优解处对价格 p1 求偏导:
∂L/∂p1 = x1
包络定理告诉我们,∂e/∂p1 = x1,而这里的 x1 并不是马歇尔需求,而是在“固定效用水平”条件下调整出来的最优选择,也就是希克斯需求函数 h1(p,u)。所以谢泼德引理说:
h1(p,u) = ∂e(p,u)/∂p1
在柯布-道格拉斯例子里,对 e(p,u) 求导得到的希克斯需求为 h1 = a·u·p1^(a-1)·p2^(1-a)/B。它和马歇尔需求之间的关系是:把支出函数中的 u 换成 v(p,m),希克斯需求会变回马歇尔需求。这一点在理论上叫对偶关系,在实操中则是非常有效的验证工具。
现在你可以看到三个函数的闭环了:需求函数和间接效用函数来自效用最大化,支出函数来自支出最小化;罗伊恒等式把前两者连起来,谢泼德引理把支出函数和希克斯需求连起来;再通过 e(p,v(p,m)) = m 和 v(p,e(p,u)) = u 这两条对偶恒等式,整个圆就合上了。
4. 用性质做自检:算完之后怎么知道有没有算对
理论框架搭好之后,最实用的技能其实是“验算”。我见过太多人推导过程看上去很顺,但结果一代入就错得离谱。原因是他们不知道这些函数长什么样子才是正常的,也就是对函数的性质没有直觉。这一节把最常用的几条性质列出来,每条都能在十分钟内完成检验。
4.1 零阶齐次性:价格和收入同比例动,需求不变
马歇尔需求函数最重要的性质是零阶齐次性:如果把所有价格和收入同时乘以同一个正数 t,需求函数不变。即 x(tp,tm) = x(p,m)。
道理很直观:预算集 p1·x1 + p2·x2 ≤ m 两边同时乘 t,得到 t·p1·x1 + t·p2·x2 ≤ t·m,和原来的预算集一模一样。消费者面对的可行选择完全没有变化,最优选择当然也不变。
用柯布-道格拉斯的例子验证:x1(tp,tm) = a·(t·m)/(t·p1) = a·m/p1,t 被消掉了。这是一个非常快的自检工具,只要你算出来的需求函数里还残留着 t,或者价格和收入的幂次明显不匹配,那几乎必然算错了。
顺便提一句齐次性的另一个用途:如果你知道某个需求函数是零阶齐次的,那么用欧拉定理对价格和收入求导,能得到一条导数之间的约束关系,这在做实证需求系统估计时可以用来化简参数约束,不过初学阶段知道概念就够了。
4.2 单调性与凹凸性:函数该增的增,该减的减
间接效用函数 v(p,m) 对收入 m 严格递增,对每个价格 p_i 严格递减。这是偏好的局部非饱和性在最大值函数上的体现:钱多了一定能买到更多商品,效用不可能更低;价格高了同样的收入买不到那么多商品,效用不可能更高。
支出函数 e(p,u) 对效用水平 u 严格递增,对每个价格 p_i 非递减。这也很直观:想达到更高的无差异曲线,至少要花同样多的钱,通常要花更多;某商品涨价,最小支出不可能下降。
还有一个容易被忽略但很有用的性质:支出函数对价格向量 p 是凹函数。凹性的经济含义是,价格波动时消费者的最小支出不会“加速”上升,因为消费者可以在不同价格之间重新配置消费组合。这种凹性在某些福利分析里会直接影响测算结果的边界。
用这些性质验算时,只需要做一件事:把你的函数对相关变量求偏导,看看符号是否符合预期。如果间接效用对收入求导是负的,或者支出函数对价格求导是负的,那就别往下算了,回头检查拉格朗日乘子或者约束方向。
4.3 我的三步自检法:齐次、符号、包络方向
前面讲的性质零零散散,我给学生总结成一个三步自检法,做题时按顺序走一遍,基本能过滤掉九成错误。
第一步,齐次性检查:把每个价格和收入同时乘 t,看需求函数是否保持不变,看间接效用函数是否也保持不变,看支出函数是否被 t 整体放大一倍。这一步三分钟能完成,是对函数形式的全面体检。
第二步,符号检查:检验 v 对 m 的偏导为正、对 p 的偏导为负,e 对 p 的偏导非负、对 u 的偏导为正。符号错多半是拉格朗日乘子的正负号写反,或者约束方向写反,这是最容易定位的一类错误。
第三步,包络方向检查:用罗伊恒等式从 v 反推需求函数,用谢泼德引理从 e 反推希克斯需求,再看反推结果和直接解的答案是否一致。这一步是对整条逻辑链的闭环验证,如果这三个签名都对上,你的答案可以放心提交。
我还会多做一个动作:把 λ 的表达式单独写出来。在效用最大化问题里,λ 就是 ∂v/∂m,可以理解为收入的边际效用。你把 λ 求出来放在一边,后面写罗伊恒等式时直接用它,能少走很多弯路。
5. 从公式到真金白银:三个函数在福利评估里的用法
学了这么一大套函数,肯定有人要问:这东西除了做题,到底能干什么?我挑一个最经典的应用场景,价格变动导致的福利变化测算。这里三个函数会变成一个非常具体的工具链。
5.1 用支出函数算一笔价格变动的补偿
回到前面那个数字例子。消费者收入 100,初始价格 p1 = 2、p2 = 5,最优消费 20 和 12,效用约 14.72。现在假设商品1涨价到 3,当其他条件不变时,消费者当然变差了。
问题是:变差了多少?光看钱不够,因为涨价的直接影响是购买力下降,但消费者还可以调整消费组合。福利经济学里更合理的做法是用“等效货币尺度”来衡量。
第一步,用支出函数计算在新价格下要达到原来效用 14.72 需要多少钱:
e(3,5,14.72) = 14.72 × 3^0.4 × 5^0.6 / 0.51 ≈ 14.72 × 4.08 / 0.51 ≈ 117.6
也就是说,在新价格下,维持原来生活水平需要 117.6 元。而消费者的收入只有 100,因此需要额外补偿约 17.6 元。这个数字就叫补偿变化(CV),它衡量的是“价格变化后,恢复到原效用水平所需的货币补偿”。
这整笔计算唯一需要的函数就是支出函数,间接效用函数和需求函数在中间起了辅助作用。这也是为什么支出函数在福利分析中是中心角色:它直接把效用变化翻译成了货币单位。
5.2 补偿变化 CV 与等价变化 EV 差在哪
与 CV 对应的另一个指标是等价变化(EV),它问的是另一个问题:价格变化这件事,在旧价格下折算成多少收入损失?
先算新价格下的效用:v(3,5,100) = 0.51 × 100 / (3^0.4 × 5^0.6) ≈ 51 / 4.08 ≈ 12.51。然后在旧价格下算,达到新效用 12.51 需要多少钱:
e(2,5,12.51) = 12.51 × 2^0.4 × 5^0.6 / 0.51 ≈ 12.51 × 3.47 / 0.51 ≈ 85.0
所以价格变化等价于收入从 100 降到 85,也就是损失约 15 元。这个数就是 EV(按上述定义)。注意它和 CV 的 17.6 并不相等,这是正常的:补偿变化用原效用水平计算,等价变化用新效用水平计算,两者在价格变化不连续时存在差异,来源是替代效应与收入效应的不对称。
实际做政策评估时,同一个价格改革,报告 CV 还是 EV 要看立场。如果考察“为了让消费者回到变革前状态需要补偿多少”,用 CV;如果考察“消费者为了获得变革后的状态愿意放弃多少收入”,用 EV。两个数给出的是福利损失的上下区间,比单报一个数更稳健。
5.3 间接效用函数在实证建模中的真实位置
如果你将来做实证研究,会发现间接效用函数并不仅仅是个理论工具。
在离散选择模型里,研究者通常假设消费者的选择由随机效用决定,而间接效用函数是整个建模的原点:每个选项的价值被写成价格、属性与收入的函数,消费者选择效用最大的选项。这个时候,需求函数不是显式给出的,而是通过选择概率间接体现的,福利测算则用包含间接效用函数参数的 log-sum 公式完成。
另一个常见场景是需求系统估计。实际操作中你手里往往没有效用函数的具体形式,只有很多家庭在不同价格和收入下的消费数据。这时要从需求函数出发,用计量方法估计参数,再通过积分或对偶关系构造支出函数,从而计算各种福利指标。理论和实证之间,靠的正是我们在前几章建立的函数对偶关系。
所以这三个函数不是只活在考卷上。它们是一整套分析工具:需求函数是观察到的行为,间接效用函数是行为背后的效用刻度,支出函数是刻度与货币之间的汇率。把这套换算关系玩熟,你会发现很多所谓的实证方法就是在给这三个函数“填空”。
6. 学习这组函数时最容易踩的坑
最后集中讲几个我在辅导和批改作业时反复看到的问题。每个坑都对应着某个概念细节被忽略,写出来比单讲理论要有用得多。
6.1 把希克斯需求当成马歇尔需求,后果很直接
柯布-道格拉斯例子由于特殊性质,两个需求函数在代入对偶关系后形式上很像,导致有些人以为它俩是同一个东西。实际上马歇尔需求是“给定收入”下的最优选择,希克斯需求是“给定效用”下的最优选择;价格变化时,马歇尔需求的变化包含了收入效应,而希克斯需求变化只反映替代效应。两者在一般情况下完全不同。
判断混没混用的一个快速做法:看自变量里有没有收入 m。马歇尔需求的自变量是 (p,m),希克斯需求的自变量是 (p,u)。如果写需求函数时把 m 和 u 混在一起,那多半是把两个需求函数的身份搞错了。它们之间的关系需要靠斯拉茨基方程来沟通,学到这里的时候务必分清楚。
6.2 对效用函数做单调变换之后的连锁反应
很多人会对效用函数做单调变换,比如把 U = x1^a·x2^(1-a) 改写为 ln U = a·ln x1 + (1-a)·ln x2,然后再做一遍最优化。这个操作本身没问题,因为单调变换不改变偏好,最优消费束完全不变。
但要注意连锁反应:马歇尔需求函数不变,支出函数在同一个无差异层的意义下也不变,但间接效用函数的“刻度”变了。原来 v 可能等于 14.72,换成对数形式后 v_ln 就变成 ln 14.72 ≈ 2.69。如果你拿这个新的间接效用函数去做跨消费者比较,你会误以为效用数值大小代表福利高低,但实际上不同消费者的效用刻度根本无法直接比较。
判断方法是:凡是用 v 的具体数值做比较的场合,都要确认效用刻度是否有基数性;凡是只涉及无差异层排序的场合,单调变换都不影响结论。福利指标 CV 和 EV 因为建立在支出函数上,对单调变换不敏感,这也是它在实证中更受欢迎的原因之一。
6.3 复盘清单:拿到题目先做这三个动作
每次临近考试或开始做新项目,我都会把这套流程压缩成一张小清单,按顺序执行完整流程就能把大部分题目拿下:
第一,写清楚问题:确认做的是效用最大化还是支出最小化,明确目标函数、约束条件、自变量是谁。这一步看似简单,却是所有错误的起点。
第二,完整求解并化简:解出马歇尔需求函数后一定代回求间接效用函数,再反解支出函数;不要在中间步骤留下没有化简的指数形式,否则后面做齐次性检验时长得完全不像标准形式,根本无法自检。
第三,做完三步自检:齐次性检查、符号检查、罗伊恒等式加谢泼德引理闭环验证。任何一步对不上,宁愿推翻重来也不要带着错误继续往下算福利。
我自己每次备课,都会逼自己不看笔记把这套流程重新推一遍。不是因为我记不住公式,而是因为只有亲手走一遍,才能保持对函数关系的敏感度。理论不是背出来的,是推出来的。你只要把这组循环完整走两遍,以后再看到“需求函数、间接效用函数、支出函数”三个词,就不会再觉得它们是三座孤岛,而是同一片大陆上的三个地标。