5
強い相関が存在する大きなフルランクランダム相関行列を生成する方法
適度に強い相関が存在するように、n × nサイズのランダム相関行列を生成したいと思います。CC\mathbf Cn×nn×nn \times n サイズの正方実対称行列、たとえばn = 100 ;n×nn×nn \times nn=100n=100n=100 正定、つまり、すべての固有値が実数で正数の場合。 フルランク; すべての対角要素が等しい。111 非対角要素がなければならない合理的に均一に分布する。正確な分布は重要ではありませんが、適度に大きな値(たとえば、絶対値が0.5以上)をある程度適度に大きく(たとえば10 %)したいと思います。基本的に、すべての非対角要素≈0でCがほぼ対角線上にないことを確認したいと思います。(−1,1)(−1,1)(-1, 1)10%10%10\%0.50.50.5CC\mathbf C≈0≈0\approx 0 簡単な方法はありますか? 目的は、このようなランダム行列を使用して、相関(または共分散)行列を処理するアルゴリズムのベンチマークを行うことです。 動作しないメソッド 私が知っているランダム相関行列を生成するいくつかの方法を以下に示しますが、ここではうまくいきません。 s × nサイズのランダムなを生成し、中心化し、標準化して、相関行列C = 1を形成します。XX\mathbf Xs×ns×ns \times n。s>nの場合、これにより、通常、すべての非対角相関が0付近になります。もしS«nは、いくつかの相関が強くなりますが、Cはフルランクではありません。C=1s−1X⊤XC=1s−1X⊤X\mathbf C=\frac{1}{s-1}\mathbf X^\top \mathbf Xs>ns>ns>n000s≪ns≪ns\ll nCC\mathbf C 次のいずれかの方法で、ランダムな正定行列を生成します。BB\mathbf B ランダム平方生成対称正定作るB = A Aを ⊤。AA\mathbf AB=AA⊤B=AA⊤\mathbf B = \mathbf A …