Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 38 additions & 39 deletions lectures/ar1_turningpts.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,25 +18,26 @@ kernelspec:

!pip install arviz pymc
```
本讲座介绍了用于预测单变量自回归过程未来值函数的统计方法
本讲座介绍了用于预测一元自回归过程未来值函数的统计方法
Copy link
Preview

Copilot AI Sep 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The term '一元' (univariate) should be '单变量' for consistency with mathematical terminology in Chinese, as '单变量' is the more standard translation for univariate in statistical contexts.

Copilot uses AI. Check for mistakes.


这些方法旨在考虑这些统计数据的两个可能的不确定性来源
这些方法旨在考虑这些统计量的两个可能的不确定性来源
Copy link
Preview

Copilot AI Sep 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The phrase '这些统计量' (these statistics) should be '这些统计的' (these statistical) to properly modify '不确定性来源' (sources of uncertainty).

Copilot uses AI. Check for mistakes.


- 影响转换规律的随机冲击

- AR(1)过程参数值的不确定性

我们考虑两类统计量:

- 由AR(1)过程控制的随机过程{y_t}的预期值y_{t+j}
- 由AR(1)过程控制的随机过程 $\{y_t\}$的预期值 $y_{t+j}$

- 在时间t定义为未来值{y_{t+j}}_{j ≥ 1}的非线性函数的样本路径特性
- 在时间 $t$ 被定义为未来值 $\{y_{t+j}\}_{j ≥ 1}$ 的非线性函数的样本路径特性

**样本路径特性**是指诸如"到下一个转折点的时间"或"到下一次衰退的时间"之类的特征。

为研究样本路径特性,我们将使用Wecker {cite}`wecker1979predicting`推荐的模拟程序。

为了考虑参数的不确定性,我们将使用`pymc`构建未知参数的贝叶斯联合后验分布。

让我们从一些导入开始。

```{code-cell} ipython3
Expand All @@ -45,14 +46,13 @@ import arviz as az
import pymc as pmc
import matplotlib.pyplot as plt
import matplotlib as mpl
FONTPATH = "fonts/SourceHanSerifSC-SemiBold.otf"
mpl.font_manager.fontManager.addfont(FONTPATH)
plt.rcParams['font.family'] = ['Source Han Serif SC']

import seaborn as sns

sns.set_style('white')
colors = sns.color_palette()
FONTPATH = "fonts/SourceHanSerifSC-SemiBold.otf"
mpl.font_manager.fontManager.addfont(FONTPATH)
plt.rcParams['font.family'] = ['Source Han Serif SC']

import logging
logging.basicConfig()
Expand All @@ -67,60 +67,58 @@ $$
y_{t+1} = \rho y_t + \sigma \epsilon_{t+1}, \quad t \geq 0
$$ (ar1-tp-eq1)

其中标量$\rho$$\sigma$满足$|\rho| < 1$$\sigma > 0$;
$\{\epsilon_{t+1}\}$是一个均值为$0$、方差为$1$的独立同分布正态随机变量序列。
其中标量 $\rho$$\sigma$ 满足 $|\rho| < 1$$\sigma > 0$;
$\{\epsilon_{t+1}\}$ 是一个均值为 $0$、方差为 $1$ 的独立同分布正态随机变量序列。

初始条件$y_{0}$是一个已知数。
初始条件 $y_{0}$ 是一个已知数。

方程{eq}`ar1-tp-eq1`表明对于$t \geq 0$,$y_{t+1}$的条件密度为
方程{eq}`ar1-tp-eq1`表明对于 $t \geq 0$,$y_{t+1}$ 的条件密度为

$$
f(y_{t+1} | y_{t}; \rho, \sigma) \sim {\mathcal N}(\rho y_{t}, \sigma^2) \
$$ (ar1-tp-eq2)

此外,方程{eq}`ar1-tp-eq1`还表明对于$t \geq 0$,$y_{t+j}$(其中$j \geq 1$)的条件密度为
此外,方程{eq}`ar1-tp-eq1`还表明对于$t \geq 0, j \geq 1$,$y_{t+j}$ 的条件密度为

$$
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)
$$ (ar1-tp-eq3)

预测分布{eq}`ar1-tp-eq3`假设参数$\rho, \sigma$是已知的,我们表示
通过对它们进行条件化。
预测分布{eq}`ar1-tp-eq3`假设参数 $\rho, \sigma$ 是已知的,我们通过以它们为条件来表达。

我们还想计算一个不对$\rho,\sigma$进行条件化,而是考虑到它们的不确定性的预测分布。
我们还想计算一个不以 $\rho,\sigma$ 为条件,而是考虑到它们的不确定性的预测分布。

我们通过将{eq}`ar1-tp-eq3`对联合后验分布$\pi_t(\rho,\sigma | y^t)$进行积分来形成这个预测分布,该后验分布基于观测历史$y^t = \{y_s\}_{s=0}^t$
根据一个观测历史 $y^t = \{y_s\}_{s=0}^t$,我们有联合后验分布 $\pi_t(\rho,\sigma | y^t)$。我们通过对 {eq}`ar1-tp-eq3`关于 $\pi_t(\rho,\sigma | y^t)$ 进行积分来形成这个预测分布

$$
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
$$ (ar1-tp-eq4)

预测分布{eq}`ar1-tp-eq3`假设参数$(\rho,\sigma)$是已知的。
预测分布{eq}`ar1-tp-eq3`假设参数 $(\rho,\sigma)$ 是已知的。

预测分布{eq}`ar1-tp-eq4`假设参数$(\rho,\sigma)$是不确定的,但有已知的概率分布$\pi_t(\rho,\sigma | y^t )$。
预测分布{eq}`ar1-tp-eq4`假设参数 $(\rho,\sigma)$ 是不确定的,但有已知的概率分布 $\pi_t(\rho,\sigma | y^t)$。

我们还想计算一些"样本路径统计量"的预测分布,这可能包括

- 到下一次"衰退"的时间,
- 未来8个周期内Y的最小值
- 未来8个周期内 $Y$ 的最小值
- "严重衰退",以及
- 到下一个转折点(正或负)的时间。

为了在我们不确定参数值的情况下实现这一点,我们将按以下方式扩展Wecker的{cite}`wecker1979predicting`方法。
为了在我们对参数值不确定的情况下实现这一目标,我们将按以下方式扩展Wecker的{cite}`wecker1979predicting`方法。

- 首先模拟一个长度为$T_0$的初始路径;
- 对于给定的先验分布,在观察初始路径后从参数$\left(\rho,\sigma\right)$的后验联合分布中抽取大小为$N$的样本;
- 对于每个抽样$n=0,1,...,N$,用参数$\left(\rho_n,\sigma_n\right)$模拟长度为$T_1$的"未来路径",并计算我们的三个"样本路径统计量";
- 最后,将$N$个样本的所需统计量绘制为经验分布。
- 首先,模拟一个长度为$T_0$的初始路径;
- 对于给定的先验分布,在观察初始路径后从参数 $\left(\rho,\sigma\right)$ 的后验联合分布中抽取大小为 $N$ 的样本;
- 对于每个抽样 $n=0,1,...,N$,用参数 $\left(\rho_n,\sigma_n\right)$ 模拟长度为 $T_1$ 的"未来路径",并计算我们的三个"样本路径统计量";
- 最后,将 $N$ 个样本的所需统计量绘制为经验分布。

## 实现

首先,我们将模拟一个样本路径,从这个路径开始进行预测
首先,我们将模拟一个样本路径,并以此为基础进行我们的预测

除了绘制样本路径外,在假设已知真实参数值的情况下,我们将使用条件分布绘制$.9$和$.95$的覆盖区间
上述{eq}`ar1-tp-eq3`所描述的。
除了绘制样本路径外,在假设已知真实参数值的情况下,我们将使用上述{eq}`ar1-tp-eq3`所描述的条件分布绘制 $.9$ 和 $.95$ 的覆盖区间。

我们还将绘制一系列未来值序列的样本,并观察它们相对于覆盖区间的分布情况
我们还将绘制一系列未来值序列的样本,并观察它们相对于覆盖区间落在何处

```{code-cell} ipython3
def AR1_simulate(rho, sigma, y0, T):
Expand Down Expand Up @@ -184,15 +182,15 @@ plot_initial_path(initial_path)

## 路径属性的预测分布

Wecker {cite}`wecker1979predicting` 提出使用模拟技术来表征某些统计量的预测分布,这些统计量是 $y$ 的非线性函数。
Wecker {cite}`wecker1979predicting` 提出使用模拟技术来表征某些统计量的预测分布这些统计量是 $y$ 的非线性函数。

他将这些函数称为"路径属性",以区别于单个数据点的属性。
他将这些函数称为"路径属性"以区别于单个数据点的属性。

他研究了给定序列 $\{y_t\}$ 的两个特殊的前瞻性路径属性
他研究了给定序列 $\{y_t\}$ 的两个特殊的未来路径属性

第一个是**到下一个转折点的时间**。

* 他将**"转折点"**定义为 $y$ 连续两次下降中的第二个时间点。
* 他将 **"转折点"** 定义为 $y$ 连续两次下降中的第二个时间点。

为了研究这个统计量,让 $Z$ 作为一个指示过程

Expand All @@ -218,7 +216,7 @@ $$
W_t(\omega):= \inf \{ k\geq 1 \mid Z_{t+k}(\omega) = 1\}
$$

Wecker {cite}`wecker1979predicting`还研究了**未来8个季度$Y$的最小值**,可以定义为随机变量:
Wecker {cite}`wecker1979predicting`还研究了**未来8个季度 $Y$ 的最小值**可以定义为随机变量:

$$
M_t(\omega) := \min \{ Y_{t+1}(\omega); Y_{t+2}(\omega); \dots; Y_{t+8}(\omega)\}
Expand Down Expand Up @@ -271,7 +269,8 @@ $$
- "在一次或两次下降之后,$Y$ 将连续两个季度增长"

根据{cite}`wecker1979predicting`,我们可以通过模拟来计算每个时期 $t$ 的 $P_t$ 和 $N_t$ 的概率。
## 类韦克算法

## 一个类似Wecker的算法

该过程包含以下步骤:

Expand Down Expand Up @@ -392,9 +391,9 @@ def next_turning_point(omega):

return up_turn, down_turn
```
## 原始韦克方法
## 原始Wecker方法

现在我们通过模拟未来路径并计算预测分布来应用韦克的原始方法,这些预测分布以数据生成模型相关的真实参数为条件
现在我们应用Wecker的原始方法,以与数据生成模型相关的真实参数为条件,通过模拟未来路径并计算预测分布

```{code-cell} ipython3
def plot_Wecker(initial_path, N, ax):
Expand Down Expand Up @@ -458,9 +457,9 @@ plt.show()
```
## 扩展 Wecker 方法

现在我们应用基于 {eq}`ar1-tp-eq4` 定义的 $y$ 的预测密度的"扩展" Wecker 方法,该方法考虑了参数 $\rho, \sigma$ 的后验不确定性。
现在,我们应用我们的的"扩展" Wecker 方法。该方法基于 {eq}`ar1-tp-eq4` 定义的 $y$ 的预测密度,考虑了参数 $\rho, \sigma$ 的后验不确定性。

为了近似 {eq}`ar1-tp-eq4` 右侧的积分,我们每次从联合后验分布中重复抽取参数,同时从模型 {eq}`ar1-tp-eq1` 中模拟未来值序列
为了近似 {eq}`ar1-tp-eq4` 右侧的积分,我们每次从模型 {eq}`ar1-tp-eq1` 中模拟未来值序列时,都重复地从联合后验分布中抽取参数

```{code-cell} ipython3
def plot_extended_Wecker(post_samples, initial_path, N, ax):
Expand Down
Loading