@@ -34,9 +34,9 @@ tags: [hide-output]
3434
3535## 概述
3636
37- 在本讲座中,我们求解一个具有持续性和暂时性工资成分的 {doc}` McCall求职搜索模型 <mccall_model> ` 。
37+ 在本讲座中,我们求解一个工资报价由持续性和暂时性成分组成的 {doc}` McCall求职搜索模型 <mccall_model> ` 。
3838
39- 换句话说,我们放宽了工资随机性在时间上相互独立的假设 。
39+ 换句话说,我们放宽了工资随机性在时间上独立的假设 。
4040
4141同时,我们将回到假设工作是永久性的,不会发生离职。
4242
@@ -60,7 +60,7 @@ from numba.experimental import jitclass
6060
6161## 模型
6262
63- 每个时间点的工资由下式给出 :
63+ 每个时期的工资由下式给出 :
6464
6565$$
6666w_t = \exp(z_t) + y_t
@@ -74,13 +74,13 @@ y_t \sim \exp(\mu + s \zeta_t)
7474z_{t+1} = d + \rho z_t + \sigma \epsilon_{t+1}
7575$$
7676
77- 这里 $\{ \zeta_t \} $ 和 $\{ \epsilon_t \} $ 都是独立同分布的标准正态分布 。
77+ 这里 $\{ \zeta_t \} $ 和 $\{ \epsilon_t \} $ 都是独立同分布的标准正态随机变量 。
7878
7979这里 $\{ y_t\} $ 是暂时性成分,$\{ z_t\} $ 是持续性成分。
8080
8181如前所述,劳动者可以:
8282
83- 1 . 接受报价并在该工资水平永久工作 ,或
83+ 1 . 接受当前工作机会,并在该工资水平永久工作 ,或
84841 . 领取失业补偿金 $c$ 并等待下一期。
8585
8686价值函数满足贝尔曼方程:
@@ -93,77 +93,75 @@ v^*(w, z) =
9393 \right\}
9494$$
9595
96- 在这个表达式中,$u$ 是效用函数,$\mathbb E_z$ 是给定当前 $z$ 时下一期变量的期望 。
96+ 在这个表达式中,$u$ 是效用函数,$\mathbb E_z$ 是给定当前 $z$ 时下一期变量的条件期望 。
9797
98- 变量 $z$ 作为状态进入贝尔曼方程,因为它的当前值有助于预测未来工资 。
98+ 变量 $z$ 作为状态变量进入贝尔曼方程,这是因为它的当前值有助于预测未来工资 。
9999
100100### 简化
101101
102- 有一种方法可以减少这个问题的维度,这大大加快了计算速度。
102+ 我们可以通过以下方法降低问题维度,显著提升计算效率:
103103
104- 首先,让 $f^* $ 为继续价值函数 ,定义为:
104+ 首先,让 $f^* $ 为延续价值函数 ,定义为:
105105
106106$$
107107f^*(z) := u(c) + \beta \, \mathbb E_z v^*(w', z')
108108$$
109109
110- 贝尔曼方程现在可以写成 :
110+ 现在贝尔曼方程可以写成 :
111111
112112$$
113113v^*(w, z) = \max \left\{ \frac{u(w)}{1-\beta}, \, f^*(z) \right\}
114114$$
115115
116- 结合最后两个表达式,我们看到继续价值函数满足 :
116+ 结合上述两个表达式,我们看到延续价值函数满足 :
117117
118118$$
119119f^*(z) = u(c) + \beta \, \mathbb E_z \max \left\{ \frac{u(w')}{1-\beta}, f^*(z') \right\}
120120$$
121121
122- 我们将通过引入算子来求解这个函数方程 :
122+ 为求解该函数方程,我们引入算子$Q$ :
123123
124124$$
125125Qf(z) = u(c) + \beta \, \mathbb E_z \max \left\{ \frac{u(w')}{1-\beta}, f(z') \right\}
126126$$
127127
128128根据构造,$f^* $ 是 $Q$ 的不动点,即 $Q f^* = f^* $。
129129
130- 在温和的假设下 ,可以证明 $Q$ 是 $\mathbb R$ 上连续函数空间上的 [ 压缩映射] ( https://baike.baidu.com/item/%E5%8E%8B%E7%BC%A9%E6%98%A0%E5%B0%84/5114126 ) 。
130+ 在较弱的假设下 ,可以证明 $Q$ 是 $\mathbb R$ 上连续函数空间上的一个 [ 压缩映射] ( https://baike.baidu.com/item/%E5%8E%8B%E7%BC%A9%E6%98%A0%E5%B0%84/5114126 ) 。
131131
132- 根据巴拿赫压缩映射定理,这意味着 $f^* $ 是唯一的不动点,我们可以从任何合理的初始条件开始通过迭代 $Q$ 来计算它 。
132+ 根据巴拿赫压缩映射定理,$f^* $ 是唯一的不动点,我们可以从任何合理的初始条件开始通过迭代 $Q$ 来得到$f^ * $ 。
133133
134- 一旦我们有 $f^* $,我们就可以通过在接受报酬超过继续价值时停止来求解搜寻问题 ,即:
134+ 求得 $f^* $后,这一搜索问题的解就是当接受工作的收益超过延续价值时停止求职 ,即:
135135
136136$$
137137\frac{u(w)}{1-\beta} \geq f^*(z)
138138$$
139139
140140对于效用函数,我们取 $u(c) = \ln(c)$。
141141
142- 保留工资是最后一个表达式中等式成立的工资。
143-
144- 即:
142+ 保留工资是最后一个表达式中等式成立的工资:
145143
146144``` {math}
147145:label: corr_mcm_barw
148146
149147\bar w (z) := \exp(f^*(z) (1-\beta))
150148```
151149
152- 我们的主要目标是求解保留规则并研究其性质和含义 。
150+ 我们的主要目标是求解该保留工资规则,并分析其性质与含义 。
153151
154152## 实现
155153
156154让 $f$ 作为我们对 $f^* $ 的初始猜测。
157155
158156在迭代时,我们使用{doc}` 拟合价值函数迭代 <mccall_fitted_vfi> ` 算法。
159157
160- 特别地,$f$ 和所有后续迭代都存储为网格上的值向量 。
158+ 特别地,$f$ 和所有后续迭代值都作为向量存储在一个网格 。
161159
162- 这些点根据需要通过分段线性插值插值成函数 。
160+ 这些点通过分段线性插值转换为函数 。
163161
164- $Qf$ 定义中的积分通过蒙特卡洛计算 。
162+ $Qf$ 定义中的期望项通过蒙特卡洛计算 。
165163
166- 以下列表通过提供我们将使用的数据类型信息来帮助Numba :
164+ 以下类型声明帮助 Numba 进行类型推断 :
167165
168166``` {code-cell} python3
169167job_search_data = [
@@ -172,14 +170,14 @@ job_search_data = [
172170 ('d', float64), # 持续性状态位移系数
173171 ('ρ', float64), # 持续性状态相关系数
174172 ('σ', float64), # 状态波动率
175- ('β', float64), # 贴现因子
176- ('c', float64), # 失业补偿金
173+ ('β', float64), # 折现因子
174+ ('c', float64), # 失业补助
177175 ('z_grid', float64[:]), # 状态空间网格
178176 ('e_draws', float64[:,:]) # 积分用的蒙特卡洛抽取
179177]
180178```
181179
182- 这是一个存储数据和贝尔曼方程右侧的类 。
180+ 这是一个存储数据和贝尔曼方程右侧项的类 。
183181
184182默认参数值嵌入在类中。
185183
@@ -193,8 +191,8 @@ class JobSearch:
193191 d=0.0, # 持续性状态位移系数
194192 ρ=0.9, # 持续性状态相关系数
195193 σ=0.1, # 状态波动率
196- β=0.98, # 贴现因子
197- c=5, # 失业补偿金
194+ β=0.98, # 折现因子
195+ c=5, # 失业补助
198196 mc_size=1000,
199197 grid_size=100):
200198
@@ -208,7 +206,7 @@ class JobSearch:
208206 a, b = z_mean - k * z_sd, z_mean + k * z_sd
209207 self.z_grid = np.linspace(a, b, grid_size)
210208
211- # 抽取并存储冲击
209+ # 生成并存储冲击
212210 np.random.seed(1234)
213211 self.e_draws = randn(2, mc_size)
214212
@@ -243,8 +241,8 @@ def Q(js, f_in, f_out):
243241 e1, e2 = js.e_draws[:, m]
244242 z_next = d + ρ * z + σ * e1
245243 go_val = np.interp(z_next, js.z_grid, f_in) # f(z')
246- y_next = np.exp(μ + s * e2) # y' 抽取
247- w_next = np.exp(z_next) + y_next # w' 抽取
244+ y_next = np.exp(μ + s * e2) # 生成 y'
245+ w_next = np.exp(z_next) + y_next # 生成 w'
248246 stop_val = np.log(w_next) / (1 - β)
249247 expectation += max(stop_val, go_val)
250248 expectation = expectation / M
@@ -307,9 +305,9 @@ ax.legend()
307305plt.show()
308306```
309307
310- 注意保留工资随当前状态 $z$ 增加 。
308+ 注意保留工资随当前状态 $z$ 单调递增 。
311309
312- 这是因为更高的状态导致代理人预测更高的未来工资,增加了等待的期权价值 。
310+ 这是因为更高的状态导致代理人预测更高的未来工资,增加了等待的价值 。
313311
314312让我们尝试改变失业补偿金并观察其对保留工资的影响:
315313
@@ -329,7 +327,7 @@ ax.legend()
329327plt.show()
330328```
331329
332- 正如预期的那样,更高的失业补偿金在所有状态值下都提高了保留工资 。
330+ 正如预期的那样,更高的失业补偿金在所有状态下都提高了保留工资 。
333331
334332## 失业持续时间
335333
@@ -356,7 +354,7 @@ def compute_unemployment_duration(js, seed=1234):
356354
357355 unemployed = True
358356 while unemployed and t < t_max:
359- # 抽取当前工资
357+ # 生成当前工资
360358 y = np.exp(μ + s * np.random.randn())
361359 w = np.exp(z) + y
362360 res_wage = np.exp(f_star_function(z) * (1 - β))
@@ -380,7 +378,7 @@ def compute_unemployment_duration(js, seed=1234):
380378 return compute_expected_tau()
381379```
382380
383- 让我们用一些可能的失业补偿金值来测试这个 :
381+ 让我们用一些可能的失业补偿金值来计算失业持续时间 :
384382
385383``` {code-cell} ipython3
386384c_vals = np.linspace(1.0, 10.0, 8)
@@ -391,7 +389,7 @@ for i, c in enumerate(c_vals):
391389 durations[i] = τ
392390```
393391
394- 这是结果图 :
392+ 这是可视化结果 :
395393
396394``` {code-cell} ipython3
397395fig, ax = plt.subplots()
@@ -410,10 +408,10 @@ plt.show()
410408``` {exercise}
411409:label: mc_ex1
412410
413- 研究平均失业持续时间如何随贴现因子 $\beta$ 变化。
411+ 研究平均失业持续时间如何随折现因子 $\beta$ 变化。
414412
415- * 你的先验预期是什么 ?
416- * 结果是否符合预期 ?
413+ * 你的预期是什么 ?
414+ * 结果是否符合你的预期 ?
417415```
418416
419417``` {solution-start} mc_ex1
0 commit comments