找了几天的资料,把国内外的思路整合了一下,共同学习。
一、引例:如何生成2个相关性为
,且服从标准正太分布
的随机变量
?
答案:先随机生成2个独立的,服从 标准正太分布
的随机变量
。
再考虑相关性,最终可以得到:
可以证明:
因此符合题目要求。
下面讲一下通用的思路,可以用来生成2个或多个有相关性的随机变量。
二、多元相关随机变量的生成:
题目:要求生成协方差矩阵为的多个符合正太分布的变量,即生成
,使得
,注意这里的
是协方差矩阵,不是相关性矩阵,其中
为均值向量。
答案:首先生成符合标准正太分布的随机变量向量,则
则为所求的随机变量向量(其中
)。
证明:
因为Z变量是随机生成的,因此其元素间的相关性=0,元素自身相关性为1,因此Z的协方差矩阵=相关性矩阵,是单位阵。
所以
因此X的协方差矩阵。
至此,问题就变成了:如何将协方差矩阵分解成矩阵*矩阵的转置,即
,得到矩阵A即可。
矩阵分解方法有多种,常见的可以分解成矩阵*矩阵的转置的方法:cholesky分解法(又称平方根分解),SVD,等等。
这部分后续再更新。
-------------------------------
吃完晚饭,继续更新。
在我另外一篇博客中讲到:生成协方差矩阵=的多元随机变量时,也可以使用SVD分解法:
简要回顾SVD:,SVD可以将一个矩阵(不要求必须是方阵)分解为左奇异矩阵
* 对角阵
* 右奇异矩阵
, 其中V是
的特征向量(注意公式中V有个转置操作),U是
的特征向量。
是对角阵,对角元素是U、V的共同特征值,例如有三个特征值时:
。
而上文讲到,只需要将协方差或相关性矩阵分解为矩阵*矩阵的转置,即可得到协方差矩阵为的多个随机变量。
现在问题变成:寻找一个矩阵A,使得协方差矩阵。
对协方差矩阵进行SVD分解,考虑对称性可知
。
SVD公式中的对角阵可以直接分解为矩阵*矩阵的转置:,其中
。
因此
所以则为所求的随机变量向量(其中
).
只是对网上的资料进行了汇总,现在还有一个问题,就是问题问的是相关性,应该计算相关性矩阵,而计算过程中一直是协方差矩阵。