|
接上回。虽然动态最优化可以从已知的初始值开始,算出下一期、下下期直至无穷期的最优消费量(即从头推导出一整条最优消费路径)。但通常为了简化分析,我们用不着从头开始算,只需解出本期的状态变量(比如本期的资本存量 k_t )与本期的控制变量(本期消费 c_t )之间的关系就可以来描述整条控制变量的时间路径。
允许这样简化分析的前提是一些决定最优化解的参数(比如每一期的子效用函数 u(c_t) 、贴现因子 \beta 、生产函数等)是保持不变的,不会随着时间的流逝而变化。
如果说一般的解法相当于求数列的“通项公式”,那么递归解法就相当于在求“递推公式”。这种“通项公式”就是「值函数」,而“递推公式”就是「贝尔曼方程」(Bellman equation)。
一、状态变量和控制变量
在第 t 时期,「状态变量」 x_t 是已经决定好的变量(由过去的行为或初始条件等因素决定),它构成了第 t 时期「控制变量」的选择背景,影响由个体行为控制的「控制变量」。
而第 t 时期的「控制变量」 y_t 是指在 t 时期时,个体为了最大化某种因变量而选择的自变量,它受到当前「状态变量」的影响。
比如每个月父母只会给你打1000元生活费,你可以用1000元购买不同的消费品。这笔无法更改的1000元生活费就是每一期(每个月)的「状态变量」,而在这笔收入(状态变量)下对每种商品的消费量就构成了每一期的「控制变量」。很显然,这笔“1000元”生活费还不能满足你购买一台游戏本或显卡。当然,你也可以选择节省本月开销,存下来的钱又与“下个月打来的1000元生活费”一起构成了下一期的「状态变量」,因而“状态变量会受到过去行为的影响”。如果你节省得多,就能买到更好的游戏本(改善控制变量)。 把状态变量表示成控制变量的函数,这种函数称为「政策函数」(policy function),它反应了消费者在不同状态背景下的选择策略,因而有个更好的译名:「策略函数」,它是贝尔曼方程的解。
一切DSGE模型求解的目标就是找到政策函数。
二、调整控制变量
控制变量的不同将直接影响求解政策函数的难度。将作为控制变量的当前消费 c_t 改成下一期资本存量 k_{t+1} 将简化求解。
消费者每一期的产出 y_t 可以用在消费 c_t 和储蓄(投资) i_t 两部分上,即 y_t=f(k_t)=c_t+i_t ;
下一期资本存量 k_{t+1} ,由扣除折旧后的本期残余资本存量 (1-\delta)k_t 和本期的投资 i_t 两者构成,即 k_{t+1}=(1-\delta)k_t+i_t ;
消费者可以直接选择 c_t 作为控制变量,从而决定下一期资本存量 k_{t+1} 。但倒过来也可以通过下期资本存量 k_{t+1} 确定本期消费 c_t ,因而我们选择把 c_t 写作 k_{t+1} 的函数。上面两个公式联立构成了本期消费 c_t 的预算约束(注意 k_t 是已知的状态变量): c_t=f(k_t)+(1-\delta)k_t-k_{t+1}\\要求解最大化的目标也就成了: max \ \sum_{t=0}^{\infty}{\beta^t}U[f(k_t)+(1-\delta)k_t-k_{t+1}] \\这样一来控制变量就不再是当期的消费,而是转换成了下一期的资本存量 k_{t+1} 。相对地,状态变量就是本期的资本存量 k_t 。
三、列出贝尔曼方程
完全从给定的初期状态变量(资本存量 k_0 )推导出最优增长路径 k_t 从而求解出的最值(总效用 V(k_0) ),其与初期状态变量的关系被称为「值函数」。
V(k_0)=\mathop{max}\limits_{\{k_s\}_{s=1}^{\infty}} \ \sum_{t=0}^{\infty}{\beta^t}U[f(k_t)+(1-\delta)k_t-k_{t+1}] \\max下的下标 s 从1开始是因为,作为状态变量的初始资本存量 k_0 已给定,所以求解最优化只能调整 k_1 、 k_2 、...、 k_\infty 。
同样,在第1期的值函数 V(k_1) 即: V(k_1)=\mathop{max}\limits_{\{k_s\}_{s=2}^{\infty}} \ \sum_{t=1}^{\infty}{\beta^t}U[f(k_t)+(1-\delta)k_t-k_{t+1}] \\可以发现 V(k_1) 已经包含在 V(k_0) 中了,就是 V(k_0) 里除了初期以外的之后所有项。因而我们可以把 V(k_1) 写进 V(k_0) : V(k_0)=\mathop{max}\limits_{k_1} \{U[f(k_0)+(1-\delta)k_0-k_{1}]+\beta V(k_1)\} \ \ ①\\ 这种递归形式即「贝尔曼方程」。
四、求解
为了求出最终的「政策函数」,需要将贝尔曼方程①中max的部分对控制变量 k_1 求导可得一阶条件: -u'[f(k_0)-k_{1}+(1-\delta)k_0]+\beta V'(k_{1})=0 \ \ ②\\
式子中存在一个未知的导函数 V'(k_1) ,可现在连原函数 V(\ \cdot\ ) (注意是不含max符号的 V(\ \cdot\ ) )都未知,上哪求呢?我们希望绕过原函数直接得到导函数。利用“Benveniste Scheinkman 包络定理”知导函数可通过贝尔曼方程中的值函数对状态变量 k_0 求导得到: V'(k_0)=U'[f(k_0)+(1-\delta)k_0-k_{1}][f'(k_0)+(1-\delta)] \\结果就排除了 V'(k_1) 。将 V'(k_0) 后移一项变成 V'(k_1) ,再把每一期加上t(就是把原来的“初期”从0改成t,因而 k_1 就成了 k_{t+1} ),再带入一阶条件②中,就得到了欧拉方程: \beta \frac {U'(c_{t+1})}{U'(c_{t})}[F'(k_{t+1})+(1-\delta)]=1 \ \ ③\\
附录:Benveniste Scheinkman 包络定理的使用条件[1]
x_t 是一堆状态变量,为了简化分析,我们直接设 y_t=x_{t+1} 作为一堆控制变量,而 F(x_t,y_t) 为每一期需要最大化的目标函数值(在上文例子中即单期效用函数 U(\ \cdot \ ) )。那么就具有以下贝尔曼方程的形式:
V(x_t)=\mathop{max}\limits_{y_t} [F(x_t,y_t)+\beta V(x_{t+1})]\\
下一期的状态变量 x_{t+1} 满足预算约束:
x_{t+1}=G(x_t,y_t)\\ 那么Benveniste Scheinkman 包络定理的使用条件需要保证:
- x_t\in X , y_t\in Y,其中 X 和 Y 是两个内部非空的凸集
- F(\ \cdot\ ,\ \cdot\ ) 和 G(\ \cdot\ ,\ \cdot\ ) 都是凹且可微的,并且 G(\ \cdot\ ,\ \cdot\ ) 还要关于 y_t 可逆。
参考
- ^乔治·麦坎德利斯《RBC之ABC:动态宏观经济模型入门》
|
|