@@ -21,9 +21,6 @@ kernelspec:
2121
2222# 库存动态
2323
24- ``` {index} single: 马尔可夫过程, 库存
25- ```
26-
2724``` {contents} 目录
2825:depth: 2
2926```
@@ -32,14 +29,14 @@ kernelspec:
3229
3330在本讲座中,我们将研究企业的库存时间路径,其遵循所谓的s-S库存动态。
3431
35- 这些企业
32+ 这些企业遵循以下补货规则:
3633
37- 1 . 等待直到库存下降至某个水平 $s$以下,然后
38- 2 . 订购足够数量的产品,将库存补充到容量 $S$。
34+ 1 . 当库存水平下降至某个临界值 $s$以下时,
35+ 2 . 企业会订购足够数量的产品,将库存补充到目标水平 $S$。
3936
4037这种管理库存的方式在实践中很常见,并且在某些情况下也是最优的。
4138
42- 早期文献和其宏观经济影响可以在 {cite}` caplin1985variability ` 中找到。
39+ 早期文献和其对宏观经济的影响可以在 {cite}` caplin1985variability ` 中找到。
4340
4441我们的本节的目标是学习更多关于模拟、时间序列和马尔可夫动态的知识。
4542
@@ -62,7 +59,7 @@ from numba.experimental import jitclass
6259
6360## 样本路径
6461
65- 假设有一个公司,拥有库存 $X_t$ 。
62+ 假设有一个公司,拥有库存 $X_t$。
6663
6764当库存 $X_t \leq s$ 时,公司会补货至 $S$ 单位。
6865
@@ -152,7 +149,7 @@ ax.legend(**legend_args)
152149plt.show()
153150```
154151
155- 现在让我们模拟多条路径,以便更全面地了解不同结果的概率 :
152+ 现在让我们模拟多条路径,这样可以更好地了解库存动态的整体行为和可能的库存分布 :
156153
157154``` {code-cell} ipython3
158155sim_length=200
@@ -178,7 +175,7 @@ plt.show()
178175
179176通过这些 $X_T$ 的样本,我们可以构建其分布 $\psi_T$ 的图像。
180177
181- 下面是$T=50$的情况下,一个可视化示例 。
178+ 下面是$T=50$的情况下的一个可视化示例 。
182179
183180``` {code-cell} ipython3
184181T = 50
@@ -250,7 +247,7 @@ plt.show()
250247
251248核密度估计可以被理解为平滑的直方图。
252249
253- 当被估计的分布很可能是平滑的时候,核密度估计比直方图更可取 。
250+ 当我们认为底层分布是平滑的时候,核密度估计通常比直方图提供更准确的图像 。
254251
255252我们将使用[ scikit-learn] ( https://scikit-learn.org/stable/ ) 中的核密度估计量
256253
@@ -273,7 +270,7 @@ plot_kde(sample, ax)
273270plt.show()
274271```
275272
276- 概率质量的分配与上面直方图所显示的类似 。
273+ 概率密度的分配与上面直方图所显示的类似 。
277274
278275## 练习
279276
@@ -294,18 +291,18 @@ plt.show()
294291
295292你应该能看到收敛性,体现在两个连续分布之间的差异越来越小。
296293
297- 尝试不同的初始条件来验证,长期来看,不同初始条件下分布是不变的 。
294+ 尝试使用不同的初始条件来验证,无论从哪个初始状态开始,长期分布都会收敛到相同的平稳分布 。
298295```
299296
300297``` {solution-start} id_ex1
301298:class: dropdown
302299```
303300
304- 以下是一种可能的解法 :
301+ 以下是其中一种解法 :
305302
306- 因为其中的计算涉及大量的CPU周期,所以我们试图更高效地编写代码 。
303+ 由于这个计算需要大量的计算资源,我们需要编写更高效的代码 。
307304
308- 也就是编写一个专门的函数,而不是使用上面的类 。
305+ 为此,我们将创建一个专门的函数来替代之前使用的类,以提高计算效率 。
309306
310307``` {code-cell} ipython3
311308s, S, mu, sigma = firm.s, firm.S, firm.mu, firm.sigma
@@ -354,23 +351,23 @@ ax.legend()
354351plt.show()
355352```
356353
357- 注意到,在 $t=500$ 或 $t=750$ 时密度几乎不再变化 。
354+ 从图中可以看出,随着时间的推移,分布逐渐收敛到一个稳定状态 。
358355
359- 我们得到了平稳密度的合理近似 。
356+ 在 t=500 和 t=750 时的分布几乎完全重合,表明我们已经得到了平稳密度的良好近似 。
360357
361358你可以通过测试多个不同的初始条件,来确定初始条件确实不重要。
362359
363- 例如,尝试用所有公司从 $X_0 = 20$ 或 $X_0 = 80$ 开始重新运行上面的代码 。
360+ 例如,你可以尝试将所有公司的初始库存设置为 $X_0 = 20$ 或 $X_0 = 80$,然后重新运行上面的代码,观察分布最终是否收敛到相同的稳态分布 。
364361
365362``` {solution-end}
366363```
367364
368365``` {exercise}
369366:label: id_ex2
370367
371- 使用模拟的方式,计算从 $X_0 = 70$ 开始的公司在前50个周期内需要订货两次或更多的概率 。
368+ 使用模拟的方法,估计一家初始库存为 $X_0 = 70$ 的公司在前50个时期内至少需要补充库存两次的概率 。
372369
373- 你需要一个较大的样本量来获得准确的结果 。
370+ 为了获得统计上可靠的结果,请确保使用足够大的样本量 。
374371```
375372
376373``` {solution-start} id_ex2
@@ -381,7 +378,7 @@ plt.show()
381378
382379同样地,由于计算量相对较大,我们编写了一个专门的函数而不是使用上面的类。
383380
384- 我们还将使用跨公司的并行化处理 。
381+ 我们将利用并行计算来同时处理多家公司的模拟,以提高计算效率 。
385382
386383``` {code-cell} ipython3
387384@jit(parallel=True)
@@ -416,11 +413,11 @@ freq = compute_freq()
416413print(f"至少发生两次缺货的频率 = {freq}")
417414```
418415
419- 尝试将上面jitted函数中的 ` parallel ` 标志改为 ` False ` 。
416+ 尝试将上面 ` @jit ` [ 装饰器 ] ( https://zhuanlan.zhihu.com/p/53666925 ) 中的 ` parallel ` 参数改为 ` False ` 。
420417
421418根据你的系统配置,运行速度的差异可能会很大。
422419
423- (在台式机上,速度提升了5倍。 )
420+ (在我们的系统上运行速度提升了5倍! )
424421
425422``` {solution-end}
426423```
0 commit comments