2017-09-05 30 views
0

はだから、以下の条件、所与の確率変数X 50 X 50、共分散行列を生成したい:Pythonでランダム共分散行列を生成する方法は?

  1. 1分散Xの
  2. パラメータはごくわずかに相関している他のものより10倍大きいです

Python/Rなどでこれを行う方法はありますか?あるいは、これらの要件を満たすかもしれないと考えることができる共分散行列がありますか?

ありがとうございました!

+0

このような共分散行列のインスタンスはいくつ必要ですか?ただ必要なの?または、多くのインスタンスを生成する必要がありますか? 「ランダム性」は重要ですか?適切なマトリックスを作るか、サンプルを採取する必要がありますか?追加情報をありがとう。 –

+0

あなたの返信ありがとう!私は1つの共分散行列しか必要とせず、ランダム性の部分は重要ではありません - 適切な行列で十分です。 – tattybojangler

答えて

2

OK、1つの行列が必要です。ランダム性は重要ではありません。あなたの説明にしたがって行列を構築する方法があります。 50から50の単位行列から始めます。最初の(左上の)要素に10を割り当てます。少数(あなたの問題に適しているものは分かりません。おそらく0.1?0.01?それはあなた次第です)を他のすべての要素に割り当てます。ここで、その行列を取って正方形にします(つまり、transpose(X)を計算します.X、Xはあなたの行列です)。プレスト!あなたは固有値を二乗したので、共分散行列が得られます。

小さな要素が十分に小さい場合、Xはすでに正定値です。しかし、二乗法はそれ​​を保証します(ゼロ固有値がないと仮定すると、行列式を計算することで検証できます。行列式が非ゼロでゼロの固有値がない場合)。

私はあなたがこれらの操作のためのPython関数を見つけることができると仮定します。

+0

ありがとう!私はそれを与えるだろう! – tattybojangler

関連する問題