diff --git a/lectures/ifp.md b/lectures/ifp.md index d8c87d0..d2eec63 100644 --- a/lectures/ifp.md +++ b/lectures/ifp.md @@ -9,15 +9,8 @@ kernelspec: name: python3 --- -```{raw} jupyter -
- - QuantEcon - -
-``` -# {index}`收入波动问题 I:基本模型 ` +# 收入波动问题 I:基本模型 ```{contents} 目录 :depth: 2 @@ -34,23 +27,22 @@ tags: [hide-output] ## 概述 -在本讲中,我们研究一个无限生命期消费者的最优储蓄问题——即{cite}`Ljungqvist2012`第1.3节中描述的"共同祖先"。 - -这是许多代表性宏观经济模型的重要子问题 +在本讲中,我们研究一个无限期存活的消费者的最优储蓄问题——即{cite}`Ljungqvist2012`第1.3节中描述的“共同祖先”。 +这是许多代表性宏观经济模型的重要子问题。这些宏观模型包括 * {cite}`Aiyagari1994` * {cite}`Huggett1993` * 等等 -它与{doc}`随机最优增长模型 `中的决策问题相关,但在重要方面有所不同。 +它与{doc}`随机最优增长模型 `中的决策问题相关,但在一些重要方面有所不同。 -例如,个体的选择问题包含一个加性收入项,这导致了一个偶尔会出现的约束条件。 +例如,代理人的选择问题包含一个附加收入项,这会导致一个偶尔起约束作用的约束条件。 此外,在本讲及后续讲座中,我们将引入更多现实的特征,如相关性冲击。 -为了求解该模型,我们将使用基于欧拉方程的时间迭代法,这在我们研究{doc}`随机最优增长模型 `时被证明是{doc}`快速且准确的 `。 +为了求解该模型,我们将使用基于欧拉方程的时间迭代法。这一方法在我们研究{doc}`随机最优增长模型 `时被证明是{doc}`快速且准确的 `。 -在温和的假设条件下,时间迭代在全局范围内是收敛的,即使效用是无界的(上下都无界)。 +在较弱的假设下,时间迭代是全局收敛的,即使效用函数是无界的(无论向上还是向下)。 我们需要以下导入: @@ -83,9 +75,9 @@ from quantecon import MarkovChain 让我们先写下模型,然后讨论如何求解。 -### 设置 +### 建模 -考虑一个家庭,选择状态相关的消费计划$\{c_t\}_{t \geq 0}$以最大化 +考虑一个家庭,它选择一个依赖于状态的消费计划 $\{c_t\}_{t \geq 0}$ 来最大化 $$ \mathbb{E} \, \sum_{t=0}^{\infty} \beta^t u(c_t) @@ -104,46 +96,39 @@ a_{t+1} \leq R(a_t - c_t) + Y_{t+1}, 这里 -* $\beta \in (0,1)$是贴现因子 -* $a_t$是t时期的资产持有量,借贷约束为$a_t \geq 0$ -* $c_t$是消费 -* $Y_t$是非资本收入(工资、失业补偿等) -* $R := 1 + r$,其中$r > 0$是储蓄利率 +* $\beta \in (0,1)$ 是折现因子 +* $a_t$ 是 $t$ 时期的资产存量,借贷约束为$a_t \geq 0$ +* $c_t$ 是消费 +* $Y_t$ 是非资本收入(工资、失业补偿等) +* $R := 1 + r$,其中 $r > 0$ 是储蓄利率 -时间安排如下: +时序安排如下: -1. 在第 $t$ 期开始时,家庭选择消费 - $c_t$。 -1. 家庭在整个期间提供劳动,并在第 $t$ 期末收到劳动收入 - $Y_{t+1}$。 -1. 金融收入 $R(a_t - c_t)$ 在第 $t$ 期末收到。 +1. 在时期 $t$ 开始时,家庭选择消费 $c_t$。 +1. 家庭在整个时期提供劳动,并在时期 $t$ 结束时收到劳动收入 $Y_{t+1}$。 +1. 金融收入 $R(a_t - c_t)$ 在时期 $t$ 结束时收到。 1. 时间转移到 $t+1$ 并重复此过程。 -非资本收入 $Y_t$ 由 $Y_t = y(Z_t)$ 给出,其中 -$\{Z_t\}$ 是一个外生状态过程。 +非资本收入 $Y_t$ 由 $Y_t = y(Z_t)$ 给出,其中 $\{Z_t\}$ 是一个外生状态过程。 -按照文献中的常见做法,我们将 $\{Z_t\}$ 视为一个有限状态 -马尔可夫链,取值于 $\mathsf Z$,具有马尔可夫矩阵 $P$。 +按照文献中的常见做法,我们将 $\{Z_t\}$ 视为一个有限状态马尔可夫链,其取值在 $\mathbb{Z}$ 中,对应的马尔可夫转移矩阵为 $P$。 我们进一步假设 1. $\beta R < 1$ -1. $u$ 是光滑的、严格递增和严格凹的,且 $\lim_{c \to 0} u'(c) = \infty$ 和 $\lim_{c \to \infty} u'(c) = 0$ - -资产空间是 $\mathbb R_+$,状态是对 $(a,z) -\in \mathsf S := \mathbb R_+ \times \mathsf Z$。 +1. $u$ 是光滑的、严格递增和严格凹的,且满足 $\lim_{c \to 0} u'(c) = \infty$ 和 $\lim_{c \to \infty} u'(c) = 0$ -从 $(a,z) \in \mathsf S$ 开始的*可行消费路径*是一个消费 +资产空间是 $\mathbb R_+$,状态是 $(a,z) \in \mathsf S := \mathbb R_+ \times \mathsf Z$。 -序列 $\{c_t\}$ 满足 $\{c_t\}$ 及其导出的资产路径 $\{a_t\}$ 需要: +从 $(a,z) \in \mathsf S$ 出发的*可行消费路径*是一个消费序列 $\{c_t\}$, 使得 $\{c_t\}$ 及其诱导的资产路径 $\{a_t\}$ 满足: 1. $(a_0, z_0) = (a, z)$ -1. 满足{eq}`eqst`中的可行性约束,以及 -1. 可测性,即 $c_t$ 是直到时间 $t$ 的随机结果的函数,而不是之后的。 +1. 可行性约束{eq}`eqst`,以及 +1. 可测性,即 $c_t$ 是截至时期 $t$ 的随机结果的函数,而不是时期 $t$ 之后的结果的函数。 -第三点的含义仅仅是时间 $t$ 的消费不能是尚未观察到的结果的函数。 +第三点的含义是:时期 $t$ 的消费不能依赖尚未被观测到的结果。 -事实上,对于这个问题,可以通过仅让消费依赖于当前状态来实现最优选择。 +事实上,在这个问题中,消费的最优选择可以通过仅依赖当前状态来实现。 最优性定义如下。 @@ -160,11 +145,11 @@ V(a, z) := \max \, \mathbb{E} \right\} ``` -其中最大化是针对从$(a,z)$出发的所有可行消费路径。 +其中最大化是在所有从 $(a,z)$ 出发的可行消费路径上进行的。 -从$(a,z)$出发的*最优消费路径*是从$(a,z)$出发的可行消费路径中实现{eq}`eqvf`中上确界的路径。 +一个从 $(a,z)$ 出发的*最优消费路径*是一个从 $(a,z)$ 出发的可行消费路径,且这个路径达到了{eq}`eqvf`中的上确界。 -为了确定这些路径,我们可以使用欧拉方程的一个版本,在当前设定中为 +为了刻画这样的路径,我们可以使用欧拉方程的一个版本,在当前设定中为 ```{math} :label: ee00 @@ -183,13 +168,13 @@ c_t < a_t u' (c_t) = \beta R \, \mathbb{E}_t u'(c_{t+1}) ``` -当 $c_t = a_t$ 时,我们显然有 $u'(c_t) = u'(a_t)$, +当 $c_t = a_t$ 时,显然有 $u'(c_t) = u'(a_t)$, -当 $c_t$ 达到上界 $a_t$ 时,严格不等式 $u' (c_t) > \beta R \, \mathbb{E}_t u'(c_{t+1})$ 可能出现,因为 $c_t$ 无法充分增加以达到等式。 +当 $c_t$ 达到上界 $a_t$ 时,严格不等式 $u' (c_t) > \beta R \, \mathbb{E}_t u'(c_{t+1})$ 可能出现,因为 $c_t$ 无法再增加以达到等式 (最优解中永远不会出现下界情况 $c_t = 0$,因为 $u'(0) = \infty$。) -经过一些思考,可以证明 {eq}`ee00` 和 {eq}`ee01` 等价于 +稍加思考可以表明,可以证明 {eq}`ee00` 和 {eq}`ee01` 等价于 ```{math} :label: eqeul0 @@ -202,19 +187,19 @@ u' (c_t) ### 最优性结果 -如 {cite}`ma2020income` 所示, +正如 {cite}`ma2020income` 所示, 1. 对于每个 $(a,z) \in \mathsf S$,从 $(a,z)$ 出发存在唯一的最优消费路径 -1. 这条路径是从$(a,z)$出发的唯一可行路径,它满足欧拉等式{eq}`eqeul0`和横截条件 - +1. 这条路径是从 $(a,z)$ 出发的、满足欧拉等式{eq}`eqeul0`和横截条件 ```{math} :label: eqtv \lim_{t \to \infty} \beta^t \, \mathbb{E} \, [ u'(c_t) a_{t+1} ] = 0 ``` +的唯一可行路径。 -此外,存在一个*最优消费函数*$\sigma^* \colon \mathsf S \to \mathbb R_+$,使得从$(a,z)$生成的路径 +此外,存在一个*最优消费函数* $\sigma^* \colon \mathsf S \to \mathbb R_+$,使得从 $(a,z)$ 出发的路径 $$ (a_0, z_0) = (a, z), @@ -224,30 +209,24 @@ c_t = \sigma^*(a_t, Z_t) a_{t+1} = R (a_t - c_t) + Y_{t+1} $$ -同时满足{eq}`eqeul0`和{eq}`eqtv`,因此是从$(a,z)$出发的唯一最优路径。 +同时满足{eq}`eqeul0`和{eq}`eqtv`,因此是从 $(a,z)$ 出发的唯一最优路径。 -因此,为了解决这个优化问题,我们需要计算策略$\sigma^*$。 +因此,为了解决这个优化问题,我们需要计算策略 $\sigma^*$。 -(ifp_computation)= ## 计算 -```{index} single: Optimal Savings; Computation -``` - -计算$\sigma^*$有两种标准方法 +计算 $\sigma^*$ 有两种标准方法 1. 使用欧拉等式的时间迭代法 1. 值函数迭代法 -我们对蛋糕食用问题和随机最优增长的研究 - -模型表明时间迭代将更快且更准确。 +我们对吃蛋糕问题和随机最优增长模型的研究表明,时间迭代会更快且更精确。 -这就是我们下面要采用的方法。 +这是我们在下文所采用的方法。 ### 时间迭代 -我们可以重写{eq}`eqeul0`,使其成为关于函数而不是随机变量的表述。 +我们可以将{eq}`eqeul0`改写为一个关于函数而非随机变量的表达式。 具体来说,考虑函数方程 @@ -266,12 +245,12 @@ $$ 其中 * $(u' \circ \sigma)(s) := u'(\sigma(s))$ -* $\mathbb E_z$表示基于当前状态$z$的条件期望,$\hat X$表示随机变量$X$的下一期值 -* $\sigma$是未知函数 +* $\mathbb E_z$ 表示基于当前状态$z$的条件期望,$\hat X$表示随机变量 $X$ 的下一期值 +* $\sigma$ 是未知函数 -我们需要为最优消费政策选择一个合适的候选解类别。 +我们需要为最优消费策略选择一个合适的候选解类别。 -选择这样一个类别的正确方法是考虑解可能具有什么性质,以便限制搜索空间并确保迭代表现良好。 +正确的做法是考虑解应当具备哪些性质,从而限制搜索空间并确保迭代表现良好。 为此,令 $\mathscr C$ 为连续函数 $\sigma \colon \mathbf S \to \mathbb R$ 的空间,其中 $\sigma$ 对第一个参数是递增的,对所有 $(a,z) \in \mathbf S$ 都有 $0 < \sigma(a,z) \leq a$,且 @@ -282,11 +261,11 @@ $$ \left| (u' \circ \sigma)(a,z) - u'(a) \right| < \infty ``` -这将是我们的候选类。 +这将作为我们的候选解类。 此外,令 $K \colon \mathscr{C} \to \mathscr{C}$ 定义如下。 -对给定的 $\sigma \in \mathscr{C}$,$K \sigma (a,z)$ 是解决以下方程的唯一 $c \in [0, a]$: +给定 $\sigma \in \mathscr{C}$,值 $K\sigma(a,z)$ 是唯一的 $c \in [0,a]$,使其满足: ```{math} :label: eqsifc @@ -300,17 +279,17 @@ u'(c) \right\} ``` -我们将 $K$ 称为 Coleman--Reffett 算子。 +我们称 $K$ 为 Coleman–Reffett 算子。 -构造算子 $K$ 的目的是使得 $K$ 的不动点与泛函方程 {eq}`eqeul1` 的解重合。 +算子 $K$ 的构造方式保证了 $K$ 的不动点与{eq}`eqeul1`的解一致。 -在{cite}`ma2020income`中显示,通过选取任意$\sigma \in \mathscr{C}$并使用{eq}`eqsifc`中定义的算子$K$进行迭代,可以计算出唯一的最优策略。 +正如{cite}`ma2020income`所示,通过选取任意 $\sigma \in \mathscr{C}$ 并使用{eq}`eqsifc`中定义的算子 $K$ 进行迭代,可以计算出唯一的最优策略。 ### 一些技术细节 -最后这个结论的证明在技术上有些复杂,但这里给出一个简要总结: +最后一个结论的证明在技术上比较复杂,但这里给出一个简要总结: -在{cite}`ma2020income`中证明,在以下度量下,$K$是$\mathscr{C}$上的压缩映射 +在{cite}`ma2020income`中证明,在以下度量下,$K$ 是 $\mathscr{C}$ 上的压缩映射 $$ \rho(c, d) := \| \, u' \circ \sigma_1 - u' \circ \sigma_2 \, \| @@ -318,11 +297,11 @@ $$ \qquad \quad (\sigma_1, \sigma_2 \in \mathscr{C}) $$ -该度量计算边际效用的最大差异。 +该度量衡量的是在边际效用意义下的最大差异。 -(这种距离度量的好处在于,虽然$\mathscr C$中的元素通常不是有界的,但在我们的假设下$\rho$始终是有限的。) +(这种距离度量的好处在于,虽然 $\mathscr C$ 中的元素通常不是有界的,但在我们的假设下 $\rho$ 始终是有限的。) -还证明了度量$\rho$在$\mathscr{C}$上是完备的。 +还可以证明,度量 $\rho$ 在 $\mathscr{C}$ 上是完备的。 因此,$K$ 在 $\mathscr{C}$ 中有唯一的不动点 $\sigma^*$,且对于任意 $\sigma \in \mathscr{C}$,当 $n \to \infty$ 时,$K^n c \to \sigma^*$。 @@ -332,10 +311,7 @@ $$ ## 实现 -```{index} single: Optimal Savings; Programming Implementation -``` - -我们使用 CRRA 效用函数规范 +我们使用 CRRA 效用函数: $$ u(c) = \frac{c^{1 - \gamma}} {1 - \gamma} @@ -343,16 +319,16 @@ $$ 外生状态过程 $\{Z_t\}$ 默认为一个两状态马尔可夫链,其状态空间为 $\{0, 1\}$,转移矩阵为 $P$。 -这里我们构建一个名为 `IFP` 的类来存储模型的基本要素。 +这里我们构建一个名为 `IFP` 的类,用来存储模型的基本要素。 ```{code-cell} ipython3 ifp_data = [ ('R', float64), # 利率 1 + r - ('β', float64), # 贴现因子 + ('β', float64), # 折现因子 ('γ', float64), # 偏好参数 ('P', float64[:, :]), # Z_t 的二元马尔可夫矩阵 ('y', float64[:]), # 收入为 Y_t = y[Z_t] - ('asset_grid', float64[:]) # 网格(数组) + ('asset_grid', float64[:]) # 资产网格(数组) ] @jitclass(ifp_data) @@ -380,7 +356,7 @@ class IFP: return c**(-self.γ) ``` -接下来我们提供一个函数来计算差值 +接下来我们定义一个函数,用来计算下式的差值: ```{math} :label: euler_diff_eq @@ -397,10 +373,10 @@ u'(c) - \max \left\{ @jit def euler_diff(c, a, z, σ_vals, ifp): """ - 欧拉方程左右两边的差值,基于当前策略σ。 + 基于当前策略σ,计算欧拉方程左右两边的差值。 * c 是消费选择 - * (a, z) 是状态,其中 z 在 {0, 1} 中 + * (a, z) 是状态,其中 z ∈ {0, 1} * σ_vals 是以矩阵形式表示的策略 * ifp 是 IFP 的一个实例 @@ -423,7 +399,7 @@ def euler_diff(c, a, z, σ_vals, ifp): return u_prime(c) - max(β * R * expect, u_prime(a)) ``` -请注意,我们沿着资产网格使用线性插值来近似策略函数。 +请注意,我们在资产网格上使用线性插值来近似策略函数。 下一步是求取欧拉方程差的根。 @@ -445,18 +421,42 @@ def K(σ, ifp): 有了算子 $K$ 之后,我们可以选择一个初始条件并开始迭代。 -下面的函数进行迭代直至收敛,并返回近似的最优策略。 +下面的函数执行迭代直至收敛,并返回近似的最优策略。 ```{code-cell} ipython3 -:load: _static/lecture_specific/coleman_policy_iter/solve_time_iter.py +def solve_model_time_iter(model, # 模型信息类 + σ, # 初始条件 + tol=1e-4, + max_iter=1000, + verbose=True, + print_skip=25): + + # 设置循环 + i = 0 + error = tol + 1 + + while i < max_iter and error > tol: + σ_new = K(σ, model) + error = np.max(np.abs(σ - σ_new)) + i += 1 + if verbose and i % print_skip == 0: + print(f"第 {i} 次迭代的误差是 {error}.") + σ = σ_new + + if error > tol: + print("未能收敛!") + elif verbose: + print(f"\n在 {i} 次迭代后收敛。") + + return σ_new ``` -让我们使用`IFP`类的默认参数来执行这个过程: +现在我们用 IFP 类的默认参数来运行: ```{code-cell} ipython3 ifp = IFP() -# 设置初始消费策略,即在所有z状态下消费所有资产 +# 初始化消费策略:在所有状态 z 下消费所有资产 z_size = len(ifp.P) a_grid = ifp.asset_grid a_size = len(a_grid) @@ -465,7 +465,7 @@ a_size = len(a_grid) σ_star = solve_model_time_iter(ifp, σ_init) ``` -这是每个外生状态 $z$ 对应的最优策略图。 +下面是每个外生状态 $z$ 下得到的最优策略函数的绘图: ```{code-cell} ipython3 fig, ax = plt.subplots() @@ -477,7 +477,7 @@ ax.legend() plt.show() ``` -以下练习将带您完成几个需要计算政策函数的应用。 +接下来的练习将带你完成几个应用,在这些应用中会计算策略函数。 ### 合理性检查 @@ -486,15 +486,22 @@ plt.show() * 将每个状态的劳动收入设为零 * 将总利率 $R$ 设为1。 -在这种情况下,我们的收入波动问题就变成了一个蛋糕消费问题。 +在这种情况下,我们的收入波动问题就变成了一个吃蛋糕问题。 -我们知道,在这种情况下,价值函数和最优消费政策由以下给出: +我们知道,在这种情况下,价值函数和最优消费策略由以下给出: ```{code-cell} ipython3 -:load: _static/lecture_specific/cake_eating_numerical/analytical.py +def c_star(x, β, γ): + + return (1 - β ** (1/γ)) * x + + +def v_star(x, β, γ): + + return (1 - β**(1 / γ))**(-γ) * (x**(1-γ) / (1-γ)) ``` -让我们看看是否匹配: +现在我们来看看数值解和解析解是否一致: ```{code-cell} ipython3 ifp_cake_eating = IFP(r=0.0, y=(0.0, 0.0)) @@ -521,14 +528,14 @@ plt.show() 让我们考虑利率如何影响消费。 -复现下图,该图显示了不同利率下的(近似)最优消费策略 +请复现下图,该图展示了在不同利率下(近似的)最优消费策略: ```{figure} /_static/lecture_specific/ifp/ifp_policies.png ``` * 除了`r`外,所有参数都使用默认值。 * `r`的取值范围为`np.linspace(0, 0.04, 4)`。 -* 消费相对于资产绘制,收入冲击固定在最小值。 +* 消费是相对于资产水平绘制的,其中收入冲击固定在最小值。 图中显示,较高的利率会促进储蓄,从而抑制消费。 @@ -539,7 +546,7 @@ plt.show() :class: dropdown ``` -这是一个解决方案: +参考答案: ```{code-cell} ipython3 r_vals = np.linspace(0, 0.04, 4) @@ -563,9 +570,9 @@ plt.show() :label: ifp_ex2 ``` -现在让我们考虑在默认参数下家庭长期持有的资产水平。 +现在我们来考虑,在默认参数下,家庭长期持有的资产水平。 -下图是一个45度图,显示了在消费最优时资产的变动规律 +下图是一个 45 度线图,显示了在最优消费时,资产的运动规律: ```{code-cell} ipython3 ifp = IFP() @@ -585,7 +592,7 @@ ax.legend() plt.show() ``` -实线显示了每个 $z$ 值下资产的更新函数,即 +实线显示了每个 $z$ 值下的资产更新函数,即 $$ a \mapsto R (a - \sigma^*(a, z)) + y(z) @@ -593,22 +600,21 @@ $$ 虚线是45度线。 -从图中可以看出,这个动态过程是稳定的 --- 即使在最高状态下,资产也不会发散。 +从图中可以看出,这个动态过程是稳定的 --- 即使在最高收入状态下,资产也不会发散。 -事实上,存在一个我们可以通过模拟计算的唯一的平稳分布 +事实上,资产存在唯一的平稳分布,我们可以通过模拟来计算: * 这可以通过{cite}`HopenhaynPrescott1992`的定理2来证明。 -* 它表示当家庭面临特质性冲击时,家庭之间资产的长期分布情况。 +* 它表示当家庭面临异质性性冲击时,家庭之间资产的长期分布情况。 -这里符合遍历性,因此平稳概率可以通过对单个长时间序列取平均值来计算。 +由于满足遍历性,可以通过对单个长时间序列取平均来计算平稳分布。 -因此,为了近似平稳分布,我们可以模拟一个较长的资产时间序列并绘制其直方图。 +因此,为了近似平稳分布,我们可以模拟一个资产的长时间序列,并绘制其直方图。 你的任务是生成这样一个直方图。 * 使用一个长度为500,000的单一时间序列 $\{a_t\}$。 -* 考虑到这个时间序列的长度,初始条件 $(a_0, z_0)$ 并不重要。 - +* 由于时间序列足够长,初始条件 $(a_0, z_0)$ 并不重要; * 使用`quantecon`中的`MarkovChain`类可能会对你有帮助。 ```{exercise-end} @@ -618,12 +624,12 @@ $$ :class: dropdown ``` -首先我们编写一个函数来计算长期资产序列。 +首先我们编写一个函数,用来计算一条长资产序列: ```{code-cell} ipython3 def compute_asset_series(ifp, T=500_000, seed=1234): """ - 模拟资产的长度为T的时间序列,基于最优储蓄行为。 + 在最优储蓄行为下,模拟长度为 T 的资产时间序列。 ifp是IFP的一个实例 """ @@ -645,7 +651,7 @@ def compute_asset_series(ifp, T=500_000, seed=1234): return a ``` -现在我们调用函数,生成序列并绘制直方图: +接着我们调用该函数,生成序列并绘制直方图: ```{code-cell} ipython3 ifp = IFP() @@ -657,11 +663,11 @@ ax.set(xlabel='资产') plt.show() ``` -资产分布的形状不够真实。 +资产分布的形状是不现实的。 -这里呈现为左偏态,而实际上应该具有长右尾。 +这里它是左偏的,而在现实中分布通常有一个较长的右尾。 -在{doc}`后续讲座 `中,我们将通过在模型中添加更多真实特征来纠正这一点。 +在{doc}`后续讲座 `中,我们将通过为模型加入更现实的特征来修正这一点。 ```{solution-end} ``` @@ -670,20 +676,19 @@ plt.show() :label: ifp_ex3 ``` -在练习1和2的基础上,让我们来看看储蓄和总体资产持有量如何随利率变化 +在练习1和2的基础上,我们现在来考察储蓄和总资产持有量如何随利率变化。 ```{note} 可以参考{cite}`Ljungqvist2012`第18.6节获取本练习所涉及主题的更多背景知识。 ``` -对于模型的给定参数化,资产稳态分布的均值可以被解释为一个经济体中的总资本,该经济体中有单位质量的面临特质性冲击的*事前*相同的家庭。 - -你的任务是研究这个总资本衡量指标如何随利率变化。 +在给定的模型参数下,资产平稳分布的均值可以被解释为一个单位质量的 事前相同 的家庭在面对异质性冲击时,经济中的总资本。 -按照传统,将价格(即利率)放在纵轴上。 +你的任务是研究这一总资本度量如何随利率变化。 +按照传统,把价格(即利率)放在纵轴上。 -在横轴上放置总资本,该值通过给定利率下的平稳分布的均值计算得出。 +横轴上放总资本,即在给定利率下,由资产平稳分布的均值计算得到。 ```{exercise-end} ``` @@ -692,7 +697,7 @@ plt.show() :class: dropdown ``` -这是一个解决方案 +参考答案 ```{code-cell} ipython3 M = 25 @@ -701,13 +706,13 @@ fig, ax = plt.subplots() asset_mean = [] for r in r_vals: - print(f'Solving model at r = {r}') + print(f'在r = {r}处求解') ifp = IFP(r=r) mean = np.mean(compute_asset_series(ifp, T=250_000)) asset_mean.append(mean) ax.plot(asset_mean, r_vals) -ax.set(xlabel='capital', ylabel='interest rate') +ax.set(xlabel='资本', ylabel='利率') plt.show() ```