Skip to content

Commit 3e9d7b2

Browse files
committed
update seperation
1 parent 160e7b9 commit 3e9d7b2

File tree

4 files changed

+51
-48
lines changed

4 files changed

+51
-48
lines changed
12 KB
Loading
13.2 KB
Loading
13.4 KB
Loading

lectures/mccall_model_with_separation.md

Lines changed: 51 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@ jupytext:
33
text_representation:
44
extension: .md
55
format_name: myst
6+
format_version: 0.13
7+
jupytext_version: 1.17.1
68
kernelspec:
7-
display_name: Python 3
8-
language: python
99
name: python3
10+
display_name: Python 3 (ipykernel)
11+
language: python
1012
---
1113

1214
(mccall_with_sep)=
@@ -29,31 +31,30 @@ kernelspec:
2931

3032
除了Anaconda中包含的内容外,本讲座还需要以下库:
3133

32-
```{code-cell} ipython
33-
---
34-
tags: [hide-output]
35-
---
34+
```{code-cell} ipython3
35+
:tags: [hide-output]
36+
3637
!pip install quantecon
3738
```
3839

3940
## 概述
4041

4142
在{doc}`之前的讲座 <mccall_model>`中,我们研究了McCall工作搜寻模型 {cite}`McCall1970`作为理解失业和劳动者决策的一种方式。
4243

43-
该模型的一个不现实特征是每份工作都是永久性的
44+
在之前的模型中,我们假设工作是永久性的,这不太符合现实
4445

45-
在本讲座中,我们通过引入工作离职来扩展McCall模型
46+
本讲座将通过引入离职的可能性来使McCall模型更加贴近现实
4647

47-
一旦引入离职,个体就会将
48+
一旦引入离职,个体会有不同的考虑
4849

49-
* 失去工作视为资本损失,以及
50-
* 失业期视为寻找可接受工作的*投资*
50+
* 失业不仅仅是一个暂时状态,而是随时可能发生的资本损失
51+
* 失业期间的工作搜寻成为寻找下一份工作的*投资*
5152

52-
另一个小的补充是引入效用函数以使劳动者偏好更加复杂
53+
我们还将引入效用函数来更好地刻画劳动者的偏好
5354

54-
我们需要以下导入
55+
让我们首先导入所需的包
5556

56-
```{code-cell} ipython
57+
```{code-cell} ipython3
5758
import matplotlib.pyplot as plt
5859
import matplotlib as mpl
5960
FONTPATH = "fonts/SourceHanSerifSC-SemiBold.otf"
@@ -93,13 +94,13 @@ from quantecon.distributions import BetaBinomial
9394

9495
### 工资过程
9596

96-
目前我们将放弃在{doc}`基础模型 <mccall_model>`中保持的状态过程和工资过程的分离
97+
为了简化模型,我们不再像{doc}`基础模型 <mccall_model>`那样将状态过程和工资过程分开
9798

98-
特别是,我们简单地假设工资报价$\{ w_t \}$是独立同分布的,具有共同的分布$q$。
99+
我们直接假设工资报价$\{w_t\}$是从一个共同分布$q$中独立抽取的
99100

100-
可能的工资值集合用$\mathbb W$表示
101+
我们用$\mathbb W$表示所有可能的工资值集合
101102

102-
稍后我们将回到具有驱动随机结果的独立状态过程$\{s_t\}$,因为这种表述在更复杂的模型中通常更方便。)
103+
在后面的章节中,我们会重新引入独立的状态过程$\{s_t\}$来驱动随机结果,因为这种方式在处理更复杂的模型时会更加方便。)
103104

104105
### 时间安排和决策
105106

@@ -115,7 +116,7 @@ from quantecon.distributions import BetaBinomial
115116
1. 获得效用$u(w_e)$,并且
116117
1. 以某个(小的)概率$\alpha$被解雇。
117118

118-
如果当前*失业*劳动者要么接受要么拒绝当前报价$w_t$。
119+
如果当前*失业*劳动者可以接受或拒绝当前报价$w_t$。
119120

120121
如果他接受,则立即以工资$w_t$开始工作。
121122

@@ -166,11 +167,11 @@ h(w) = \max \left\{ v(w), \, u(c) + \beta \sum_{w' \in \mathbb W} h(w') q(w') \
166167
方程{eq}`bell1_mccall`表达了以工资$w_e$就业的价值,包括:
167168

168169
* 当前报酬$u(w_e)$加上
169-
* 考虑到$\alpha$被解雇概率的贴现预期报酬
170+
* 考虑到$\alpha$被解雇概率的贴现预期价值
170171

171172
方程{eq}`bell2_mccall`表达了失业且手中有报价$w$的价值,作为两个选项的最大值:接受或拒绝当前报价。
172173

173-
接受使劳动者转为就业,因此获得报酬$v(w)$。
174+
接受使劳动者转为就业,因此获得价值$v(w)$。
174175

175176
拒绝导致失业补偿和明天的失业。
176177

@@ -238,12 +239,11 @@ v(w) = u(w) + \beta
238239
然后我们可以确定劳动者的最优行为。
239240

240241
从{eq}`bell2_mccall`中,我们看到失业个体接受当前报价$w$如果$v(w) \geq u(c) + \beta d$。
242+
这表明接受工作的价值超过了继续搜索的预期价值。
241243

242-
这意味着接受的价值高于拒绝的预期价值。
243-
244-
显然$v$(至少是弱)随$w$增加,因为个体永远不会因更高的工资报价而变得更差。
244+
由于更高的工资报价不会让个体更差,$v$是关于$w$的(弱)递增函数。
245245

246-
因此,我们可以将最优选择表达为接受工资报价$w$当且仅当
246+
这意味着个体的最优策略可以用一个保留工资来表示 - 当且仅当工资报价$w$超过某个临界值时接受工作
247247

248248
$$
249249
w \geq \bar w
@@ -253,13 +253,14 @@ $$
253253

254254
### 求解贝尔曼方程
255255

256-
我们将使用与{doc}`第一个工作搜寻讲座 <mccall_model>`中相同的迭代方法来求解贝尔曼方程
256+
我们将采用与{doc}`第一个工作搜寻讲座 <mccall_model>`相同的迭代方法来求解贝尔曼方程
257257

258-
这里这包括
258+
具体步骤如下
259259

260-
1. 对$d$和$v$做出猜测
261-
1. 将这些猜测代入{eq}`bell02_mccall`和{eq}`bell01_mccall`的右侧
262-
1. 从这个规则更新左侧,然后重复
260+
1. 首先对$d$和$v$的值进行初始猜测
261+
1. 将这些猜测值代入{eq}`bell02_mccall`和{eq}`bell01_mccall`右侧的表达式
262+
1. 计算得到新的左侧值,并用这些新值更新猜测
263+
1. 重复以上步骤直到收敛
263264

264265
换句话说,我们使用以下规则进行迭代:
265266

@@ -283,7 +284,7 @@ v_{n+1}(w) = u(w) + \beta
283284

284285
如前所述,系统总是收敛到真实解---在这种情况下,是满足{eq}`bell02_mccall`和{eq}`bell01_mccall`的$v$和$d$。
285286

286-
可以通过Banach压缩映射定理获得证明。)
287+
可以通过巴拿赫压缩映射定理获得证明。)
287288

288289
## 实现
289290

@@ -295,25 +296,25 @@ v_{n+1}(w) = u(w) + \beta
295296

296297
默认效用函数是CRRA效用函数:
297298

298-
```{code-cell} python3
299+
```{code-cell} ipython3
299300
@jit
300301
def u(c, σ=2.0):
301302
return (c**(1 - σ) - 1) / (1 - σ)
302303
```
303304

304-
另外,这是一个基于BetaBinomial分布的默认工资分布
305+
另外,这是一个基于Beta-二项分布的默认工资分布
305306

306-
```{code-cell} python3
307+
```{code-cell} ipython3
307308
n = 60 # w的n个可能结果
308309
w_default = np.linspace(10, 20, n) # 10到20之间的工资
309310
a, b = 600, 400 # 形状参数
310311
dist = BetaBinomial(n-1, a, b)
311312
q_default = dist.pdf()
312313
```
313314

314-
这是我们的McCall模型与离职的jitted类
315+
这是我们的McCall模型与离职的即时编译类
315316

316-
```{code-cell} python3
317+
```{code-cell} ipython3
317318
mccall_data = [
318319
('α', float64), # 工作离职率
319320
('β', float64), # 贴现因子
@@ -351,7 +352,7 @@ class McCallModel:
351352

352353
然后我们将当前迭代作为近似解返回。
353354

354-
```{code-cell} python3
355+
```{code-cell} ipython3
355356
@jit
356357
def solve_model(mcm, tol=1e-5, max_iter=2000):
357358
"""
@@ -387,7 +388,7 @@ def solve_model(mcm, tol=1e-5, max_iter=2000):
387388

388389
我们将使用代码中的默认参数化。
389390

390-
```{code-cell} python3
391+
```{code-cell} ipython3
391392
mcm = McCallModel()
392393
v, d = solve_model(mcm)
393394
h = u(mcm.c) + mcm.β * d
@@ -409,7 +410,7 @@ plt.show()
409410

410411
这是一个函数`compute_reservation_wage`,它接受`McCallModel`的实例并返回相关的保留工资。
411412

412-
```{code-cell} python3
413+
```{code-cell} ipython3
413414
@jit
414415
def compute_reservation_wage(mcm):
415416
"""
@@ -431,7 +432,9 @@ def compute_reservation_wage(mcm):
431432

432433
## 参数的影响
433434

434-
在下面的每个实例中,我们将向你展示一个图形,然后要求你在练习中重现它。
435+
现在我们将研究保留工资如何随不同参数变化。
436+
437+
对于每个参数,我们会展示一副图,并在练习中让你动手来重现这些图形。
435438

436439
### 保留工资和失业补偿
437440

@@ -485,7 +488,7 @@ def compute_reservation_wage(mcm):
485488

486489
关于水平轴上的值,使用:
487490

488-
```{code-cell} python3
491+
```{code-cell} ipython3
489492
grid_size = 25
490493
c_vals = np.linspace(2, 12, grid_size) # 失业补偿
491494
beta_vals = np.linspace(0.8, 0.99, grid_size) # 贴现因子
@@ -499,9 +502,9 @@ alpha_vals = np.linspace(0.05, 0.5, grid_size) # 离职率
499502
:class: dropdown
500503
```
501504

502-
这是第一个图
505+
这是第一幅图
503506

504-
```{code-cell} python3
507+
```{code-cell} ipython3
505508
mcm = McCallModel()
506509
507510
w_bar_vals = np.empty_like(c_vals)
@@ -521,9 +524,9 @@ ax.legend()
521524
plt.show()
522525
```
523526

524-
这是第二个图
527+
这是第二幅图
525528

526-
```{code-cell} python3
529+
```{code-cell} ipython3
527530
fig, ax = plt.subplots()
528531
529532
for i, β in enumerate(beta_vals):
@@ -538,9 +541,9 @@ ax.legend()
538541
plt.show()
539542
```
540543

541-
这是第三个图
544+
这是第三幅图
542545

543-
```{code-cell} python3
546+
```{code-cell} ipython3
544547
fig, ax = plt.subplots()
545548
546549
for i, α in enumerate(alpha_vals):
@@ -556,4 +559,4 @@ plt.show()
556559
```
557560

558561
```{solution-end}
559-
```
562+
```

0 commit comments

Comments
 (0)