前言:在机器学习和统计学习中,正态分布的身影无处不在,最为常见的是标准正态分布和多元正态分布 (multivariate normal distribution),两者分别作用于标量 (scalar) 和向量 (vector)。实际上,也存在一种正态分布的形式,它作用于矩阵,并广泛地应用于贝叶斯向量自回归模型 (Bayesian vector autoregression) 中。本文接下来将从大家所熟知的正态分布出发,先介绍矩阵正态分布,然后讨论矩阵正态分布在贝叶斯方法中的应用。
1 从标准正态分布到矩阵正态分布
1.1 标准正态分布
正态分布在机器学习和统计学习中随处可见,对于单一的随机变量
其中,
1.2 多元正态分布
随着我们学习线性代数、概率论等相关课程,我们又认识到:若向量
其中,
需要说明的是,这里将多元正态分布的指数项写成矩阵迹 (trace) 的形式是为了方面后续认识矩阵正态分布,其中,在多元正态分布的写法中,
1.3 矩阵正态分布
除了作用于向量的正态分布,实际上还存在一种正态分布,它作用于矩阵,常见于贝叶斯向量自回归模型 (Bayesian vector autoregression model)。一般而言,对于随机矩阵
其中,符号
到这里,大家可能会发现:矩阵正态分布与多元正态分布在概率密度函数形式上存在较大差异。但实际上,我们依然可以从多元正态分布的角度理解矩阵正态分布,只要将矩阵正态分布进行向量化处理便可以得到多元正态分布形式,即
这两者完全等价 (证明过程可以参考wiki),公式中的符号
不过,这里有一个值得思考的问题:既然矩阵正态分布和多元正态分布可以等价,那为何还要构造出如此复杂的矩阵正态分布呢?
可能的原因要归结到协方差矩阵上。实际上,假设我们想生成一个大小为的随机矩阵,并要求矩阵在概率上服从矩阵正态分布。此时,若利用多元正态分布进行生成,则需要协方差矩阵的大小为,元素数量为,显然,这个数字很惊人,毕竟存储这么大的矩阵就需要消耗计算机比较多的内存了。
因此,在很多时候,将矩阵正态分布用等价的多元正态分布替换有点不切实际。
2 贝叶斯向量自回归模型
2.1 向量自回归模型的数学表达式
在多元时间序列 (multivariate time series) 预测问题中,如果我们想借助回归模型对未来的序列进行合理估计,可采用简单的向量回归模型:
其中,
一般而言,这条表达式可以被称为
为方便书写,向量自回归模型也可以写成如下形式:
其中,
这条公式也可以进一步写成如下形式:
其中,矩阵
2.2 构建贝叶斯模型
假设向量自回归模型中的误差项
其中,符号
2.3 推导后验分布
构建贝叶斯模型之后,我们需要对贝叶斯模型进行后验估计,简而言之,依据贝叶斯准则(后验分布正比于似然函数和先验分布的乘积,即
- (1) 似然函数
在上述贝叶斯向量自回归模型中,似然来自于时间序列的观测值
其中,指数项中的求和部分可以被改写成如下形式:
综上所述,似然函数为
- (2) 先验分布
由
由
(3) 后验分布
依据贝叶斯准则,从
中可以推导出关于
后验分布中的参数为
3 如何生成服从矩阵正态分布的随机矩阵?
现假设矩阵
第一步:对矩阵作Cholesky分解,即,分别得到矩阵和;
第二步:用标准正态分布生成一个大小为的矩阵;
第三步:计算,其中,.
在Python中,可以利用numpy写出随机矩阵
def
4 参考
[1] matrix normal distribution - Wiki
[2] slide | Bayesian Vector Autoregressions
[3] Forecasting with Bayesian Vector Autoregressions
[4] Bayesian Autoregressive Time Series Models
[5] slide | Bayesian VARs