。可能性の重複:ユーザーが独自の、非自明な、上位/下位VARにおける変数の各ペア間の相関にバインド/コバール行列を課すことを望んでいる非対角要素の制約付き擬似ランダム正定行列を生成する方法は?
は、例えば:私は、すべての変数が変数x_i
とx_j
との相関関係であること0.9 > |rho(x_i,x_j)| > 0.6
、rho(x_i,x_j)
を持っている分散行列を求めています。
ありがとうございました。
。可能性の重複:ユーザーが独自の、非自明な、上位/下位VARにおける変数の各ペア間の相関にバインド/コバール行列を課すことを望んでいる非対角要素の制約付き擬似ランダム正定行列を生成する方法は?
は、例えば:私は、すべての変数が変数x_i
とx_j
との相関関係であること0.9 > |rho(x_i,x_j)| > 0.6
、rho(x_i,x_j)
を持っている分散行列を求めています。
ありがとうございました。
これは完全な答えではありませんが、可能な建設的な方法の提案:私は最も手頃な価格のいずれかの方法を考える(http://en.wikipedia.org/wiki/Positive-definite_matrix)正定値行列の特性評価を見てみると
はシルベスター基準を使用することができ。
正の行列式を持つ簡単な1x1ランダム行列から始めて、新しい行列にも正の行列式があることを確認しながら、行と列を段階的に展開することができます(これはどのように達成するかは^ _^)。
Fortran、 それは正の確定マトリックスを生成するだけでしょうか? しかし、すべての相関関係が、例えば.7と.9の間であることを確認するにはどうすればよいですか? –
Hmmmmmmmmmm ...良い点、私は2番目の前提については考えていませんでした:-s 私はしばらくの間ソリューションを想像することができます私は答えを更新するでしょう、私はそれを削除しない場合は非常に役に立たない – fortran
ここには多くの問題があります。
まず、疑似ランダム偏差が正規分布していると仮定していますか?相関行列の議論は、非正規分布に分岐すると厄介なものになるので、私はそれらを仮定します。
次に、共分散行列を仮定すると、擬似ランダム法線を生成することはむしろ簡単です。標準的な(独立した)標準偏差を生成し、次に共分散行列のコレスキー係数を乗算して変換します。平均がゼロでない場合は、最後に平均を加えます。
また、共分散行列は、与えられた相関行列を用いて生成するのがかなり簡単です。相関行列を標準偏差で構成された対角行列で前後に積分するだけです。これは、相関行列を共分散行列にスケーリングする。
"ランダム"な相関行列を生成するのに十分なように思えるので、この問題にどこに問題があるかはまだ分かりません。
上記のすべては、妥当な基準では些細なことであり、上記の情報が与えられた場合、擬似乱数法線の逸脱を生成するためのツールが数多くあります。
おそらく、ユーザーは、結果の偏差のランダムな行列に指定された範囲内の相関が必要であると主張しています。あなたは乱数のセットが漸近的な意味で望ましい分布パラメータしか持たないことを認識しなければなりません。したがって、サンプルサイズが無限大になると、指定された分布パラメータが表示されるはずです。しかし、任意の小さなサンプルセットは、所望の範囲内の所望のパラメータを必ずしも有さない。
たとえば、(MATLABの)ここでは、単純な正定値の3x3行列です。したがって、それは非常に良い共分散行列を作る。
S = randn(3);
S = S'*S
S =
0.78863 0.01123 -0.27879
0.01123 4.9316 3.5732
-0.27879 3.5732 2.7872
私はSを相関行列に変換します。今
s = sqrt(diag(S));
C = diag(1./s)*S*diag(1./s)
C =
1 0.0056945 -0.18804
0.0056945 1 0.96377
-0.18804 0.96377 1
簡単にはコレスキーファクタを使用することがあるので、私は(mvnrndはトリックを行う必要があります。)統計ツールボックスを使用して、正規分布からサンプリングすることができます。
L = chol(S)
L =
0.88805 0.012646 -0.31394
0 2.2207 1.6108
0 0 0.30643
ここで、擬似ランダム逸脱を生成し、必要に応じて変換します。
X = randn(20,3)*L;
cov(X)
ans =
0.79069 -0.14297 -0.45032
-0.14297 6.0607 4.5459
-0.45032 4.5459 3.6549
corr(X)
ans =
1 -0.06531 -0.2649
-0.06531 1 0.96587
-0.2649 0.96587 1
番号は、擬似ランダムであるので、あなたの欲求は、相関関係は常に-0.188よりも大きくなければならないこと、そして、このサンプリング技術は、失敗したた場合。実際、その目標は、サンプルサイズが十分に大きくなければ達成するのが難しいでしょう。
単純な拒否スキームを使用してサンプリングを行い、希望の範囲内の相関を持つサンプルが望ましいプロパティを持つまで繰り返すことができます。これは疲れることがあります。
私はこの時点で完全には考えていないアプローチもありますが、上記の標準スキームを使用してランダムサンプルを生成することです。相関関係を計算します。私は彼らが適切な範囲でうそをつくことに失敗し、相関が望ましいものになるように、データの実際の(測定された)共分散行列に対して行う必要のある摂動を特定します。ここで、標本共分散行列を所望の方向に移動させるサンプルデータへのゼロ平均ランダム摂動を見つける。
これはうまくいくかもしれませんが、実際にはこれが実際に問題であることがわかっていない限り、私はそれ以上深く迷うことはありません。 (編集:私はこの問題についてもう少し考えたことがあり、二次制約を持つ二次計画問題であるように見え、結果として得られる共分散行列(または相関行列)が所望のものとなるように行列Xに対して最小の摂動を見つける。プロパティ。)
Woodship、
「まず、擬似ランダムずれが正規分布すると仮定していますか?」
はい。
「おそらく、ユーザーは、結果の偏差のランダムな行列に指定された範囲内の相関が必要であると主張しているのでしょうか?
はい、それは「あなたは乱数のセットが唯一の漸近的な意味で所望の分布のパラメータを持っていることを認識しなければならない。」全体の難易度
です
真ですが、これは問題ではありません。戦略はp = 2で動作しますが、サンプルサイズに関係なくp> 2で失敗します。
"相関が常に-0.188より大きくなければならないという希望があった場合、このサンプリング手法は数値が擬似ランダムであるため失敗しました。実際には、サンプルサイズは十分に大きいです。
それは、サンプルサイズの問題は、B/Cのp> 2であなたもサンプルサイズの成長として、相関のための右の範囲に収束を守らないではないです:それは、私はあなたがここに投稿する前に提案手法を試してみました明らかに欠陥がある。
"単純な拒否スキームを採用することで、サンプリングを行い、希望の範囲内の相関を持つサンプルが所望の特性を持つまで繰り返すことができます。
オプションではないが、pが大きい(たとえば10より大きい)場合、このオプションは扱いにくいです。
"相関を計算してください。適切な範囲に収まらないので、データの実際の(測定された)共分散行列に必要な摂動を特定し、相関が望ましいものになるようにします。 QPについては
同上
、私は制約を理解し、私はあなたが目的関数を定義する方法についてはよく分かりません。いくつかの初期行列から「最小の摂動」を使用することで、常に同じ(解)行列を得ることになります:すべてのオフ対角要素は、2つの境界のどちらかに正確に等しくなります。プラスそれは過労のようなものですか?人に来て
、単純に何か
がなければならないあなたは、擬似ランダム意味、それは*セミ*ランダム –
良い点に対する正しい用語ですが、私は彼が半擬似ランダムを(擬似が想定される意味を考えますコンピュータのランダム性について話をしています:-) – fortran
両方に感謝、私は質問を更新しました。セミは相関の境界を指します –