したがって、私の質問は、たとえばn1(8、1)とn2(5、1)のrho = 0.2の場合、2つの正規分布確率変数がある場合、rho = 0.8または任意の方法でn1とn2を変更したいということです。その他の値。
どのようにC ++でそれを行うことができますか?
実装するライブラリ、パッケージ、またはアルゴリズムはありますか?
ヘルプやコメントは大歓迎です。
よろしく
編集:方程式を修正しました。
と仮定するとx_1
、x_2
それぞれn1(8、1)とn2(5、1)に相関があり、分布していrho
ます。次に、2つの独立したn(0,1)変数w_1
とw_2
を使用してx_1
、x_2
次のように記述できます。
x_1 = w_1 + 8,
x_2 = sqrt(1 - rho^2) * w_2 + rho * w_1 + 5.
一方、相関内でn1(8、1)とn2(5、1)に分布していると仮定するy_1
と、次のように書くこともできます。y_2
rho'
y_1 = w_1 + 8,
y_2 = sqrt(1 - rho'^2) * w_2 + rho'* w_1 + 5.
したがって、rho'
次のアルゴリズムによって、異なる相関を持つ新しい同時分布を取得できます。
y_1 = x_1,
y_2 = sqrt((1 - rho'^2)/(1 - rho^2)) * (x_2 - rho * (x_1 - 8) - 5) + rho' * (x_1 - 8) + 5.
C ++で独立した正規分布(w_1およびw_2)ジェネレーターを直接生成y_1
してy_2
使用することもできます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加