2017-09-05 144 views
0

所以想以产生用于给定下列条件的随机变量X 50 X 50的协方差矩阵:如何在Python中生成随机协方差矩阵?

  1. 一个方差比其它
  2. 的X的参数仅略微相关大10倍

有没有在Python/R等这样做的方法吗?或者是否存在可以满足这些要求的协方差矩阵?

谢谢你的帮助!

+0

你需要多少个这种协方差矩阵的实例?你只需要一个?或者你需要生成很多实例吗? “随机性”是否重要 - 您能制作一个合适的矩阵还是需要对它们进行采样?感谢您的额外信息。 –

+0

感谢您的回复!我只需要一个协方差矩阵,而随机性部分并不重要 - 只要一个合适的矩阵就足够了。 – tattybojangler

回答

2

好的,你只需要一个矩阵和随机性并不重要。根据您的描述,这是一种构建矩阵的方法。以50的单位矩阵50开始。将10分配给第一个(左上角)元素。为所有其他元素分配一个小数字(我不知道什么适合您的问题,也许0.1?0.01?取决于您)。现在取该矩阵并对其进行平方(即计算转置(X)。X,其中X是矩阵)。普雷斯托!你已经平方的特征值,所以现在你有一个协方差矩阵。

如果小元素足够小,X已经是正定的。但是平方保证它(假设没有零特征值,可以通过计算行列式来验证 - 如果行列式非零则不存在零特征值)。

我假设你可以找到这些操作的Python函数。

+0

谢谢!我会给它一个去! – tattybojangler