---
title: "偏好凸性与效用函数拟凹性的等价判定"
description: "用严格定义、一维对比图与二维交互实验,阐明偏好凸性与效用拟凹性的等价关系、凹函数与凸函数的拟凹性判定,以及单调变换下的性质保持。"
date: "2026-09-12"
author: [Shawn, "Gemini 3.8 Flash"]
categories: [消费理论, 偏好与效用, 拟凹性, 交互课件, Python 可视化]
toc: true
code-tools: true
---
在微观经济学中,理解“凸偏好”为什么对应“拟凹效用函数”,关键在于厘清**消费束集合的几何凸性**与**效用函数数值曲率(凹凸性)**之间的内在联系与本质区别。
---
## 一、凸偏好与上轮廓集(UCS)
设消费者的消费集为凸集 $X \subseteq \mathbb{R}_+^L$。偏好关系 $\succsim$ 的基本公理构成了消费者选择理论的基石。
### 1. 上轮廓集定义
给定任意基准消费束 $x \in X$,其**上轮廓集(Upper Contour Set, 记作 $\operatorname{UCS}(x)$)**定义为所有不劣于该消费束的集合:
$$
\operatorname{UCS}(x) = \{y \in X \mid y \succsim x\}
$$
若偏好由连续效用函数 $u(\cdot)$ 表示(即 $y \succsim x \iff u(y) \ge u(x)$),则上轮廓集为所有效用值不低于基准束效用的集合:
$$
\operatorname{UCS}(x) = \{y \in X \mid u(y) \ge u(x)\}
$$
### 2. 偏好凸性的经济含义
偏好的**凸性(Convexity of Preferences)**要求:对任意 $x \in X$,其上轮廓集 $\operatorname{UCS}(x)$ 均为**凸集**。
其经济直觉是:若消费者认为方案 $x$ 与方案 $y$ 都不劣于基准点,则两者的任意加权混合方案 $z = \alpha x + (1-\alpha)y$(其中 $\alpha \in [0,1]$)也绝不劣于该基准点。这反映了消费者对“多样化消费(averages are preferred to extremes)”的偏好倾向。
---
## 二、拟凹性的严格定义与三者等价关系
在微观理论中,拟凹性(Quasiconcavity)有两种标准且完全等价的表述方式:
::: {.callout-note}
### 拟凹性(Quasiconcavity)的两种等价定义
- **定义一(集合几何视角)**:
若对定义域 $X$ 内的每一个消费束 $x \in X$,其上轮廓集 $\operatorname{UCS}(x) = \{y \in X \mid u(y) \ge u(x)\}$ 都是凸集,则称效用函数 $u(\cdot)$ 是**拟凹的**。
- **定义二(代数与混合视角)**:
若对任意两个消费束 $x, y \in X$ 以及任意权重 $\alpha \in [0, 1]$,混合束的效用均弱大于两端点效用的较小者:
$$
u\bigl(\alpha x + (1-\alpha)y\bigr) \ge \min\{u(x), u(y)\}
$$
则称效用函数 $u(\cdot)$ 满足拟凹性。
:::
两者的等价性十分明晰:
1. **由定义二推导定义一**:任取 $y_1, y_2 \in \operatorname{UCS}(x)$,由定义知 $u(y_1) \ge u(x)$ 且 $u(y_2) \ge u(x)$,进而端点最小值 $\min\{u(y_1), u(y_2)\} \ge u(x)$。代入定义二的混合不等式可得 $u(\alpha y_1 + (1-\alpha)y_2) \ge u(x)$,即混合点必属于 $\operatorname{UCS}(x)$,证得 $\operatorname{UCS}(x)$ 为凸集;
2. **由定义一推导定义二**:任取两点 $x, y \in X$,不妨设 $u(x) \le u(y)$,则显然 $x \in \operatorname{UCS}(x)$ 且 $y \in \operatorname{UCS}(x)$。由于 $\operatorname{UCS}(x)$ 是凸集,连接两点的线段上的任意混合点 $\alpha x + (1-\alpha)y$ 仍落在 $\operatorname{UCS}(x)$ 内,故有 $u(\alpha x + (1-\alpha)y) \ge u(x) = \min\{u(x), u(y)\}$。
由此,我们得到现代微观经济理论中最为核心的三者等价命题:
::: {.callout-important}
### 偏好与效用的几何与代数等价性
$$
\begin{aligned}
\text{偏好满足凸性} &\iff \operatorname{UCS}(x) \text{ 均为凸集} \\
&\iff u(\cdot) \text{ 为拟凹函数}
\end{aligned}
$$
:::
### 严格拟凹性与线性无差异曲线特例
- **严格拟凹性(Strict Quasiconcavity)**:
对任意 $x \neq y$ 且 $\alpha \in (0, 1)$,混合束的效用严格大于较差端点:
$$
u\bigl(\alpha x + (1-\alpha)y\bigr) > \min\{u(x), u(y)\}
$$
当两点处于同一条无差异曲线上时($u(x) = u(y)$),连接两点的线段内部所有点都落在更靠外(效用更高)的无差异曲线上,这在几何上对应**无差异曲线严格凸向原点**。
- **线性无差异曲线(完全替代品)**:
对于 $u(x_1, x_2) = a x_1 + b x_2$,当 $u(x)=u(y)$ 时,其凸组合恰好落在原直线上:
$$
u\bigl(\alpha x + (1-\alpha)y\bigr) = \alpha u(x) + (1-\alpha)u(y) = \min\{u(x), u(y)\}
$$
它严格满足普通拟凹性(上轮廓集是闭半空间,为凸集),但**不满足严格拟凹性**。
---
## 三、凹函数与凸函数的拟凹性判定
很多初学者容易混淆“凹函数”、“凸函数”与“拟凹函数”的关系。我们通过严格数学推导与直观对比图来厘清:
### 1. 凹函数必然拟凹(Concavity $\implies$ Quasiconcavity)
若函数 $f(\cdot)$ 是凹函数,则对定义域内任意两点 $x, y$ 与 $\alpha \in (0, 1)$,根据凹函数的几何定义(弦在函数图像下方):
$$
f\bigl(\alpha x + (1-\alpha)y\bigr) \ge \alpha f(x) + (1-\alpha)f(y)
$$
由于加权平均数必然不小于参与平均的两个数中的较小值:
$$
\alpha f(x) + (1-\alpha)f(y) \ge \min\{f(x), f(y)\}
$$
将这两个不等式链式连接,立即得到:
$$
f\bigl(\alpha x + (1-\alpha)y\bigr) \ge \alpha f(x) + (1-\alpha)f(y) \ge \min\{f(x), f(y)\}
$$
因此,**凹函数必然是拟凹函数**。拟凹性只要求曲线上点的函数值不低于两端点的最小值,而凹性还进一步要求其不低于两端点连线的割线高度。由此可见,**拟凹性是一个比凹性弱得多的条件(Quasiconcavity is a weaker condition than concavity)**。
### 2. 凸函数不满足拟凹:以反例 $f(x)=x^2$ 为例
凸函数的定义要求其函数割线恒在函数图像上方:
$$
f\bigl(\alpha x + (1-\alpha)y\bigr) \le \alpha f(x) + (1-\alpha)f(y)
$$
由于凸函数图像向下凹陷,割线位于上方,混合点的函数值极易跌破两端点的较小值 $\min\{f(x), f(y)\}$。
以右图展示的一维严格凸函数 $f(x) = x^2$(定义域设为 $[-2, 2]$)为例,它**不满足拟凹性**:
- **从定义二(代数混合不等式)检验**:
取端点 $x = -1, y = 1$,对应函数值 $f(-1) = 1, f(1) = 1$,两端较小值为 $\min\{f(-1), f(1)\} = 1$。
取中点权重 $\alpha = 0.5$,中点坐标为 $m = 0.5(-1) + 0.5(1) = 0$。
计算中点处的函数值:$f(0) = 0^2 = 0$。
由于:
$$
f(0) = 0 < \min\{f(-1), f(1)\} = 1
$$
中点函数值严格低于两端点的较小值,**直接违背了拟凹性定义**。
- **从定义一(上轮廓集 UCS)检验**:
取基准点 $x = 1$,其上轮廓集为所有函数值不低于 $f(1)=1$ 的点构成的集合:
$$
\operatorname{UCS}(1) = \{y \in [-2, 2] \mid f(y) \ge f(1) = 1\}
$$
显然端点 $-1 \in \operatorname{UCS}(1)$ 且 $1 \in \operatorname{UCS}(1)$。但连接两点的中点 $0$,其函数值为 $f(0) = 0 < 1$,因而 $0 \notin \operatorname{UCS}(1)$。
连接集合内两点的线段没有全部留在集合内部,故 $\operatorname{UCS}(1)$ 不是凸集。根据课件定义,该函数**不满足拟凹性**。
下图左侧展示了“凹函数必拟凹”的割线与阶梯不等式,右侧直观呈现了凸函数反例 $f(x)=x^2$ 因中间下沉导致中点跌破端点最小值、上轮廓集 $\operatorname{UCS}(1)$ 非凸的过程:
```{python}
#| label: fig-concave-vs-convex
#| fig-cap: "左图:凹函数必然拟凹。曲线上混合点高度不仅高于割线(加权平均),更明显高于两端较小值 min{f(x),f(y)}。右图:凸函数反例 f(x)=x^2 不满足拟凹性。其中点 x=0 处的函数值 (0) 跌破两端最小值 (1),且上轮廓集 UCS(1) 不是凸集(中点 0 落在集合外)。"
#| echo: false
#| fig-format: svg
#| fig-width: 9.2
#| fig-height: 4.2
import numpy as np
import matplotlib.pyplot as plt
from matplotlib_inline.backend_inline import set_matplotlib_formats
# Configure fonts for Chinese characters on Windows
plt.rcParams['font.sans-serif'] = ['SimHei', 'Microsoft YaHei', 'Arial Unicode MS', 'DejaVu Sans']
plt.rcParams['axes.unicode_minus'] = False
set_matplotlib_formats("svg")
fig, axes = plt.subplots(1, 2, figsize=(9.2, 4.2), layout="constrained")
# ---------- Panel 1: Concave implies Quasiconcave ----------
ax1 = axes[0]
q = np.linspace(0, 5, 400)
# Standard concave curve f(x) = 2.8 * sqrt(x)
f_concave = 2.8 * np.sqrt(q)
x_val = 1.0
y_val = 4.0
alpha = 0.4
m_val = alpha * x_val + (1 - alpha) * y_val # 2.8
fx = 2.8 * np.sqrt(x_val) # 2.8
fy = 2.8 * np.sqrt(y_val) # 5.6
fm = 2.8 * np.sqrt(m_val) # ~ 4.68
f_chord = alpha * fx + (1 - alpha) * fy # 4.48
ax1.plot(q, f_concave, color="#1e40af", lw=2.2, label=r"$f(\cdot)$")
ax1.plot([x_val, y_val], [fx, fy], "o--", color="#d97706", lw=1.5)
# Vertical dashed lines
ax1.vlines([x_val, m_val, y_val], 0, [fx, fm, fy], colors="#94a3b8", linestyles=":")
# Horizontal dashed lines
ax1.hlines([fx, f_chord, fm, fy], 0, [x_val, m_val, m_val, y_val], colors="#94a3b8", linestyles=":")
# Points
ax1.plot([x_val, y_val], [fx, fy], "o", color="#1e40af", markersize=6)
ax1.plot(m_val, fm, "o", color="#15803d", markersize=7)
ax1.plot(m_val, f_chord, "s", color="#d97706", markersize=5)
# Annotations (avoid Chinese characters inside math mode delimiters)
ax1.set_xlim(-0.2, 5.2)
ax1.set_ylim(0, 6.6)
ax1.set_xlabel("自变量 x")
ax1.set_ylabel("函数值 f(x)")
ax1.set_title(r"凹函数必拟凹:$f(m) \geq \alpha f(x) + (1-\alpha)f(y) \geq \min\{f(x), f(y)\}$", fontsize=9.2)
ax1.set_xticks([x_val, m_val, y_val])
ax1.set_xticklabels([r"$x$", r"$\alpha x + (1-\alpha)y$", r"$y$"])
ax1.set_yticks([fx, f_chord, fm, fy])
ax1.set_yticklabels([
r"$\min\{f(x),f(y)\}$",
r"$\alpha f(x)+(1-\alpha)f(y)$",
r"$f(\alpha x+(1-\alpha)y)$",
r"$f(y)$"
], fontsize=8.5)
ax1.grid(alpha=0.15)
# ---------- Panel 2: Convex not Quasiconcave ----------
ax2 = axes[1]
x_sq = np.linspace(-1.8, 1.8, 400)
f_sq = x_sq**2
ax2.plot(x_sq, f_sq, color="#dc2626", lw=2.2)
ax2.plot([-1, 1], [1, 1], "o--", color="#d97706", lw=1.5)
# Highlight midpoint drop
ax2.plot(0, 0, "o", color="#dc2626", markersize=7)
ax2.vlines([-1, 0, 1], 0, [1, 0, 1], colors="#94a3b8", linestyles=":")
ax2.axhline(1, color="#64748b", ls=":", alpha=0.6)
# UCS visualization
ax2.plot([-1.8, -1.0], [-0.22, -0.22], color="#15803d", lw=3.5)
ax2.plot([1.0, 1.8], [-0.22, -0.22], color="#15803d", lw=3.5)
ax2.text(0, -0.38, r"$\operatorname{UCS}(1)$ 非凸(中点 $0 \notin \operatorname{UCS}(1)$)", color="#15803d", ha="center", fontsize=8.2)
ax2.annotate("中点 $f(0)=0 < 1$\n违背拟凹定义!", xy=(0, 0), xytext=(0, 0.5),
arrowprops=dict(arrowstyle="->", color="#dc2626", lw=1.5),
ha="center", color="#dc2626", fontsize=9)
ax2.set_xlim(-1.9, 1.9)
ax2.set_ylim(-0.55, 3.2)
ax2.set_xlabel("自变量 x")
ax2.set_ylabel("函数值 f(x)")
ax2.set_title(r"凸函数反例:$f(x)=x^2$ 不满足拟凹性", fontsize=9.5)
ax2.set_xticks([-1, 0, 1])
ax2.set_xticklabels([r"$x=-1$", r"中点 $0$", r"$y=1$"])
ax2.set_yticks([0, 1])
ax2.set_yticklabels([r"$f(0)=0$", r"$\min\{f(x),f(y)\}=1$"])
ax2.grid(alpha=0.15)
plt.show()
```
---
## 四、凹函数的单调变换:化为凸函数,依然满足拟凹
现代微观经济学的一大基石是**序数效用论(Ordinal Utility)**:效用数值的绝对大小和边际效用的曲率(即基数意义上的凹凸性)并不具有客观经济可观测性,只有消费束之间的偏好排序才具有实质经济含义。
### 1. 严格单调变换保拟凹性
设函数 $u: X \to \mathbb{R}$ 满足拟凹性,$g: \mathbb{R} \to \mathbb{R}$ 是定义在 $u(X)$ 上的**严格单调递增函数**。构造复合函数:
$$
v(x) = g\bigl(u(x)\bigr)
$$
由于严格单调递增函数保序(即 $g(\min\{a, b\}) = \min\{g(a), g(b)\}$),我们有:
$$
v\bigl(\alpha x + (1-\alpha)y\bigr) = g\Bigl(u\bigl(\alpha x + (1-\alpha)y\bigr)\Bigr) \ge g\Bigl(\min\{u(x), u(y)\}\Bigr) = \min\{v(x), v(y)\}
$$
这证明了:**拟凹函数经过任意严格单调递增变换后,依然严格保持拟凹性!**
### 2. 理论经典案例:从凹函数到凸函数的曲率跃迁
我们来看一个经典的理论案例,展示凹函数如何通过单调变换转化为具有凸曲率特征的函数,却依旧严格保持拟凹:
1. **基准凹效用函数**:
$$
u(x_1, x_2) = x_1^{\frac{1}{4}} x_2^{\frac{1}{4}}
$$
此函数各阶偏导满足边际效用递减,其 Hessian 矩阵在严格正象限上负定,是**凹函数(同时也是拟凹函数)**。
- **等高线间距特征**:在二维平面上,若效用每次跳跃相同步长(如从 2.5 到 2.75 再到 3.0),离原点越远,需要增加的消费量就越大,等高线向外逐渐**稀疏**。
2. **施加严格单调递增变换**:
取 $g(t) = t^6$(在 $t > 0$ 上严格单调递增)。
3. **变换后的新效用函数**:
$$
v(x_1, x_2) = g\bigl(u(x_1, x_2)\bigr) = \left(x_1^{\frac{1}{4}} x_2^{\frac{1}{4}}\right)^6 = x_1^{\frac{6}{4}} x_2^{\frac{6}{4}} = x_1^{1.5} x_2^{1.5}
$$
此时,指数和 $1.5 + 1.5 = 3 > 1$,沿射线 $x_1 = x_2 = t$ 的剖面函数为 $v(t, t) = t^3$,二阶导数为正,表现出**递增边际效用**与凸函数的几何特性。
- **等高线间距特征**:效用等差增加时,离原点越远,跨入下一条无差异曲线所需的消费增量反而越小,等高线向外逐渐**密集**。
- **上轮廓集完全不变**:无差异曲线由方程 $x_1^{1.5} x_2^{1.5} = C^6 \iff x_1 x_2 = C^4$ 决定,其几何形状、法向量方向以及上轮廓集 $\operatorname{UCS}(x)$ 与变换前**完全重合**!因此,变换后的函数**依然严格满足拟凹性**。
4. **单变量与两商品标准凸函数拟凹例证**:
对于线性效用 $u = x_1 + x_2$(凹且拟凹),施加单调变换 $g(t) = t^2$(在非负域上单调递增),得到 $v = (x_1 + x_2)^2$。该函数的 Hessian 矩阵为常数矩阵 $\begin{pmatrix} 2 & 2 \\ 2 & 2 \end{pmatrix}$,特征值为 $4$ 和 $0$,在整个非负象限半正定,是标准的**凸函数**;但由于它是严格单调变换,其上轮廓集 $\operatorname{UCS}(x)$ 依然是凸集,因此它**同时是凸函数与拟凹函数**。
下方的交互实验可动态观察这一结论:你可以切换不同的效用函数形式,拖动混合权重 $\alpha$,直观检验连接 $A, B$ 两点的线段是否始终落在上轮廓集内:
```{ojs}
//| echo: false
viewof pref = Inputs.select(["x1*x2", "x1+x2", "x1^2+x2^2"], {
label: "效用函数类型", value: "x1*x2"
})
viewof alpha = Inputs.range([0, 1], {
label: "混合权重 α", value: 0.5, step: 0.01
})
prefData = {
const A = [2, 8], B = [8, 2];
let utility, curve;
if (pref === "x1*x2") {
utility = (x, y) => x * y;
curve = Array.from({length: 801}, (_, i) => {
const x = 1.6 + 8.4 * i / 800;
return [x, 16 / x];
});
} else if (pref === "x1+x2") {
utility = (x, y) => x + y;
curve = [[0, 10], [10, 0]];
} else {
utility = (x, y) => x * x + y * y;
curve = Array.from({length: 801}, (_, i) => {
const angle = Math.PI * i / 1600;
return [Math.sqrt(68) * Math.sin(angle), Math.sqrt(68) * Math.cos(angle)];
});
curve[0] = [0, Math.sqrt(68)];
curve[800] = [Math.sqrt(68), 0];
}
const shade = pref === "x1^2+x2^2" ? [...curve, [10, 0]] : curve;
const C = [alpha * 2 + (1 - alpha) * 8, alpha * 8 + (1 - alpha) * 2];
const level = utility(...A), value = utility(...C);
return {A, B, C, curve, shade, level, value, inside: value >= level - 1e-10};
}
html`<p>基准点效用:u(A) = u(B) = ${prefData.level};混合点 C = (${prefData.C[0].toFixed(2)}, ${prefData.C[1].toFixed(2)}),其效用 u(C) = ${prefData.value.toFixed(2)}:<strong>${prefData.inside ? "✓ 混合点落在上轮廓集内部(满足拟凹)" : "✗ 混合点跌出上轮廓集(非拟凹)"}</strong>。</p>`
Plot.plot({
width: Math.min(width, 620), height: Math.min(width, 620),
marginLeft: 45, marginBottom: 45, marginTop: 25, marginRight: 25,
x: {domain: [0, 10], label: "x₁", ticks: 5},
y: {domain: [0, 10], label: "x₂", ticks: 5}, grid: true,
marks: [
Plot.areaY(prefData.shade, {x: d => d[0], y1: d => d[1], y2: 10,
fill: "#bae6fd", fillOpacity: 0.6, clip: true}),
Plot.line(prefData.curve, {x: d => d[0], y: d => d[1], stroke: "#2563eb", clip: true}),
Plot.line([prefData.A, prefData.B], {x: d => d[0], y: d => d[1],
stroke: "#64748b", strokeDasharray: "4 4"}),
Plot.dot([prefData.A, prefData.B], {x: d => d[0], y: d => d[1], r: 5}),
Plot.text([{x: 2, y: 8, label: "A"}, {x: 8, y: 2, label: "B"}],
{x: "x", y: "y", text: "label", dy: -14}),
Plot.dot([prefData.C], {x: d => d[0], y: d => d[1], r: 6,
fill: prefData.inside ? "#15803d" : "#dc2626", stroke: "white"}),
Plot.text([prefData.C], {x: d => d[0], y: d => d[1], text: () => "C", dy: 16})
]
})
```
---
## 五、核心结论速查
| 概念维度 | 凹函数(Concave) | 拟凹函数(Quasiconcave) | 凸函数(Convex) |
| :--- | :--- | :--- | :--- |
| **代数不等式** | $f(z) \ge \alpha f(x) + (1-\alpha)f(y)$ | $f(z) \ge \min\{f(x), f(y)\}$ | $f(z) \le \alpha f(x) + (1-\alpha)f(y)$ |
| **几何直观** | 割线全在函数图像下方 | 上轮廓集为凸集 | 割线全在函数图像上方 |
| **蕴含关系** | **必然蕴含拟凹**(更强条件) | 由凹函数或凸偏好导出 | **不保证拟凹**(反例常跌破最小值) |
| **单调递增变换** | 不保证保持凹性(可变为凸函数) | **严格保持拟凹性**(序数不变性) | 不保证保持凸性 |
| **微观理论地位** | 属于过强的基数性质假定 | **描述凸偏好的充分必要工具** | 单独存在无法保证凸偏好 |
::: {.callout-tip}
### 为什么现代微观理论只要求“拟凹性”?
正如现代微观理论所总结:$u(x_1, x_2) = x_1^{1/4}x_2^{1/4}$(凹函数)与 $v(x_1, x_2) = x_1^{6/4}x_2^{6/4}$(包含凸曲率特征)代表**完全相同的偏好关系**。一个反映递减边际效用,另一个反映递增边际效用,但消费者的选择行为由无差异曲线与上轮廓集完全决定。因此,微观理论放弃对效用函数凹凸性(基数属性)的要求,而**只要求效用函数满足拟凹性(序数属性)**。
:::
---
::: {.ai-entry .callout}
### 🤖 AI 助教「乐高」
在理解偏好凸性、上轮廓集或效用函数拟凹性时有疑问?可以直接向 AI 助教「乐高」提问,例如:
* 为什么微观经济学中强调“凸偏好”却要求效用函数是“拟凹”而不是“拟凸”?
* 请给出一个虽然是凸函数但在特定区间内依然满足拟凹性的具体单变量函数反例。
* 拟凹效用函数的加边海塞矩阵(Bordered Hessian)满足怎样的二阶条件?
<div class="ai-tutor-mount"></div>
<noscript>启用 JavaScript 后可与 AI 助教「乐高」对话。</noscript>
:::