0

やあみんな、GSL(Gnu Statistics Library)を使用して、Cの数式の標準正規分布の累積分布関数を計算しようとしています。

gslをインストールして含めましたが、使用方法を理解するのに問題があります。

必要な機能は次のとおりです。

double gsl_ran_lognormal (const gsl_rng * r, double zeta, double sigma)

私が持っている数式には、累積分布関数に渡す数値が1つしかないため、ここで何をすべきかよくわかりません。(これはおそらく統計についての私のくだらない理解のためです)

1つの入力変数でgslを使用してcdfを取得する方法を誰かが教えてくれれば幸いです。

ドキュメントには次のように書かれています。

この関数は、対数正規分布から確率変数を返します。分布関数は、

p(x)dx = {1 \ over x \ sqrt {2 \ pi \ sigma ^ 2}} \ exp(-(\ ln(x)-\ zeta)^ 2/2 \ sigma ^ 2)dx

x>0の場合。

基本的に、誰かがgsl_rng、zeta、およびsigmaがどうあるべきかを説明できますか?

編集:わかりました、それを正常にするために、ゼータは0(mu)であり、シグマは1(std dev)である必要があると思いますか?そうですか?gsl_rngとは何ですか?

4

3 に答える 3

2

タイラー、

あなたの問題がすでに解決されていることを願っています。私自身はプログラミングの第一人者ではありませんが、手助けしようとしています。いくつかのポイントがあると思います。

必要なのはgsl_cdf_gaussian_Pです。もう1つ(gsl_ran_lognormal)は、2つの理由で不適切です。

1)これは乱数ジェネレーターであり、累積分布ではありません。つまり、必要に応じて、確率ではなく、特定の分布に従う数値が得られます。

2)対数正規分布を参照しますが、正規分布が必要です。

正規の累積分布が得られたら、平均を0に、分散を1に設定して、標準正規にすることができます。

これで状況が明らかになることを願っています。そうでなければ、私は朝またここにいます。

于 2012-11-11T17:43:24.730 に答える
2

gsl_rng初期化された(そして可能な場合はカスタムシードされた)乱数ジェネレーターへのポインターです。

たとえば、http://www.csse.uwa.edu.au/programming/gsl-1.0/gsl-ref_16.htmlを参照してください。

于 2010-06-30T15:20:18.533 に答える
1

あなたの関数は、対数正規分布で乱数を生成するためのものです。累積分布を探している場合は、GSLマニュアルの「特殊機能」セクションのセクション7.15を確認する必要があります。

于 2012-05-22T20:41:46.257 に答える