前置条件与学习依赖 / PREREQUISITES
数学 / 统计基础本科微积分、一阶条件求解、稳态递归方程迭代;不需要随机过程。
经济学理论前置中级宏观(Solow 模型、家庭跨期储蓄决策);读过 RBC 基准模型 的 Euler 方程部分即可。
软件 / 计算前置Python(numpy + scipy.optimize);本页不用 Dynare,纯递归求解。
站内前置页面09 RBC(理解永生家庭储蓄决策);OLG 与其核心区别在于"世代有限寿命"。
难度与路线位置进阶入门级完整页。两期 OLG 直觉清晰、方程可手推;多期/随机 OLG 属前沿。建议在读完 NK 三方程后作为"人口/财政方向"的扩展选修。

01 为什么需要 OLG:与永生代表性家庭的根本区别

前面 RBC / NK 模型用的都是永生代表性家庭(Representative Agent, RA):同一个消费者从 $t=0$ 活到永远,在任意时刻都面对同一组跨期套利条件。这个假设在研究"人口结构"时立刻失效——一个 25 岁的中国年轻人和一个 65 岁刚退休的老人,对储蓄、利率、养老金的反应完全不同,他们不可能是"同一个永生家庭"。

OLG(Overlapping Generations)模型换了一套人口结构:每个人生存两期(年轻 + 老年),任意时刻总有两代人同时活着。年轻时工作、储蓄;年老时花掉一生储蓄。新世代不断出生、老世代不断老去死亡。这套结构有三个 RA 模型给不出的核心结论:

  • 无套利的利率不一定等于时间偏好:资本积累由"年轻人今天存多少"决定,而不是由一个永生家庭的 Euler 方程决定,因此经济可能动态无效率(dynamically inefficient)——资本过度积累,利率低于人口增长率。
  • 代际转移有实际作用:现收现付(pay-as-you-go)养老金、公共债务、遗产税,都是在"现在的年轻人"和"现在的老年人"之间转移资源,RA 模型里不存在这种跨代再分配。
  • 政策不能只看稳态:改变养老金规则会让"已经老了的人"和"还没出生的人"受到不同影响,必须做转轨路径(transition path)分析,而不是直接比较两个稳态。
一句话定位

RA 模型回答"同一个人随时间怎么动";OLG 模型回答"不同年龄的人在同一时间怎么共存、跨代怎么转移"。研究老龄化、社保改革、国债可持续性,必须用 OLG。

02 模型假设逐条陈述

本页用最经典的 Diamond (1965) 两期 OLG。假设逐条列出,每一条都会在后文反复使用:

  • 人口结构:第 $t$ 期有 $N_t$ 个年轻人出生,人口以增长率 $n$ 增长,即 $N_{t+1}=(1+n)N_t$。每个人只活两期。
  • 效用:年轻人在年轻期消费 $c_{1t}$、老年期消费 $c_{2t+1}$,效用为贴现的对数效用 $$U_t = \log c_{1t} + \beta \log c_{2t+1}$$ $\beta\in(0,1)$ 为主观贴现因子。用对数效用是为了储蓄函数有解析形式,便于手推。
  • 年轻期收入:年轻人无弹性地供给 1 单位劳动,获得工资 $w_t$;他把收入用于年轻时消费 $c_{1t}$ 和储蓄 $s_t$。
  • 老年期消费:老年人把一生储蓄本息全部花掉,面对储蓄的总回报率 $r_{t+1}$(毛利率 $1+r_{t+1}$)。
  • 生产:代表性厂商用资本 $K_t$ 和劳动 $L_t=N_t$,CRS 技术 $Y_t=F(K_t,L_t)$,资本一期后完全折旧 $\delta=1$(教学简化;推广到 $\delta\in(0,1]$ 是常规练习)。要素市场完全竞争,工资与租金等于边际产出。
  • 资本市场出清:第 $t+1$ 期的资本 $K_{t+1}$,全部来自第 $t$ 期年轻人的储蓄 $N_t s_t$。老年人在第 $t$ 期把资本卖给厂商。
为什么资本一期后全折旧?

$\delta=1$ 让稳态差分方程简洁可手推。若取 $\delta<1$,只需把"年轻人储蓄 = 下一期资本"改成 $K_{t+1}=(1-\delta)K_t+I_t$,推导完全平行。本页代码不做此简化,直接用 $\delta<1$ 的一般式。

03 家庭优化:年轻储蓄与老年消费

年轻人在第 $t$ 期面对两期预算约束。年轻时:

Equation 1 — 年轻期预算约束
$$c_{1t} + s_t = w_t$$

年老时,他把储蓄的本息全部用于消费:

Equation 2 — 老年期预算约束
$$c_{2t+1} = (1+r_{t+1})\, s_t$$

把两期约束合并成一生预算约束 $c_{1t} + \dfrac{c_{2t+1}}{1+r_{t+1}} = w_t$,最大化 $U_t=\log c_{1t}+\beta\log c_{2t+1}$。代入后对 $c_{1t}$ 求一阶条件(或对 $s_t$ 求导):

Equation 3 — 年轻期消费的一阶条件
$$\frac{1}{c_{1t}} = \beta\,\frac{1}{c_{2t+1}}(1+r_{t+1}) \;\Longleftrightarrow\; c_{2t+1}=\beta(1+r_{t+1})c_{1t}$$

把 $c_{1t}=w_t-s_t$、$c_{2t+1}=(1+r_{t+1})s_t$ 代入,解出储蓄:

Equation 4 — 储蓄函数(对数效用下的漂亮结果)
$$s_t = \frac{\beta}{1+\beta}\, w_t$$

解读:在对数效用下,储蓄率恰好等于 $\beta/(1+\beta)$,与利率 $r_{t+1}$ 无关(收入效应与替代效应恰好抵消)。这是对数效用的便利之处——储蓄决策独立于预期利率,让资本积累方程退化成一个关于 $w_t$ 的简单差分方程。若换 CRRA 效用 $u(c)=c^{1-\sigma}/(1-\sigma)$,$s_t$ 会依赖 $r_{t+1}$,需联立求解。

04 厂商与资本市场出清

厂商用 CRS 生产函数 $Y_t=K_t^\alpha L_t^{1-\alpha}$(柯布-道格拉斯,$\alpha$ 为资本份额)。完全竞争下,要素报酬等于边际产出。记人均(每年轻工人)资本 $k_t=K_t/N_t$:

Equation 5 — 工资与利率(人均形式)
$$w_t = (1-\alpha) k_t^\alpha, \qquad r_t = \alpha k_t^{\alpha-1}$$

资本市场出清是 OLG 的核心方程:第 $t+1$ 期的资本存量 $K_{t+1}$ 等于第 $t$ 期年轻人的总储蓄。用人均形式、考虑人口增长 $N_{t+1}=(1+n)N_t$:

Equation 6 — 资本积累核心差分方程
$$K_{t+1}=N_t s_t \;\Longleftrightarrow\; (1+n)k_{t+1}=s_t=\frac{\beta}{1+\beta}w_t=\frac{\beta}{1+\beta}(1-\alpha)k_t^\alpha$$

于是人均资本的运动规律闭合为一个一维自治差分方程:

Equation 7 — OLG 动态方程
$$k_{t+1} = \frac{\beta(1-\alpha)}{(1+\beta)(1+n)}\, k_t^\alpha \;\equiv\; g(k_t)$$

解读:这就是 OLG 的"Solow 式"差分方程,但储蓄率 $s=\beta(1-\alpha)/[(1+\beta)(1+n)]$ 来自微观家庭最优化,而不是像 Solow 那样外生给定。给定初始 $k_0$,方程 7 唯一决定整条转轨路径。

05 稳态:资本积累差分方程与黄金律

稳态满足 $k_{t+1}=k_t=k^*$。代入方程 7($\delta=1$ 的教学式):

Equation 8 — 稳态人均资本
$$k^* = \left[\frac{\beta(1-\alpha)}{(1+\beta)(1+n)}\right]^{1/(1-\alpha)}$$

稳态利率 $r^*=\alpha(k^*)^{\alpha-1}$。关键的动态效率判据:比较稳态利率 $r^*$ 与人口增长率 $n$。黄金律资本水平满足 $r_{gold}=n$(资本的边际产出恰好补偿人口增长)。

  • 若 $r^* > n$:资本不足(动态有效),减少储蓄可让每代人都更好。
  • 若 $r^* < n$:资本过度积累(动态无效率)——多存的钱在稳态下得不偿失,此时引入现收现付养老金(年轻人缴税、老年人领钱)可以帕累托改进。这是 Diamond (1965) 的著名结论。
为什么 RA 模型不会动态无效率?

RA 模型里永生家庭的 Euler 方程强制 $r=\rho$(纯时间偏好),资本永远不会过度积累。OLG 里没有这种强制——储蓄率由工资决定,利率可以被推到低于 $n$。这是 OLG 比 RA 丰富的地方,也是研究养老金的理论基础。

06 完整 Python 代码:稳态求解与转轨动态

下面代码实现含 $\delta<1$ 的一般形式:给定参数,(1) 求稳态 $k^*$;(2) 从任意初始 $k_0$ 模拟转轨路径;(3) 检查动态效率 $r^*$ vs $n$。普通笔记本秒级跑完。

Python · Diamond 两期 OLG 稳态与转轨
import numpy as np
from scipy.optimize import brentq

# ---------- 1. 参数校准(季度/年度均可,这里用年度教学值) ----------
alpha = 0.33      # 资本收入份额
beta  = 0.98      # 主观贴现因子(年)
n     = 0.01      # 人口年增长率
delta = 0.05      # 折旧率(这里取 <1 的一般式,教学常用 1)

# ---------- 2. 工资与利率(人均形式) ----------
def wage(k):
    return (1 - alpha) * k**alpha

def rent(k):
    return alpha * k**(alpha - 1)   # 净利率 r = MPK

# ---------- 3. 资本积累差分方程(含折旧的一般式) ----------
# 年轻人储蓄 s = beta/(1+beta) * w;
# 人均资本运动: (1+n) k_{t+1} = s_t + (1-delta) k_t
def k_next(k):
    s_t = beta / (1 + beta) * wage(k)
    return (s_t + (1 - delta) * k) / (1 + n)

# ---------- 4. 求稳态 k*:解 k_next(k*) = k* ----------
def ss_eq(k):
    return k_next(k) - k

# 搜索区间:k 从 1e-6 到 100,找根
k_star = brentq(ss_eq, 1e-6, 100)
r_star = rent(k_star)
w_star = wage(k_star)

print(f"稳态人均资本 k* = {k_star:.4f}")
print(f"稳态利率   r*   = {r_star:.4f}")
print(f"稳态工资   w*   = {w_star:.4f}")
print(f"人口增长率 n    = {n:.4f}")
# 动态效率判据
if r_star > n:
    print(f"动态有效:r*={r_star:.3f} > n={n:.3f},资本不足")
else:
    print(f"动态无效率:r*={r_star:.3f} < n={n:.3f},资本过度积累,可引入养老金帕累托改进")

# ---------- 5. 转轨路径:从初始 k0 模拟 60 期 ----------
T = 60
k_path = np.zeros(T)
k_path[0] = k_star * 0.3   # 从低于稳态的 30% 起步
for t in range(1, T):
    k_path[t] = k_next(k_path[t-1])

print("\n转轨路径前 10 期人均资本:")
for t in range(10):
    print(f"  t={t:2d}: k={k_path[t]:.4f}  r={rent(k_path[t]):.4f}")
跑通后你会看到什么

$k_t$ 从初始低位单调收敛到 $k^*$,$r_t$ 从高位单调下降到 $r^*$。把这个转轨图画出来,就是"资本积累收敛"的标准教学图。把 $\beta$ 调大(更有耐心),$k^*$ 上升、$r^*$ 下降——这就是"储蓄率上升推迟消费"在 OLG 里的版本。

07 应用:现收现付养老金与人口老龄化

OLG 最重要的政策应用是养老金制度设计。设政府对年轻人工资征收比例税 $\tau$,全部转移给当期老年人。第 $t$ 期每个年轻人缴 $\tau w_t$,第 $t$ 期的老年人(共 $N_{t-1}$ 人)从 $N_t$ 个年轻人的缴款中领取养老金。人均(按年轻人计)的养老金收益为:

Equation 9 — 现收现付养老金的回报
$$\text{养老金收益} = (1+n)\,\tau\, w_t, \qquad \text{回报率} = 1+n$$

关键洞察:现收现付养老金的"回报率"是人口增长率 $n$(而非市场利率)。当生育率下降、老龄化加剧,$n$ 下降甚至为负,现收现付体系的回报率暴跌——这正是中国、欧洲、日本养老金压力的 OLG 表述。对比市场利率 $r^*$:

  • 若 $r^* > n$:现收现付不如市场化储蓄,长寿者更愿意"自己存"。
  • 若 $r^* < n$:现收现付在稳态下能提高每代人福利(动态无效率情形)。

中国养老金改革的核心权衡——"现收现付(社会统筹)" vs "完全积累(个人账户)"——正是在 $r^*$ 与 $n$ 的此消彼长之间做选择。Auerbach-Kotlikoff (1987) 的多期 OLG 模型把两期扩展为 55 期(模拟到退休),是定量研究这类改革的标准工具。

08 论文案例

英文经典
An Exact Consumption-Loan Model of Interest with or without the Social Contrivance of Money
Paul A. Samuelson · Journal of Political Economy, 1958, 66(6): 467-482
OLG 模型的开山之作。Samuelson 用一个"人生两期、无耐用资产"的纯交换 OLG,推导出利率由人口/生物利率决定,并首次论证货币(或社保)如何作为"社会契约"解决代际交换。现代货币搜寻、社保经济学都源于此文。
英文经典
National Debt in a Neoclassical Growth Model
Peter A. Diamond · American Economic Review, 1965, 55(5): 1126-1150
在 Samuelson 纯交换 OLG 中加入生产与资本积累,得到本页讲的 Diamond 模型。首次系统论证了"动态无效率"与公共债务的实际作用——发债可以把过度积累的资本挤出。是本页所有推导的原始出处。
英文经典
Dynamic Fiscal Policy
Alan J. Auerbach & Laurence J. Kotlikoff · Cambridge University Press, 1987
把两期 OLG 扩展为 55 期(工作到退休)的可计算一般均衡模型(OLG-CGE),定量分析税收、社保、国债的代际分配。是现代财政政策、养老金改革定量评估的标准框架,也是多期 OLG 求解的教科书。
中文应用
中国养老金改革、延迟退休与人口结构的 OLG 定量研究
见《经济研究》《世界经济》《经济学(季刊)》上关于中国养老保险制度并轨、延迟退休年龄、个人账户改革的一系列 OLG 数值模拟论文
国内学者用 Auerbach-Kotlikoff 式多期 OLG,校准到中国生育率下降与预期寿命延长,模拟现收现付/完全积累不同组合下的稳态福利与转轨成本。数据多用《中国统计年鉴》人口结构、人社部养老金收支、CFPS/CHARLS 微观退休行为。是中文读者最贴近中国现实的 OLG 应用。

09 常见错误与进阶资料

错误 1:把 OLG 当成"另一个 RBC"

OLG 的核心不是"加个冲击",而是人口结构。若你只是在 RBC 里加"变老"却保留永生 Euler 方程,就丢失了 OLG 的全部含义。关键方程是 Equation 6 的资本市场出清(储蓄 = 下一期资本),不是 $r=\rho$。

错误 2:忽略人口增长率 $n$ 对人均资本的影响

很多学生只写 $K_{t+1}=N_t s_t$ 却忘记除以 $N_{t+1}=(1+n)N_t$,得到 $k_{t+1}=s_t$ 而非 $k_{t+1}=s_t/(1+n)$。这会让稳态资本系统性偏高、利率偏低。人均化时一定要把人口增长放进去。

错误 3:只比稳态、不做转轨路径

养老金改革的福利结论高度依赖转轨:改革当期的老年人拿不到好处、却要承担成本。直接比较改革前后两个稳态的福利,会高估改革收益。OLG 政策分析必须解完整转轨路径(本页代码第 5 步就是在做这件事)。

错误 4:把"动态无效率"当成永远存在

Diamond 模型可能动态无效率,但参数校准到美国/中国数据后,$r^*$ 通常高于 $n$(资本不足)。不要一上来就假设"现收现付一定帕累托改进"——先算 $r^*$ vs $n$,再下结论。

错误 5:对数效用下忘记储蓄率与利率无关

Equation 4 的 $s_t=\beta w_t/(1+\beta)$ 是对数效用的特殊结果。换成 CRRA 就不成立。写代码或推导时,不要把"储蓄与利率无关"当成普遍结论。

进阶资料

  • Diamond (1965) 原文(本页推导出处);Blanchard & Fischer, Lectures on Macroeconomics 第 3 章是 OLG 的标准教材式处理。
  • Auerbach-Kotlikoff (1987) 多期 OLG 数值实现;官网/RePEc 有 Fortran/Stata 复现代码,Python 可用 scipy.optimize 自写。
  • 与本站其他分支的衔接:OLG 的稳态求解见 03 稳态求解;随机 OLG 与估计见 06 贝叶斯估计