0

一連の値の累積分布関数を計算しようとしています。

gsl を使用してヒストグラムを計算し、ここから CDF を計算しようとしましたが、値が 1 つずれているようです。

これは私が使用しているコードです:

gHist =  gsl_histogram_alloc((maxRange - minRange) / 5);
gsl_histogram_set_ranges_uniform(gHist, minRange, maxRange);

for (int j = 0; j < ValidDataCount; j++)
gsl_histogram_increment (gHist, ValAdd[j]);

gsl_histogram_pdf * p = gsl_histogram_pdf_alloc(gsl_histogram_bins(gHist));
gsl_histogram_pdf_init (p,  gHist);

for (int j = 0; j < gsl_histogram_bins(gHist) + 1 ; j++)
printf ("%f ", p->sum[j]);

ヒストグラムは次のようになります: 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 .... このように続きます。合計20個の値があります

そして累積分布関数は次のとおりです。

最初の位置に 0 があるのはなぜですか? 0.05から始めるべきではありませんか?

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

4

1 に答える 1