@@ -18,25 +18,26 @@ kernelspec:
18
18
19
19
!pip install arviz pymc
20
20
```
21
- 本讲座介绍了用于预测单变量自回归过程未来值函数的统计方法 。
21
+ 本讲座介绍了用于预测一元自回归过程未来值函数的统计方法 。
22
22
23
- 这些方法旨在考虑这些统计数据的两个可能的不确定性来源 :
23
+ 这些方法旨在考虑这些统计量的两个可能的不确定性来源 :
24
24
25
25
- 影响转换规律的随机冲击
26
26
27
27
- AR(1)过程参数值的不确定性
28
28
29
29
我们考虑两类统计量:
30
30
31
- - 由AR(1)过程控制的随机过程{y_t}的预期值y _ {t+j}
31
+ - 由AR(1)过程控制的随机过程 $ \ { y_t\} $的预期值 $y _ {t+j}$
32
32
33
- - 在时间t定义为未来值 {y_ {t+j}}_ {j ≥ 1}的非线性函数的样本路径特性
33
+ - 在时间 $t$ 被定义为未来值 $ \ { y_ {t+j}\ }_ {j ≥ 1}$ 的非线性函数的样本路径特性
34
34
35
35
** 样本路径特性** 是指诸如"到下一个转折点的时间"或"到下一次衰退的时间"之类的特征。
36
36
37
37
为研究样本路径特性,我们将使用Wecker {cite}` wecker1979predicting ` 推荐的模拟程序。
38
38
39
39
为了考虑参数的不确定性,我们将使用` pymc ` 构建未知参数的贝叶斯联合后验分布。
40
+
40
41
让我们从一些导入开始。
41
42
42
43
``` {code-cell} ipython3
67
68
y_{t+1} = \rho y_t + \sigma \epsilon_{t+1}, \quad t \geq 0
68
69
$$ (ar1-tp-eq1)
69
70
70
- 其中标量$\rho$和 $\sigma$满足 $|\rho| < 1$和 $\sigma > 0$;
71
- $\{\epsilon_{t+1}\}$是一个均值为$0$、方差为$1$的独立同分布正态随机变量序列。
71
+ 其中标量 $\rho$ 和 $\sigma$ 满足 $|\rho| < 1$ 和 $\sigma > 0$;
72
+ $\{\epsilon_{t+1}\}$ 是一个均值为 $0$、方差为 $1$ 的独立同分布正态随机变量序列。
72
73
73
- 初始条件$y_{0}$是一个已知数。
74
+ 初始条件 $y_{0}$ 是一个已知数。
74
75
75
- 方程{eq}`ar1-tp-eq1`表明对于$t \geq 0$,$y_{t+1}$的条件密度为
76
+ 方程{eq}`ar1-tp-eq1`表明对于 $t \geq 0$,$y_{t+1}$ 的条件密度为
76
77
77
78
$$
78
79
f(y_ {t+1} | y_ {t}; \rho, \sigma) \sim {\mathcal N}(\rho y_ {t}, \sigma^2) \
79
80
$$ (ar1-tp-eq2)
80
81
81
- 此外,方程{eq}`ar1-tp-eq1`还表明对于$t \geq 0$,$y_{t+j}$(其中$j \geq 1$) 的条件密度为
82
+ 此外,方程{eq}`ar1-tp-eq1`还表明对于$t \geq 0, j \geq 1 $,$y_{t+j}$ 的条件密度为
82
83
83
84
$$
84
85
f(y_ {t+j} | y_ {t}; \rho, \sigma) \sim {\mathcal N}\left(\rho^j y_ {t}, \sigma^2 \frac{1 - \rho^{2j}}{1 - \rho^2} \right)
85
86
$$ (ar1-tp-eq3)
86
87
87
- 预测分布{eq}`ar1-tp-eq3`假设参数$\rho, \sigma$是已知的,我们表示
88
- 通过对它们进行条件化。
88
+ 预测分布{eq}`ar1-tp-eq3`假设参数 $\rho, \sigma$ 是已知的,我们通过以它们为条件来表达。
89
89
90
- 我们还想计算一个不对 $\rho,\sigma$进行条件化 ,而是考虑到它们的不确定性的预测分布。
90
+ 我们还想计算一个不以 $\rho,\sigma$ 为条件 ,而是考虑到它们的不确定性的预测分布。
91
91
92
- 我们通过将{ eq}`ar1-tp-eq3`对联合后验分布 $\pi_t(\rho,\sigma | y^t)$进行积分来形成这个预测分布,该后验分布基于观测历史$y^t = \{y_s\}_{s=0}^t$ :
92
+ 根据一个观测历史 $y^t = \{y_s\}_{s=0}^t$,我们有联合后验分布 $\pi_t(\rho,\sigma | y^t)$。我们通过对 { eq}`ar1-tp-eq3`关于 $\pi_t(\rho,\sigma | y^t)$ 进行积分来形成这个预测分布 :
93
93
94
94
$$
95
95
f(y_ {t+j} | y^t) = \int f(y_ {t+j} | y_ {t}; \rho, \sigma) \pi_t(\rho,\sigma | y^t ) d \rho d \sigma
96
96
$$ (ar1-tp-eq4)
97
97
98
- 预测分布{eq}`ar1-tp-eq3`假设参数$(\rho,\sigma)$是已知的。
98
+ 预测分布{eq}`ar1-tp-eq3`假设参数 $(\rho,\sigma)$ 是已知的。
99
99
100
- 预测分布{eq}`ar1-tp-eq4`假设参数$(\rho,\sigma)$是不确定的,但有已知的概率分布$\pi_t(\rho,\sigma | y^t )$。
100
+ 预测分布{eq}`ar1-tp-eq4`假设参数 $(\rho,\sigma)$ 是不确定的,但有已知的概率分布 $\pi_t(\rho,\sigma | y^t)$。
101
101
102
102
我们还想计算一些"样本路径统计量"的预测分布,这可能包括
103
103
104
104
- 到下一次"衰退"的时间,
105
- - 未来8个周期内Y的最小值 ,
105
+ - 未来8个周期内 $Y$ 的最小值 ,
106
106
- "严重衰退",以及
107
107
- 到下一个转折点(正或负)的时间。
108
108
109
- 为了在我们不确定参数值的情况下实现这一点 ,我们将按以下方式扩展Wecker的{cite}`wecker1979predicting`方法。
109
+ 为了在我们对参数值不确定的情况下实现这一目标 ,我们将按以下方式扩展Wecker的{cite}`wecker1979predicting`方法。
110
110
111
- - 首先模拟一个长度为 $T_0$的初始路径;
112
- - 对于给定的先验分布,在观察初始路径后从参数$\left(\rho,\sigma\right)$的后验联合分布中抽取大小为$N$的样本;
113
- - 对于每个抽样$n=0,1,...,N$,用参数$\left(\rho_n,\sigma_n\right)$模拟长度为$T_1$的"未来路径",并计算我们的三个"样本路径统计量";
114
- - 最后,将$N$个样本的所需统计量绘制为经验分布。
111
+ - 首先,模拟一个长度为 $T_0$的初始路径;
112
+ - 对于给定的先验分布,在观察初始路径后从参数 $\left(\rho,\sigma\right)$ 的后验联合分布中抽取大小为 $N$ 的样本;
113
+ - 对于每个抽样 $n=0,1,...,N$,用参数 $\left(\rho_n,\sigma_n\right)$ 模拟长度为 $T_1$ 的"未来路径",并计算我们的三个"样本路径统计量";
114
+ - 最后,将 $N$ 个样本的所需统计量绘制为经验分布。
115
115
116
116
## 实现
117
117
118
- 首先,我们将模拟一个样本路径,从这个路径开始进行预测 。
118
+ 首先,我们将模拟一个样本路径,并以此为基础进行我们的预测 。
119
119
120
- 除了绘制样本路径外,在假设已知真实参数值的情况下,我们将使用条件分布绘制$.9$和$.95$的覆盖区间
121
- 上述{eq}`ar1-tp-eq3`所描述的。
120
+ 除了绘制样本路径外,在假设已知真实参数值的情况下,我们将使用上述{eq}`ar1-tp-eq3`所描述的条件分布绘制 $.9$ 和 $.95$ 的覆盖区间。
122
121
123
- 我们还将绘制一系列未来值序列的样本,并观察它们相对于覆盖区间的分布情况 。
122
+ 我们还将绘制一系列未来值序列的样本,并观察它们相对于覆盖区间落在何处 。
124
123
125
124
```{code-cell} ipython3
126
125
def AR1_simulate(rho, sigma, y0, T):
@@ -184,11 +183,11 @@ plot_initial_path(initial_path)
184
183
185
184
## 路径属性的预测分布
186
185
187
- Wecker {cite}`wecker1979predicting` 提出使用模拟技术来表征某些统计量的预测分布, 这些统计量是 $y$ 的非线性函数。
186
+ Wecker {cite}`wecker1979predicting` 提出使用模拟技术来表征某些统计量的预测分布, 这些统计量是 $y$ 的非线性函数。
188
187
189
- 他将这些函数称为"路径属性", 以区别于单个数据点的属性。
188
+ 他将这些函数称为"路径属性", 以区别于单个数据点的属性。
190
189
191
- 他研究了给定序列 $\{y_t\}$ 的两个特殊的前瞻性路径属性 。
190
+ 他研究了给定序列 $\{y_t\}$ 的两个特殊的未来路径属性 。
192
191
193
192
第一个是**到下一个转折点的时间**。
194
193
218
217
W_t(\omega):= \inf \{ k\geq 1 \mid Z_ {t+k}(\omega) = 1\}
219
218
$$
220
219
221
- Wecker {cite}`wecker1979predicting`还研究了**未来8个季度$Y$的最小值**, 可以定义为随机变量:
220
+ Wecker {cite}`wecker1979predicting`还研究了**未来8个季度 $Y$ 的最小值**, 可以定义为随机变量:
222
221
223
222
$$
224
223
M_t(\omega) := \min \{ Y_ {t+1}(\omega); Y_ {t+2}(\omega); \dots; Y_ {t+8}(\omega)\}
271
270
- "在一次或两次下降之后,$Y$ 将连续两个季度增长"
272
271
273
272
根据{cite}`wecker1979predicting`,我们可以通过模拟来计算每个时期 $t$ 的 $P_t$ 和 $N_t$ 的概率。
274
- ## 类韦克算法
273
+
274
+ ## 一个类似Wecker的算法
275
275
276
276
该过程包含以下步骤:
277
277
@@ -392,9 +392,9 @@ def next_turning_point(omega):
392
392
393
393
return up_turn, down_turn
394
394
```
395
- ## 原始韦克方法
395
+ ## 原始Wecker方法
396
396
397
- 现在我们通过模拟未来路径并计算预测分布来应用韦克的原始方法,这些预测分布以数据生成模型相关的真实参数为条件 。
397
+ 现在我们应用Wecker的原始方法,以与数据生成模型相关的真实参数为条件,通过模拟未来路径并计算预测分布 。
398
398
399
399
```{code-cell} ipython3
400
400
def plot_Wecker(initial_path, N, ax):
@@ -458,9 +458,9 @@ plt.show()
458
458
```
459
459
## 扩展 Wecker 方法
460
460
461
- 现在我们应用基于 {eq}`ar1-tp-eq4` 定义的 $y$ 的预测密度的"扩展" Wecker 方法,该方法考虑了参数 $\rho, \sigma$ 的后验不确定性。
461
+ 现在,我们应用我们的的"扩展" Wecker 方法。该方法基于 {eq}`ar1-tp-eq4` 定义的 $y$ 的预测密度,考虑了参数 $\rho, \sigma$ 的后验不确定性。
462
462
463
- 为了近似 {eq}`ar1-tp-eq4` 右侧的积分,我们每次从联合后验分布中重复抽取参数,同时从模型 {eq}`ar1-tp-eq1` 中模拟未来值序列 。
463
+ 为了近似 {eq}`ar1-tp-eq4` 右侧的积分,我们每次从模型 {eq}`ar1-tp-eq1` 中模拟未来值序列时,都重复地从联合后验分布中抽取参数 。
464
464
465
465
```{code-cell} ipython3
466
466
def plot_extended_Wecker(post_samples, initial_path, N, ax):
0 commit comments