Skip to content

Commit 67b7391

Browse files
committed
Update var_dmd
update the first half of the translation
1 parent 392611c commit 67b7391

File tree

1 file changed

+65
-66
lines changed

1 file changed

+65
-66
lines changed

lectures/var_dmd.md

Lines changed: 65 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -4,54 +4,54 @@ jupytext:
44
extension: .md
55
format_name: myst
66
format_version: 0.13
7-
jupytext_version: 1.10.3
7+
jupytext_version: 1.16.7
88
kernelspec:
9-
display_name: Python 3
9+
display_name: Python 3 (ipykernel)
1010
language: python
1111
name: python3
1212
---
1313

1414
# 向量自回归和动态模态分解
1515

16-
本讲座应用我们在 {doc}`奇异值分解 <svd_intro>` 讲座中学到的计算方法来研究
16+
本节讲座中,我们将应用在 {doc}`奇异值分解 <svd_intro>` 中学到的计算方法来研究
1717

1818
* 一阶向量自回归(VARs)
1919
* 动态模态分解(DMDs)
20-
* DMDs和一阶VARs之间的联系
20+
* 一阶向量自回归和动态模态分解之间的联系
2121

2222
## 一阶向量自回归
2323

24-
我们要拟合一个**一阶向量自回归**
24+
我们想要拟合一个**一阶向量自回归**
2525

2626
$$
2727
X_{t+1} = A X_t + C \epsilon_{t+1}, \quad \epsilon_{t+1} \perp X_t
2828
$$ (eq:VARfirstorder)
2929
30-
其中 $\epsilon_{t+1}$ 是一个独立同分布的 $m \times 1$ 随机向量序列的时间 $t+1$ 分量,该序列具有零均值向量和单位协方差矩阵,而 $ m \times 1 $ 向量 $ X_t $
30+
其中$\epsilon_{t+1}$ 是一个独立同分布的随机向量序列 $m \times 1$ 在时间$t+1$ 的分量,且该序列有零均值向量和单位协方差矩阵;而 $ m \times 1 $ 的向量 $ X_t $
3131
3232
$$
3333
X_t = \begin{bmatrix} X_{1,t} & X_{2,t} & \cdots & X_{m,t} \end{bmatrix}^\top
3434
$$ (eq:Xvector)
3535
36-
其中 $\cdot ^\top $ 再次表示复数转置,$ X_{i,t} $ 是时间 $ t $ 的变量 $ i $。
36+
其中 $\cdot ^\top $ 表示复数转置<!-- 原文是“complex transpose”,似乎不是惯常表达,这里是想要表达“共轭转置”嘛?需不需要进一步解释 -->,$ X_{i,t} $ 是时间 $ t $ 时的变量 $ i $。
3737
3838
我们想要拟合方程 {eq}`eq:VARfirstorder`。
3939
40-
我们的数据组织在一个 $ m \times (n+1) $ 矩阵 $ \tilde X $ 中
40+
我们的数据则组织在一个 $ m \times (n+1) $ 的矩阵 $ \tilde X $ 中
4141
4242
$$
4343
\tilde X = \begin{bmatrix} X_1 \mid X_2 \mid \cdots \mid X_n \mid X_{n+1} \end{bmatrix}
4444
$$
4545
46-
其中对于 $ t = 1, \ldots, n +1 $,$ m \times 1 $ 向量 $ X_t $ 由 {eq}`eq:Xvector` 给出。
46+
其中对于 $ t = 1, \ldots, n +1 $,$ m \times 1 $ 的向量 $ X_t $ 由 {eq}`eq:Xvector` 给出。
4747
4848
因此,我们想要估计一个系统 {eq}`eq:VARfirstorder`,它由 $ m $ 个最小二乘回归组成,将**所有变量**对**所有变量**的一阶滞后值进行回归。
4949
5050
{eq}`eq:VARfirstorder` 的第 $i$ 个方程是将 $X_{i,t+1}$ 对向量 $X_t$ 进行回归。
5151
5252
我们按如下步骤进行。
5353
54-
从 $ \tilde X $ 中,我们形成两个 $m \times n$ 矩阵
54+
从 $ \tilde X $ 中,我们构造以下两个 $m \times n$ 矩阵
5555
5656
$$
5757
X = \begin{bmatrix} X_1 \mid X_2 \mid \cdots \mid X_{n}\end{bmatrix}
@@ -63,100 +63,100 @@ $$
6363
X' = \begin{bmatrix} X_2 \mid X_3 \mid \cdots \mid X_{n+1}\end{bmatrix}
6464
$$
6565
66-
这里的 $ ' $ 是矩阵 $ X' $ 名称的一部分,并不表示矩阵转置。
66+
这里的 $ ' $ 是矩阵 $ X' $ 的名称的一部分,并不表示矩阵转置。
6767
6868
我们使用 $\cdot^\top $ 来表示矩阵转置或其在复矩阵中的扩展。
6969
70-
在构造 $ X $ 和 $ X' $ 时,我们在每种情况下都从 $ \tilde X $ 中删除了一列,对于 $ X $ 是删除最后一列,对于 $ X' $ 是删除第一列
70+
在构造 $ X $ 和 $ X' $ 的过程中,我们都从 $ \tilde X $ 中删除了某一列,$ X $ 是删除最后一列,$ X' $ 则是删除第一列
7171
72-
显然,$ X $ 和 $ X' $ 都是 $ m \times n $ 矩阵
72+
显然,$ X $ 和 $ X' $ 都是 $ m \times n $ 的矩阵
7373
7474
我们用 $ p \leq \min(m, n) $ 表示 $ X $ 的秩。
7575
7676
我们感兴趣的两种情况是:
7777
78-
* $ n > > m $,即时间序列观测值数量 $n$ 远大于变量数量 $m$
79-
* $ m > > n $,即变量数量 $m$ 远大于时间序列观测值数量 $n$
78+
* $ n > > m $,即时间序列观测值的数量 $n$ 远大于变量的数量 $m$
79+
* $ m > > n $,即变量的数量 $m$ 远大于时间序列观测值的数量 $n$
8080
81-
在包含这两种特殊情况的一般层面上,有一个共同的公式描述了 $A$ 的最小二乘估计量 $\hat A$。
81+
在考虑了这两种特殊情况的一般情况中,有一个通用的公式描述了 $A$ 的最小二乘估计量 $\hat A$。
8282
8383
但重要的细节有所不同。
8484
85-
这个共同的公式是
85+
这个通用的公式是
8686
8787
$$
8888
\hat A = X' X^+
8989
$$ (eq:commonA)
9090
91-
其中 $X^+$ 是 $X$ 的伪逆
91+
其中 $X^+$ 是 $X$ 的广义逆矩阵,或伪逆
9292
93-
关于**Moore-Penrose伪逆**的详细信息,请参见[Moore-Penrose伪逆](https://en.wikipedia.org/wiki/Moore%E2%80%93Penrose_inverse)
93+
关于**穆尔-彭罗斯广义逆矩阵**的详细信息,请参见[穆尔-彭罗斯广义逆矩阵](https://baike.baidu.com/item/穆尔-彭罗斯广义逆矩阵/22770999?fr=aladdin)<!-- 中文语境下使用广义逆矩阵的语料远多于伪逆,所以后文统一使用广义逆矩阵 -->
9494
95-
伪逆的适用公式在我们的两种情况下有所不同
95+
在我们的两种情况下,广义逆矩阵适用的公式有所不同
9696
9797
**短胖情况:**
9898
99-
当$n >> m$时,即时间序列观测值$n$远多于变量$m$,且当$X$具有线性独立的**行**时,$X X^\top$有逆矩阵,伪逆$X^+$为
99+
当$n >> m$时,即时间序列的观测值$n$远多于变量的数量$m$,且当$X$具有线性独立的**行**时,$X X^\top$的逆矩阵存在,且广义逆矩阵$X^+$为
100100
101101
$$
102102
X^+ = X^\top (X X^\top )^{-1}
103103
$$
104104
105-
这里$X^+$是一个**右逆**,满足$X X^+ = I_{m \times m}$。
105+
这里$X^+$是一个满足$X X^+ = I_{m \times m}$的**右逆**,
106106
107-
在这种情况下,我们用于估计总体回归系数矩阵$A$的最小二乘估计量的公式{eq}`eq:commonA`变为
107+
在这种情况下,我们用于估计总体回归系数矩阵$A$的最小二乘估计量的公式{eq}`eq:commonA`就变为
108108
109109
$$
110110
\hat A = X' X^\top (X X^\top )^{-1}
111111
$$ (eq:Ahatform101)
112112
113-
这个最小二乘回归系数的公式在计量经济学中被广泛使用
113+
这个计算最小二乘回归系数的公式在计量经济学中被广泛地使用
114114
115-
它被用于估计向量自回归
115+
它也被用于估计向量自回归
116116
117-
公式{eq}`eq:Ahatform101`右边与$X_{t+1}$和$X_t$的经验交叉二阶矩矩阵成正比,并乘以$X_t$二阶矩矩阵的逆
117+
公式{eq}`eq:Ahatform101`的右边,正比于$X_{t+1}$和$X_t$的经验交叉二阶矩矩,乘以$X_t$二阶矩阵的逆矩阵
118118
119119
**高瘦型情况:**
120120
121-
当$m > > n$时,即属性数量$m$远大于时间序列观测值$n$,且当$X$的**列**线性独立时,$X^\top X$有逆矩阵,伪逆$X^+$为
121+
当$m > > n$时,即属性数量$m$远大于时间序列的观测值$n$,且当$X$的**列**线性独立时,$X^\top X$的逆矩阵存在,且广义逆矩阵$X^+$为
122122
123123
$$
124124
X^+ = (X^\top X)^{-1} X^\top
125125
$$
126126
127-
这里$X^+$是一个**左逆**,满足$X^+ X = I_{n \times n}$。
127+
这里$X^+$是一个满足$X^+ X = I_{n \times n}$的**左逆**,
128128
129129
在这种情况下,我们用于估计$A$的最小二乘估计公式{eq}`eq:commonA`变为
130130
131131
$$
132132
\hat A = X' (X^\top X)^{-1} X^\top
133133
$$ (eq:hatAversion0)
134134
135-
请比较公式{eq}`eq:Ahatform101`和{eq}`eq:hatAversion0`中的$\hat A$。
135+
请比较{eq}`eq:Ahatform101`和{eq}`eq:hatAversion0`$\hat A$的表达式
136136
137137
这里我们特别关注公式{eq}`eq:hatAversion0`。
138138
139-
$\hat A$的第$i$行是一个$m \times 1$向量,包含了$X_{i,t+1}$对$X_{j,t}, j = 1, \ldots, m$回归的系数。
139+
$\hat A$的第$i$行是一个$m \times 1$的向量,其中包含了$X_{i,t+1}$对$X_{j,t}, j = 1, \ldots, m$回归的系数。
140140
141141
如果我们使用公式{eq}`eq:hatAversion0`来计算$\hat A X$,我们发现
142142
143143
$$
144144
\hat A X = X'
145145
$$
146146
147-
因此回归方程**完美拟合**。
147+
因此回归方程**完全拟合**。
148148
149-
这是**欠定最小二乘**模型中的典型结果
149+
这是**欠定最小二乘**模型中典型的结果
150150
151-
重申一下,在**高瘦**情况下(在{doc}`奇异值分解<svd_intro>`中描述),即观测数量$n$相对于向量$X_t$中出现的属性数量$m$较小时,我们想要拟合方程{eq}`eq:VARfirstorder`。
151+
再次重申,**高瘦**情况(见{doc}`奇异值分解<svd_intro>`)指观测的数量$n$相对于向量$X_t$属性的数量$m$较小时,我们想要拟合方程{eq}`eq:VARfirstorder`。
152152
153153
我们面临着最小二乘估计量是欠定的,且回归方程完美拟合的事实。
154154
155-
要继续,我们需要高效地计算伪逆$X^+$。
155+
接下来,我们想要更加高效地计算广义逆矩阵$X^+$。
156156
157-
伪逆$X^+$将是我们$A$估计量的一个组成部分。
157+
广义逆矩阵$X^+$将是我们$A$估计量的一个组成部分。
158158
159-
作为我们对$A$的估计量$\hat A$,我们想要形成一个$m \times m$矩阵,它解决最小二乘最佳拟合问题
159+
作为对$A$的估计量$\hat A$,我们想要形成一个$m \times m$的矩阵,来解决最小二乘最佳拟合问题
160160
161161
$$
162162
\hat A = \textrm{argmin}_{\check A} || X' - \check A X ||_F
@@ -171,31 +171,31 @@ $$
171171
||A||_F = \sqrt{ \sum_{i=1}^m \sum_{j=1}^m |A_{ij}|^2 }
172172
$$
173173
174-
方程{eq}`eq:ALSeqn`右侧的最小化解为
174+
方程{eq}`eq:ALSeqn`右侧的最小值解为
175175
176176
$$
177177
\hat A = X' X^{+}
178178
$$ (eq:hatAform)
179179
180-
其中(可能巨大的)$ n \times m $ 矩阵 $ X^{+} = (X^\top X)^{-1} X^\top $ 再次是 $ X $ 的伪逆
180+
其中(可能是巨大的)$ n \times m $ 的矩阵 $ X^{+} = (X^\top X)^{-1} X^\top $ 同样是 $ X $ 的广义逆矩阵
181181
182-
对于我们感兴趣的某些情况,$X^\top X $ 可能接近奇异,这种情况会使某些数值算法变得不准确。
182+
对于我们感兴趣的一些情况,$X^\top X $ 可能接近奇异,这种情况会使某些数值算法变得不准确。
183183
184184
为了应对这种可能性,我们将使用高效的算法来构建公式{eq}`eq:hatAversion0`中 $\hat A$ 的**降秩近似**。
185185
186-
这种对我们的向量自回归的近似将不再完全拟合
186+
这种近似方式,让我们的向量自回归估计不再完全拟合
187187
188188
$ \hat A $ 的第 $ i $ 行是一个 $ m \times 1 $ 的回归系数向量,表示 $ X_{i,t+1} $ 对 $ X_{j,t}, j = 1, \ldots, m $ 的回归。
189189
190-
计算伪逆$X^+$的一个有效方法是从奇异值分解开始
190+
一种高效计算广义逆矩阵$X^+$的方式是从奇异值分解开始
191191
192192
$$
193193
X = U \Sigma V^\top
194194
$$ (eq:SVDDMD)
195195
196-
这里我们需要提醒自己,对于**简化的**SVD,$X$是一个$m \times n$的数据矩阵,$U$是一个$m \times p$的矩阵,$\Sigma$是一个$p \times p$的矩阵,而$V$是一个$n \times p$的矩阵。
196+
这里我们提醒自己,这个**简化**SVD中,$X$是一个$m \times n$的数据矩阵,$U$是一个$m \times p$的矩阵,$\Sigma$是一个$p \times p$的矩阵,而$V$是一个$n \times p$的矩阵。
197197
198-
通过认识到以下一系列等式,我们可以有效地构造相关的伪逆$X^+$。
198+
通过以下一系列等式,我们可以有效地构造相关的广义逆矩阵$X^+$。
199199
200200
$$
201201
\begin{aligned}
@@ -207,9 +207,9 @@ X^{+} & = (X^\top X)^{-1} X^\top \\
207207
\end{aligned}
208208
$$ (eq:efficientpseudoinverse)
209209
210-
由于我们处在$m > > n$的情况下,在简化SVD中$V^\top V = I_{p \times p}$,因此我们可以将前面的等式序列同时用于简化SVD和完整SVD。)
210+
由于$m > > n$,在简化SVD中$V^\top V = I_{p \times p}$,因此我们可以将前面的一系列等式同时用于简化SVD和完整SVD。)
211211
212-
因此,我们将使用方程{eq}`eq:SVDDMD`中$X$的奇异值分解来构造$X$的伪逆$X^+$,计算方法为:
212+
因此,我们将使用方程{eq}`eq:SVDDMD`中$X$的奇异值分解来构造$X$的广义逆矩阵$X^+$,计算方法为:
213213
214214
$$
215215
X^{+} = V \Sigma^{-1} U^\top
@@ -219,37 +219,37 @@ $$ (eq:Xplusformula)
219219
220220
我们可以将公式{eq}`eq:Xplusformula`与公式{eq}`eq:hatAform`结合使用来计算回归系数矩阵$\hat A$。
221221
222-
因此,我们对$m \times m$系数矩阵$A$的估计量$\hat A = X' X^+$为:
222+
因此,我们对$m \times m$的系数矩阵$A$的估计量$\hat A = X' X^+$为:
223223
224224
$$
225225
\hat A = X' V \Sigma^{-1} U^\top
226226
$$ (eq:AhatSVDformula)
227227
228228
## 动态模态分解(DMD)
229229
230-
我们转向与**动态模态分解**相关的$m >>n$**高瘦型**情况。
230+
我们继续关注与**动态模态分解**相关的$m >>n$**高瘦型**情况。
231231
232-
这里,一个$m \times n+1$数据矩阵$\tilde X$包含了比时间周期$n+1$多得多的属性(或变量)$m$。
232+
假设有一个$m \times n+1$的数据矩阵$\tilde X$,它包含了比时间周期$n+1$多得多的属性(或变量)$m$。
233233
234-
动态模态分解由{cite}`schmid2010`引入
234+
动态模态分解由{cite}`schmid2010`首次提出
235235
236-
你可以阅读有关动态模态分解的内容 {cite}`DMD_book` 和 {cite}`Brunton_Kutz_2019`(第7.2节)。
236+
你可以在 {cite}`DMD_book` 和 {cite}`Brunton_Kutz_2019`(第7.2节)中阅读有关动态模态分解的内容
237237
238-
**动态模态分解**(DMD)计算公式{eq}`eq:AhatSVDformula`中描述的最小二乘回归系数$\hat A$的秩为$r < p$的近似。
238+
如公式{eq}`eq:AhatSVDformula`所描述的,**动态模态分解**(DMD)的最小二乘回归系数$\hat A$的秩为$r < p$的近似。<!-- 这句话没太想明白怎么翻译通顺 -->
239239
240-
我们将逐步构建一个在应用中有用的表述
240+
我们将逐步构建一种适合应用的表述
241241
242-
我们将通过描述一阶线性动态系统(即我们的向量自回归)的三种替代表示来实现这一点
242+
我们将通过三种不同的表示方式来描述一阶线性动态系统(即我们的向量自回归),从而实现这一点
243243
244-
**三种表示的指南:**在实践中,我们主要关注表示3。
244+
**三种表示的指南:** 在实践中,我们主要关注表示3。
245245
246-
我们使用前两种表示来呈现一些有用的中间步骤,这些步骤有助于我们理解表示3的内部原理
246+
我们使用前两种表示来呈现一些有用的中间推导,这些步骤有助于我们理解表示3的内在原理
247247
248248
在应用中,我们将只使用**DMD模态**的一小部分子集来近似动态。
249249
250250
我们使用这样一个小的DMD模态子集来构建对$A$的降秩近似。
251251
252-
为此,我们需要使用与表示法3相关的**简化**SVD,而不是与表示法1和2相关的**完全**SVD。
252+
为此,我们需要使用与表示法3相关的**简化**SVD,而不是与表示法1和2相关的**完整**SVD。
253253
254254
**给急躁读者的指南:** 在我们的应用中,我们将使用表示法3。
255255
@@ -259,9 +259,9 @@ $$ (eq:AhatSVDformula)
259259
260260
## 表示法1
261261
262-
在这个表示法中,我们将使用$X$的**完全**SVD。
262+
在这个表示法中,我们将使用$X$的**完整**SVD。
263263
264-
我们使用$U$的$m$个**列**,因此也就是$U^\top$的$m$个**行**,来定义一个$m \times 1$向量$\tilde b_t$:
264+
我们使用$U$的$m$个**列**,$U^\top$的$m$个**行**,来定义一个$m \times 1$的向量$\tilde b_t$:
265265
266266
$$
267267
\tilde b_t = U^\top X_t .
@@ -277,33 +277,33 @@ $$ (eq:Xdecoder)
277277
278278
由于我们现在使用的是**完全**SVD,$U U^\top = I_{m \times m}$。
279279
280-
因此从方程{eq}`eq:tildeXdef2`可以得出,我们可以从$\tilde b_t$重构$X_t$。
280+
因此从方程{eq}`eq:tildeXdef2`可以得出,我们可以用$\tilde b_t$重新构造$X_t$。
281281
282282
特别地,
283283
284-
* 方程 {eq}`eq:tildeXdef2` 作为一个**编码器**,将 $m \times 1$ 向量 $X_t$ **旋转**成一个 $m \times 1$ 向量 $\tilde b_t$
284+
* 方程 {eq}`eq:tildeXdef2` 作为一个**编码器**,将 $m \times 1$ 向量 $X_t$ **旋转**成一个 $m \times 1$ 的向量 $\tilde b_t$
285285
286-
* 方程 {eq}`eq:Xdecoder` 作为一个**解码器**,通过旋转 $m \times 1$ 向量 $\tilde b_t$ 来**重构** $m \times 1$ 向量 $X_t$
286+
* 方程 {eq}`eq:Xdecoder` 作为一个**解码器**,通过旋转 $m \times 1$ 向量 $\tilde b_t$ 来**重新构造** $m \times 1$ 的向量 $X_t$
287287
288-
为 $m \times 1$ 基向量 $\tilde b_t$ 定义一个转移矩阵:
288+
为 $m \times 1$ 的基向量 $\tilde b_t$ 定义一个转移矩阵:
289289
290290
$$
291291
\tilde A = U^\top \hat A U
292292
$$ (eq:Atilde0)
293293
294-
我们可以通过以下方式恢复 $\hat A$:
294+
我们可以通过以下方式表示 $\hat A$:
295295
296296
$$
297297
\hat A = U \tilde A U^\top
298298
$$
299299
300-
$m \times 1$ 基向量 $\tilde b_t$ 的动态由以下方程支配:
300+
$m \times 1$ 的基向量 $\tilde b_t$ 的动态由以下方程支配:
301301
302302
$$
303303
\tilde b_{t+1} = \tilde A \tilde b_t
304304
$$
305305
306-
为了构建基于 $X_1$ 条件的 $X_t$ 未来值的预测 $\overline X_t$,我们可以对这个方程的两边应用解码器(即旋转器),从而推导出:
306+
为了构建基于 $X_1$ $X_t$ 未来值的预测 $\overline X_t$,我们可以对这个方程的两边应用解码器(即旋转器),从而推导出:
307307
308308
$$
309309
\overline X_{t+1} = U \tilde A^t U^\top X_1
@@ -758,4 +758,3 @@ $$ (eq:checkXevoln2)
758758
你可以在这里找到DMD的Python实现:
759759
760760
https://mathlab.sissa.it/pydmd
761-

0 commit comments

Comments
 (0)