二変量正規分布とスチューデント T 分布からランダム サンプルを生成する最良の方法は何ですか? どちらの場合も、シグマは 1、平均は 0 です。したがって、私が本当に関心を持っている唯一のパラメーターは、相関 (および学生 t の自由度) です。C++ でソリューションを作成する必要があるため、残念ながら、MatLab または Mathematica から既に実装されている関数を使用することはできません。
3 に答える
GNU GSL ライブラリを使用できます。二変量法線については、こちらを参照してください。
http://www.gnu.org/software/gsl/manual/html_node/The-Bivariate-Gaussian-Distribution.html
スチューデントの t 分布は次のとおりです。
http://www.gnu.org/software/gsl/manual/html_node/The-t_002ddistribution.html
それらは簡単に使用できます。
共分散が1で平均がゼロの二変量正規分布の場合は、2つの単変量正規分布を描画するだけです。
平均(m1、m2)、標準偏差(s1、s2)、および相関rhoを使用して二変量正規分布を描画する場合は、2つの単位単変量正規分布XおよびYを描画して設定します。
u = m1 + s1 * X
v = m2 + s2 * (rho X + sqrt(1 - rho^2) Y)
次に、uとvが必要に応じて配布されます。
スチューデントTの場合、正規変量Nとカイ2乗変量Vを描画する必要があります。次に、N / sqrt(V)はT分布になります。
chi ^ 2を描画するには、パッケージを使用する必要があります。または、ガンマ分布から描画する方法については、数値レシピの第7章を参照してください(xhi ^ 2はガンマの特殊なケースです)。
Boost ライブラリのランダム ディストリビューションを確認してください。 http://www.boost.org/doc/libs/1_41_0/libs/random/random-distributions.htmlを参照してください。基本的な概念に頭を悩ませると、非常に使いやすいことがわかりました。残念ながら、統計があなたのニーズを正確に満たすかどうかを判断できるほど、私は統計について十分な知識を持っていません。