Skip to content

Commit 5b41f1d

Browse files
authored
Update wealth_dynamics.md
I've made new changes in response to RA's feedback
1 parent 7c4bac5 commit 5b41f1d

File tree

1 file changed

+40
-36
lines changed

1 file changed

+40
-36
lines changed

lectures/wealth_dynamics.md

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ kernelspec:
1717
</div>
1818
```
1919

20-
# 财富分布动态
20+
# 财富分配动态
2121

2222
```{contents} 目录
2323
:depth: 2
2424
```
2525

2626
```{seealso}
27-
本讲座的`GPU`版本可在[这里](https://jax.quantecon.org/wealth_dynamics.html)找到
27+
使用`GPU`[版本]的本讲座(https://jax.quantecon.org/wealth_dynamics.html)可在[这里]找到(https://jax.quantecon.org/wealth_dynamics.html)
2828
```
2929

3030
除了Anaconda中已有的库外,本讲座还需要以下库:
@@ -38,32 +38,34 @@ tags: [hide-output]
3838

3939
## 概述
4040

41-
本课程介绍了财富分布动态,在本讲中,我们
41+
本课程介绍了财富分配动态,重点要
4242

43-
* 通过模拟建模和计算财富分布
43+
* 通过模拟建模和计算财富分配
4444
* 介绍不平等的衡量指标,如洛伦兹曲线和基尼系数
45-
* 以及探究工资收入和资产回报的特性如何影响不平等
45+
* 工资收入和资产回报的特性如何影响不平等
4646

47-
我们这里讨论的财富分布,有一个有趣的特性是帕累托尾
47+
我们这里讨论的财富分配,有一个有趣的特性是帕累托尾部
4848

49-
许多国家的财富分布都表现出帕累托尾
49+
许多国家的财富分配都表现出帕累托尾部
5050

51-
* 参见{doc}`本讲座<intro:heavy_tails>`中的定义
51+
* 参见{doc}`本讲座<intro:heavy_tails>`获取定义
5252
* 关于相关实证证据的综述,请参见{cite}`benhabib2018skewed`
5353

54-
这与现实中,财富高度集中在最富有的一部分家庭的情况一致
54+
这与现实中,财富高度集中在最富有的一部分家庭的情况相一致
5555

5656
这一特性也为我们提供了一种量化这种集中度的方法:通过尾部指数。
5757

5858
一个值得关注的问题是,我们是否能从一个相对简单的模型中复现出帕累托尾部。
5959

6060
### 关于假设的说明
6161

62-
任何给定家庭的财富变动取决于其储蓄行为。
62+
任何给定家庭的财富变动取决于其
63+
64+
储蓄行为。
6365

6466
对这种储蓄行为的建模将成为本系列讲座的要点。
6567

66-
然而,在本次讲座中,我们假设相对简单(但合理)的储蓄规则就足够。
68+
然而,在本次讲座中,我们假设相对随意(但合理)的储蓄规则就足够。
6769

6870
我们这样做是为了探索不同收入动态和投资回报规格的影响。
6971

@@ -78,7 +80,7 @@ FONTPATH = "fonts/SourceHanSerifSC-SemiBold.otf"
7880
mpl.font_manager.fontManager.addfont(FONTPATH)
7981
plt.rcParams['font.family'] = ['Source Han Serif SC']
8082
81-
plt.rcParams["figure.figsize"] = (11, 5) # 设置默认图形大小
83+
plt.rcParams["figure.figsize"] = (11, 5) #设置默认图形尺寸
8284
import numpy as np
8385
import quantecon as qe
8486
from numba import jit, float64, prange
@@ -91,17 +93,19 @@ from numba.experimental import jitclass
9193

9294
### 洛伦兹曲线
9395

94-
[洛伦兹曲线](https://en.wikipedia.org/wiki/Lorenz_curve)是一种广受欢迎的不平等图形度量方法。
96+
[洛伦兹曲线](https://baike.baidu.com/item/%E6%B4%9B%E4%BC%A6%E5%85%B9%E6%9B%B2%E7%BA%BF/2903864)是一种广受欢迎的不平等图形度量方法。
9597

9698
上面已经导入的[QuantEcon.py](https://github.com/QuantEcon/QuantEcon.py)包含了计算洛伦兹曲线的函数。
9799

98-
举例说明,假设以下数据代表了10,000个家庭的财富分布
100+
举例说明,假设:
99101

100102
```{code-cell} ipython3
101103
n = 10_000 # 样本大小
102104
w = np.exp(np.random.randn(n)) # 生成对数正态分布的随机样本
103105
```
104106

107+
数据代表了10,000个家庭的财富分布。
108+
105109
我们可以按如下方式计算并绘制洛伦兹曲线:
106110

107111
```{code-cell} ipython3
@@ -114,7 +118,7 @@ ax.legend()
114118
plt.show()
115119
```
116120

117-
这条曲线可以这样理解:如果点$(x,y)$位于曲线上,这意味着最底层$(100x)\%$的人口拥有$(100y)\%$的财富。
121+
这条曲线可以这样理解:如果点$(x,y)$位于曲线上,这意味着最底层$(100x)\%$的人口collectively拥有$(100y)\%$的财富。
118122

119123
"平等"线是45度线(在图中可能不完全是45度,这取决于图形的纵横比)。
120124

@@ -129,15 +133,15 @@ plt.show()
129133
我们使用帕累托分布和一系列参数生成10,000个观测值,然后计算对应于每组观测值的洛伦兹曲线。
130134

131135
```{code-cell} ipython3
132-
a_vals = (1, 2, 5) # 帕累托分布的尾部指数
136+
a_vals = (1, 2, 5) # Pareto尾部指数
133137
n = 10_000 # 每个样本的大小
134138
fig, ax = plt.subplots()
135139
for a in a_vals:
136140
u = np.random.uniform(size=n)
137141
y = u**(-1/a) # 服从尾部指数为a的帕累托分布
138142
f_vals, l_vals = qe.lorenz_curve(y)
139143
ax.plot(f_vals, l_vals, label=f'$a = {a}$')
140-
ax.plot(f_vals, f_vals, label='平等')
144+
ax.plot(f_vals, f_vals, label='完全平等')
141145
ax.legend()
142146
plt.show()
143147
```
@@ -148,7 +152,7 @@ plt.show()
148152

149153
### 基尼系数
150154

151-
基尼系数的定义和解释可以在相应的[百科页面](https://baike.baidu.com/item/%E5%9F%BA%E5%B0%BC%E7%B3%BB%E6%95%B0/88365)上找到。
155+
基尼系数的定义和解释可以在相应的[百度页面](https://baike.baidu.com/item/%E5%9F%BA%E5%B0%BC%E7%B3%BB%E6%95%B0/88365)上找到。
152156

153157
0值表示完全平等(对应洛伦兹曲线与45度线重合的情况),1值表示完全不平等(所有财富都由最富有的家庭持有)。
154158

@@ -224,7 +228,7 @@ $$
224228

225229
$c_r$ 的值应该接近于零,因为资产收益率不会表现出较大的趋势。
226230

227-
当我们模拟家庭人口时,我们假设所有冲击都是特质的(即,特定于个别家庭且彼此之间相互独立)。
231+
当我们模拟家庭人口时,我们假设所有冲击都是特殊性的(即,特定于个别家庭且彼此之间相互独立)。
228232

229233
关于储蓄函数$s$,我们的默认模型将是
230234

@@ -265,7 +269,7 @@ wealth_dynamics_data = [
265269
]
266270
```
267271

268-
下面是一个类,用于存储模型参数并实现更新总体状态和家庭财富的方法
272+
这是一个存储实例数据并实现更新总体状态和家庭财富方法的类
269273

270274
```{code-cell} ipython3
271275
@@ -331,7 +335,7 @@ class WealthDynamics:
331335
return wp, zp
332336
```
333337

334-
以下是一个用于模拟单个家庭财富时间序列的函数
338+
这是一个用于模拟单个家庭财富时间序列的函数
335339

336340
```{code-cell} ipython3
337341
@@ -356,9 +360,9 @@ def wealth_time_series(wdy, w_0, n):
356360
return w
357361
```
358362

359-
下面是模拟一组家庭财富随时间变化的函数
363+
以下是模拟一组家庭财富随时间变化的函数
360364

361-
我们使用并行计算来加快计算速度
365+
注意使用并行化来加快计算速度
362366

363367
```{code-cell} ipython3
364368
@@ -370,7 +374,7 @@ def update_cross_section(wdy, w_distribution, shift_length=500):
370374
* wdy: WealthDynamics的一个实例
371375
* w_distribution: array_like, 表示当前的截面分布
372376
373-
接收当前家庭财富值分布作为w_distribution的输入
377+
接收当前家庭财富值分布作为w_distribution输入
374378
并将每个w_t更新为w_{t+j},其中
375379
j = shift_length。(步长)
376380
@@ -393,7 +397,7 @@ def update_cross_section(wdy, w_distribution, shift_length=500):
393397

394398
## 应用
395399

396-
让我们尝试在不同参数值下模拟该模型,并研究其对财富分布的影响
400+
让我们尝试在不同参数值下模拟该模型,并研究其对财富分配的影响
397401

398402
### 时间序列
399403

@@ -424,7 +428,7 @@ plt.show()
424428
```{code-cell} ipython3
425429
def generate_lorenz_and_gini(wdy, num_households=100_000, T=500):
426430
"""
427-
通过将num_households个家庭向前模拟到时间T,生成与WealthDynamics模型
431+
通过将num_households向前模拟到时间T,生成与WealthDynamics模型
428432
相对应的洛伦兹曲线数据和基尼系数。
429433
"""
430434
ψ_0 = np.full(num_households, wdy.y_mean)
@@ -434,7 +438,7 @@ def generate_lorenz_and_gini(wdy, num_households=100_000, T=500):
434438
return qe.gini_coefficient(ψ_star), qe.lorenz_curve(ψ_star)
435439
```
436440

437-
现在我们研究随着储蓄回报率的变化,财富分布的洛伦兹曲线如何变化
441+
现在我们研究随着储蓄回报率的变化,财富分配的洛伦兹曲线如何变化
438442

439443
下面的代码绘制了三个不同 $\mu_r$ 值对应的洛伦兹曲线。
440444

@@ -445,7 +449,7 @@ def generate_lorenz_and_gini(wdy, num_households=100_000, T=500):
445449
实际上,这段经过JIT编译和并行化处理的代码相对于计算量来说运行速度已经非常快了。
446450

447451
```{code-cell} ipython3
448-
%%time
452+
%%时间
449453
450454
fig, ax = plt.subplots()
451455
μ_r_vals = (0.0, 0.025, 0.05)
@@ -457,7 +461,7 @@ for μ_r in μ_r_vals:
457461
ax.plot(f_vals, l_vals, label=fr'$\psi^*$ at $\mu_r = {μ_r:0.2}$')
458462
gini_vals.append(gv)
459463
460-
ax.plot(f_vals, f_vals, label='平等')
464+
ax.plot(f_vals, f_vals, label='完全平等')
461465
ax.legend(loc="upper left")
462466
plt.show()
463467
```
@@ -468,7 +472,7 @@ plt.show()
468472

469473
由于代码经过高效的JIT编译并完全并行化,如果不更改硬件,几乎不可能让这些任务序列运行得更快。
470474

471-
现在让我们看一看基尼系数
475+
现在让我们检查基尼系数
472476

473477
```{code-cell} ipython3
474478
fig, ax = plt.subplots()
@@ -480,7 +484,7 @@ plt.show()
480484

481485
我们再次看到,随着金融收入回报的增加,不平等程度也在上升。
482486

483-
最后,让我们通过研究改变金融回报的波动率项$\sigma_r$时会发生什么。
487+
让我们通过研究改变金融回报的波动率项$\sigma_r$时会发生什么,来结束本节课程
484488

485489
```{code-cell} ipython3
486490
%%time
@@ -495,7 +499,7 @@ for σ_r in σ_r_vals:
495499
ax.plot(f_vals, l_vals, label=fr'$\psi^*$ at $\sigma_r = {σ_r:0.2}$')
496500
gini_vals.append(gv)
497501
498-
ax.plot(f_vals, f_vals, label='平等')
502+
ax.plot(f_vals, f_vals, label='完全平等')
499503
ax.legend(loc="upper left")
500504
plt.show()
501505
```
@@ -526,7 +530,7 @@ plt.show()
526530
:class: dropdown
527531
```
528532

529-
这是一个解法,它在理论和模拟之间产生了很好的匹配。
533+
这是一个解决方案,它在理论和模拟之间产生了很好的匹配。
530534

531535
```{code-cell} ipython3
532536
a_vals = np.linspace(1, 10, 25) # 帕累托尾部指数
@@ -537,7 +541,7 @@ fig, ax = plt.subplots()
537541
for i, a in enumerate(a_vals):
538542
y = np.random.uniform(size=n)**(-1/a)
539543
ginis[i] = qe.gini_coefficient(y)
540-
ax.plot(a_vals, ginis, label='抽样值')
544+
ax.plot(a_vals, ginis, label='样本值')
541545
ax.plot(a_vals, 1/(2*a_vals - 1), label='理论值')
542546
ax.legend()
543547
plt.show()
@@ -602,14 +606,14 @@ z_0 = wdy.z_mean
602606
ψ_star = update_cross_section(wdy, ψ_0, shift_length=T)
603607
```
604608

605-
现在让我们看看排名-规模图:
609+
现在让我们看看等级-规模图:
606610

607611
```{code-cell} ipython3
608612
fig, ax = plt.subplots()
609613
610614
rank_data, size_data = qe.rank_size(ψ_star, c=0.001)
611615
ax.loglog(rank_data, size_data, 'o', markersize=3.0, alpha=0.5)
612-
ax.set_xlabel("对数排名")
616+
ax.set_xlabel("对数等级")
613617
ax.set_ylabel("对数规模")
614618
615619
plt.show()

0 commit comments

Comments
 (0)