一、项目背景详细介绍
在多元统计分析、随机矩阵理论、贝叶斯统计、机器学习以及信号处理等领域中,Wishart 分布(Wishart Distribution) 是一个极其重要的矩阵值概率分布。
它可以被看作是:
多元正态分布样本协方差矩阵的分布
换句话说:
- 正态分布 → 标量随机变量
- 多元正态分布 → 随机向量
- Wishart 分布 → 随机矩阵
1.1 Wishart 分布的应用场景
Wishart 分布广泛应用于:
- 多元统计中的协方差矩阵建模
- 贝叶斯统计中协方差的共轭先验
- 高斯混合模型(GMM)的贝叶斯版本
- 随机矩阵理论
- 金融风险建模(协方差估计)
📌 在工程和科研中,能够正确、高效地从 Wishart 分布采样是很多高级算法的基础模块。
1.3 为什么要自己实现 Wishart 采样?
尽管很多统计库提供现成函数,但手写 Wishart 采样具有重要价值:
- 深刻理解随机矩阵生成机制
- 为贝叶斯模型(如逆 Wishart)打基础
- 便于嵌入不依赖第三方库的 C++ 工程
- 可定制数值精度与性能
二、项目需求详细介绍
2.1 功能性需求
本项目目标是:
👉 使用 C++ 从零实现 Wishart 分布随机矩阵生成
核心功能包括:
2.2 输入与输出
- 输入
- 自由度
n - 尺度矩阵
Sigma (p × p)
- 自由度
- 输出
- Wishart 随机矩阵
W (p × p)
- Wishart 随机矩阵
2.3 非功能性需求
- 不依赖 BLAS / LAPACK
- 数值稳定、结构清晰
- 教学友好、注释完整
- 可直接作为研究代码使用
三、相关技术详细介绍
3.1 Wishart 采样的核心思想
Wishart 分布的采样可转化为两个关键步骤:
- 生成标准正态矩阵
- 通过线性变换引入协方差结构
3.3 所需随机变量
- 标准正态分布
- 卡方分布
卡方分布可以通过对标准正态分布变量的平方求和来生成。
四、实现思路详细介绍
4.1 总体流程设计
1. 对 Sigma 进行 Cholesky 分解 2. 构造 Bartlett 矩阵 A 3. 计算 B = L * A 4. 返回 W = B * B^T

