@@ -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)可在 [这里](https://jax.quantecon.org/wealth_dynamics.html)找到
27+ 本讲座的 `GPU`版本可在 [这里](https://jax.quantecon.org/wealth_dynamics.html)找到
2828```
2929
3030除了Anaconda中已有的库外,本讲座还需要以下库:
@@ -38,38 +38,36 @@ tags: [hide-output]
3838
3939## 概述
4040
41- 本笔记介绍了财富分配动态,重点关注
41+ 本课程介绍了财富分布动态,在本讲中,我们
4242
43- * 通过模拟建模和计算财富分配 ,
44- * 不平等的衡量指标 ,如洛伦兹曲线和基尼系数,以及
45- * 工资收入和资产回报的特性如何影响不平等 。
43+ * 通过模拟建模和计算财富分布 ,
44+ * 介绍不平等的衡量指标 ,如洛伦兹曲线和基尼系数
45+ * 以及探究工资收入和资产回报的特性如何影响不平等 。
4646
47- 我们讨论的财富分配的一个有趣特性是帕累托尾部 。
47+ 我们这里讨论的财富分布,有一个有趣的特性是帕累托尾 。
4848
49- 许多国家的财富分配都表现出帕累托尾部
49+ 许多国家的财富分布都表现出帕累托尾
5050
51- * 参见{doc}` 本讲座<intro:heavy_tails> ` 获取定义 。
52- * 关于实证证据的综述 ,请参见{cite}` benhabib2018skewed ` 。
51+ * 参见{doc}` 本讲座<intro:heavy_tails> ` 中的定义 。
52+ * 关于相关实证证据的综述 ,请参见{cite}` benhabib2018skewed ` 。
5353
54- 这与最富有家庭中的财富高度集中是一致的 。
54+ 这与现实中,财富高度集中在最富有的一部分家庭的情况一致 。
5555
56- 这也为我们提供了一种通过尾部指数来量化这种集中度的方法 。
56+ 这一特性也为我们提供了一种量化这种集中度的方法:通过尾部指数 。
5757
58- 一个值得关注的问题是,我们是否能从一个相对简单的模型中复制出帕累托尾部 。
58+ 一个值得关注的问题是,我们是否能从一个相对简单的模型中复现出帕累托尾部 。
5959
6060### 关于假设的说明
6161
62- 任何给定家庭的财富演变取决于其
62+ 任何给定家庭的财富变动取决于其储蓄行为。
6363
64- 储蓄行为 。
64+ 对这种储蓄行为的建模将成为本系列讲座的要点 。
6565
66- 对这种行为的建模将成为本系列讲座的重要组成部分 。
66+ 然而,在本次讲座中,我们假设相对简单(但合理)的储蓄规则就足够 。
6767
68- 然而,在本次讲座中,我们将满足于相对随意(但合理)的储蓄规则 。
68+ 我们这样做是为了探索不同收入动态和投资回报规格的影响 。
6969
70- 我们这样做是为了更容易探索不同收入动态和投资回报规格的影响。
71-
72- 同时,这里讨论的所有技术都可以应用到使用优化来获得储蓄规则的模型中。
70+ 同时,这里讨论的所有技术都可以应用到基于优化来获得储蓄规则的模型中。
7371
7472我们将使用以下导入。
7573
@@ -80,7 +78,7 @@ FONTPATH = "fonts/SourceHanSerifSC-SemiBold.otf"
8078mpl.font_manager.fontManager.addfont(FONTPATH)
8179plt.rcParams['font.family'] = ['Source Han Serif SC']
8280
83- plt.rcParams["figure.figsize"] = (11, 5) #set default figure size
81+ plt.rcParams["figure.figsize"] = (11, 5) # 设置默认图形大小
8482import numpy as np
8583import quantecon as qe
8684from numba import jit, float64, prange
@@ -97,15 +95,13 @@ from numba.experimental import jitclass
9795
9896上面已经导入的[ QuantEcon.py] ( https://github.com/QuantEcon/QuantEcon.py ) 包含了计算洛伦兹曲线的函数。
9997
100- 举例说明,假设:
98+ 举例说明,假设以下数据代表了10,000个家庭的财富分布
10199
102100``` {code-cell} ipython3
103101n = 10_000 # 样本大小
104- w = np.exp(np.random.randn(n)) # 对数正态分布抽样
102+ w = np.exp(np.random.randn(n)) # 生成对数正态分布的随机样本
105103```
106104
107- 数据代表了10,000个家庭的财富分布。
108-
109105我们可以按如下方式计算并绘制洛伦兹曲线:
110106
111107``` {code-cell} ipython3
@@ -118,7 +114,7 @@ ax.legend()
118114plt.show()
119115```
120116
121- 这条曲线可以这样理解:如果点$(x,y)$位于曲线上,这意味着最底层$(100x)\% $的人口collectively拥有 $(100y)\% $的财富。
117+ 这条曲线可以这样理解:如果点$(x,y)$位于曲线上,这意味着最底层$(100x)\% $的人口拥有 $(100y)\% $的财富。
122118
123119"平等"线是45度线(在图中可能不完全是45度,这取决于图形的纵横比)。
124120
@@ -128,20 +124,20 @@ plt.show()
128124
129125例如,最底层80%的人口拥有大约40%的总财富。
130126
131- 这里是另一个例子 ,展示了当底层分布发生变化时洛伦兹曲线如何移动。
127+ 这里有另一个例子 ,展示了当底层分布发生变化时洛伦兹曲线如何移动。
132128
133129我们使用帕累托分布和一系列参数生成10,000个观测值,然后计算对应于每组观测值的洛伦兹曲线。
134130
135131``` {code-cell} ipython3
136- a_vals = (1, 2, 5) # Pareto尾部指数
132+ a_vals = (1, 2, 5) # 帕累托分布的尾部指数
137133n = 10_000 # 每个样本的大小
138134fig, ax = plt.subplots()
139135for a in a_vals:
140136 u = np.random.uniform(size=n)
141137 y = u**(-1/a) # 服从尾部指数为a的帕累托分布
142138 f_vals, l_vals = qe.lorenz_curve(y)
143139 ax.plot(f_vals, l_vals, label=f'$a = {a}$')
144- ax.plot(f_vals, f_vals, label='equality ')
140+ ax.plot(f_vals, f_vals, label='平等 ')
145141ax.legend()
146142plt.show()
147143```
@@ -152,7 +148,7 @@ plt.show()
152148
153149### 基尼系数
154150
155- 基尼系数的定义和解释可以在相应的[ 维基百科页面 ] ( https://en.wikipedia.org/wiki/Gini_coefficient ) 上找到。
151+ 基尼系数的定义和解释可以在相应的[ 百科页面 ] ( https://baike.baidu.com/item/%E5%9F%BA%E5%B0%BC%E7%B3%BB%E6%95%B0/88365 ) 上找到。
156152
1571530值表示完全平等(对应洛伦兹曲线与45度线重合的情况),1值表示完全不平等(所有财富都由最富有的家庭持有)。
158154
@@ -177,19 +173,19 @@ for a in a_vals:
177173 y = np.random.weibull(a, size=n)
178174 ginis.append(qe.gini_coefficient(y))
179175 ginis_theoretical.append(1 - 2**(-1/a))
180- ax.plot(a_vals, ginis, label='estimated gini coefficient ')
181- ax.plot(a_vals, ginis_theoretical, label='theoretical gini coefficient ')
176+ ax.plot(a_vals, ginis, label='基尼系数估值 ')
177+ ax.plot(a_vals, ginis_theoretical, label='基尼系数理论值 ')
182178ax.legend()
183- ax.set_xlabel("Weibull parameter $a$")
184- ax.set_ylabel("Gini coefficient ")
179+ ax.set_xlabel("韦伯分布参数 $a$")
180+ ax.set_ylabel("基尼系数 ")
185181plt.show()
186182```
187183
188184模拟结果显示拟合效果良好。
189185
190186## 财富动态模型
191187
192- 在讨论了不平等度量之后,让我们现在转向财富动态 。
188+ 在讨论了不平等的度量方法后,我们转向财富动态 。
193189
194190我们要研究的模型是
195191
@@ -201,9 +197,9 @@ w_{t+1} = (1 + r_{t+1}) s(w_t) + y_{t+1}
201197
202198其中
203199
204- - $w_t$ 是某个家庭在t时刻的财富 ,
205- - $r_t$ 是金融资产的收益率 ,
206- - $y_t$ 是当前非金融(如劳动 )收入,
200+ - $w_t$ 是某个家庭在t时刻持有的财富 ,
201+ - $r_t$ 是金融资产t时刻的收益率 ,
202+ - $y_t$ 是当前非金融(如,劳动 )收入,
207203- $s(w_t)$ 是当前财富减去消费后的净值
208204
209205令 $\{ z_t\} $ 为具有以下形式的相关状态过程:
228224
229225$c_r$ 的值应该接近于零,因为资产收益率不会表现出较大的趋势。
230226
231- 当我们模拟家庭人口时,我们假设所有冲击都是特殊性的 (即,特定于个别家庭且彼此之间相互独立)。
227+ 当我们模拟家庭人口时,我们假设所有冲击都是特质的 (即,特定于个别家庭且彼此之间相互独立)。
232228
233229关于储蓄函数$s$,我们的默认模型将是
234230
@@ -269,7 +265,7 @@ wealth_dynamics_data = [
269265]
270266```
271267
272- 这是一个存储实例数据并实现更新总体状态和家庭财富方法的类 。
268+ 下面是一个类,用于存储模型参数并实现更新总体状态和家庭财富的方法 。
273269
274270``` {code-cell} ipython3
275271
@@ -326,7 +322,7 @@ class WealthDynamics:
326322 w_hat, s_0, c_y, μ_y, σ_y, c_r, μ_r, σ_r, a, b, σ_z = params
327323 zp = a * z + b + σ_z * np.random.randn()
328324
329- # 更新财富
325+ # 更新财富值
330326 y = c_y * np.exp(zp) + np.exp(μ_y + σ_y * np.random.randn())
331327 wp = y
332328 if w >= w_hat:
@@ -335,7 +331,7 @@ class WealthDynamics:
335331 return wp, zp
336332```
337333
338- 这是一个用于模拟单个家庭财富时间序列的函数 。
334+ 以下是一个用于模拟单个家庭财富时间序列的函数 。
339335
340336``` {code-cell} ipython3
341337
@@ -360,9 +356,9 @@ def wealth_time_series(wdy, w_0, n):
360356 return w
361357```
362358
363- 以下是模拟一组家庭财富随时间变化的函数 。
359+ 下面是模拟一组家庭财富随时间变化的函数 。
364360
365- 注意使用并行化来加快计算速度 。
361+ 我们使用并行计算来加快计算速度 。
366362
367363``` {code-cell} ipython3
368364
@@ -371,12 +367,12 @@ def update_cross_section(wdy, w_distribution, shift_length=500):
371367 """
372368 将一组家庭的横截面数据在时间上向前推移
373369
374- * wdy: WealthDynamics的实例
375- * w_distribution: array_like, 表示当前的横截面分布
370+ * wdy: WealthDynamics的一个实例
371+ * w_distribution: array_like, 表示当前的截面分布
376372
377- 接收当前财富值分布w_distribution作为输入
373+ 接收当前家庭财富值分布作为w_distribution的输入
378374 并将每个w_t更新为w_{t+j},其中
379- j = shift_length。
375+ j = shift_length。(步长)
380376
381377 返回新的分布。
382378
@@ -393,11 +389,11 @@ def update_cross_section(wdy, w_distribution, shift_length=500):
393389 return new_distribution
394390```
395391
396- 在上述函数中,并行化非常有效 ,因为一旦已知总体状态的路径,每个家庭的时间路径就可以独立计算。
392+ 在上述函数中,并行化非常高效 ,因为一旦已知总体状态的路径,每个家庭的时间路径就可以独立计算。
397393
398394## 应用
399395
400- 让我们尝试在不同参数值下模拟该模型,并研究其对财富分配的影响 。
396+ 让我们尝试在不同参数值下模拟该模型,并研究其对财富分布的影响 。
401397
402398### 时间序列
403399
@@ -428,7 +424,7 @@ plt.show()
428424``` {code-cell} ipython3
429425def generate_lorenz_and_gini(wdy, num_households=100_000, T=500):
430426 """
431- 通过将num_households向前模拟到时间T ,生成与WealthDynamics模型
427+ 通过将num_households个家庭向前模拟到时间T ,生成与WealthDynamics模型
432428 相对应的洛伦兹曲线数据和基尼系数。
433429 """
434430 ψ_0 = np.full(num_households, wdy.y_mean)
@@ -438,7 +434,7 @@ def generate_lorenz_and_gini(wdy, num_households=100_000, T=500):
438434 return qe.gini_coefficient(ψ_star), qe.lorenz_curve(ψ_star)
439435```
440436
441- 现在我们研究随着储蓄回报率的变化,财富分配的洛伦兹曲线如何变化 。
437+ 现在我们研究随着储蓄回报率的变化,财富分布的洛伦兹曲线如何变化 。
442438
443439下面的代码绘制了三个不同 $\mu_r$ 值对应的洛伦兹曲线。
444440
@@ -461,7 +457,7 @@ for μ_r in μ_r_vals:
461457 ax.plot(f_vals, l_vals, label=fr'$\psi^*$ at $\mu_r = {μ_r:0.2}$')
462458 gini_vals.append(gv)
463459
464- ax.plot(f_vals, f_vals, label='equality ')
460+ ax.plot(f_vals, f_vals, label='平等 ')
465461ax.legend(loc="upper left")
466462plt.show()
467463```
@@ -472,19 +468,19 @@ plt.show()
472468
473469由于代码经过高效的JIT编译并完全并行化,如果不更改硬件,几乎不可能让这些任务序列运行得更快。
474470
475- 现在让我们检查基尼系数 。
471+ 现在让我们看一看基尼系数 。
476472
477473``` {code-cell} ipython3
478474fig, ax = plt.subplots()
479- ax.plot(μ_r_vals, gini_vals, label='gini coefficient ')
475+ ax.plot(μ_r_vals, gini_vals, label='基尼系数 ')
480476ax.set_xlabel(r"$\mu_r$")
481477ax.legend()
482478plt.show()
483479```
484480
485481我们再次看到,随着金融收入回报的增加,不平等程度也在上升。
486482
487- 让我们通过研究改变金融回报的波动率项$\sigma_r$时会发生什么来结束本节 。
483+ 最后, 让我们通过研究改变金融回报的波动率项$\sigma_r$时会发生什么 。
488484
489485``` {code-cell} ipython3
490486%%time
@@ -499,7 +495,7 @@ for σ_r in σ_r_vals:
499495 ax.plot(f_vals, l_vals, label=fr'$\psi^*$ at $\sigma_r = {σ_r:0.2}$')
500496 gini_vals.append(gv)
501497
502- ax.plot(f_vals, f_vals, label='equality ')
498+ ax.plot(f_vals, f_vals, label='平等 ')
503499ax.legend(loc="upper left")
504500plt.show()
505501```
@@ -515,9 +511,9 @@ plt.show()
515511
516512事实上,可以证明帕累托分布的基尼系数,当尾部指数为$a$时,等于$1/(2a - 1)$。
517513
518- 请尽可能通过模拟来验证这一点 。
514+ 请尽可能通过代码模拟来验证这一点 。
519515
520- 具体来说,绘制一个图表,展示基尼系数与尾部指数的关系, 同时使用上述理论值和通过`qe.gini_coefficient`从样本计算得出的值 。
516+ 具体来说,绘制一个图表,同时使用上述理论值和通过`qe.gini_coefficient`从样本中计算得出的值,来展示基尼系数与尾部指数的关系 。
521517
522518对于尾部指数的值,使用`a_vals = np.linspace(1, 10, 25)`。
523519
@@ -530,19 +526,19 @@ plt.show()
530526:class: dropdown
531527```
532528
533- 这是一个解决方案 ,它在理论和模拟之间产生了很好的匹配。
529+ 这是一个解法 ,它在理论和模拟之间产生了很好的匹配。
534530
535531``` {code-cell} ipython3
536- a_vals = np.linspace(1, 10, 25) # Pareto尾部指数
532+ a_vals = np.linspace(1, 10, 25) # 帕累托尾部指数
537533ginis = np.empty_like(a_vals)
538534
539535n = 1000 # 每个样本的大小
540536fig, ax = plt.subplots()
541537for i, a in enumerate(a_vals):
542538 y = np.random.uniform(size=n)**(-1/a)
543539 ginis[i] = qe.gini_coefficient(y)
544- ax.plot(a_vals, ginis, label='sampled ')
545- ax.plot(a_vals, 1/(2*a_vals - 1), label='theoretical ')
540+ ax.plot(a_vals, ginis, label='抽样值 ')
541+ ax.plot(a_vals, 1/(2*a_vals - 1), label='理论值 ')
546542ax.legend()
547543plt.show()
548544```
@@ -551,7 +547,7 @@ plt.show()
551547
552548这意味着财富的极端值较少,因此更加平等。
553549
554- 更多的平等转化为较低的基尼系数 。
550+ 更大程度的平等转化为更低的基尼系数 。
555551
556552``` {solution-end}
557553```
@@ -560,7 +556,7 @@ plt.show()
560556:label: wd_ex2
561557```
562558
563- 财富过程 {eq}` wealth_dynam_ah ` 类似于 {doc}` Kesten过程<kesten_processes> ` 。
559+ {eq}` wealth_dynam_ah ` 中介绍的财富过程类似于 {doc}` Kesten过程<kesten_processes> ` 。
564560
565561这是因为,根据{eq}` sav_ah ` ,在所有高于$\hat w$的财富水平上,储蓄是恒定的。
566562
@@ -606,14 +602,14 @@ z_0 = wdy.z_mean
606602ψ_star = update_cross_section(wdy, ψ_0, shift_length=T)
607603```
608604
609- 现在让我们看看等级 -规模图:
605+ 现在让我们看看排名 -规模图:
610606
611607``` {code-cell} ipython3
612608fig, ax = plt.subplots()
613609
614610rank_data, size_data = qe.rank_size(ψ_star, c=0.001)
615611ax.loglog(rank_data, size_data, 'o', markersize=3.0, alpha=0.5)
616- ax.set_xlabel("对数等级 ")
612+ ax.set_xlabel("对数排名 ")
617613ax.set_ylabel("对数规模")
618614
619615plt.show()
@@ -622,3 +618,4 @@ plt.show()
622618``` {solution-end}
623619```
624620
621+
0 commit comments