Я пытаюсь вычислить среднее и стандартное отклонение равномерного [0,1) распределения, рисуя коллекцию выборок размера N для различных значений N.
У меня есть массив SAMPLE_SIZES []{2, 5, 10, 20, 40, 80} и NUM_SAMPLES 10000;
Мне удалось вычислить среднее значение средних, но у меня возникли проблемы со стандартным отклонением (сигма).
private static void plotSampleMeans(int sizeIndex){
int
i,j = 0,
// the number of draws in each group
sampleSize = SAMPLE_SIZES[sizeIndex];
double
mean = 0,
mnSum = 0,
mnSqrSum = 0,
sum = 0;
long seed;
// reset the random number generator
// check for overflow
if (Long.MAX_VALUE - CURR_SEED < SEED_INCREMENT)
CURR_SEED = Long.MIN_VALUE;
seed = CURR_SEED + SEED_INCREMENT;
CURR_SEED = seed;
rng.setSeed(seed);
// array of counts for each pixel column
int[] valCounts = new int[PANEL_WIDTH];
for (i = 0; i < NUM_SAMPLES; i++){
for (j = 0; j < sampleSize; j++) {
double x = rng.nextDouble();
sum += x;
mean = sum/sampleSize;
mnSum += mean;
mnSqrSum += Math.pow(mnSum, 2);
valCounts[j]++;
}
}
sampleMeans[sizeIndex] = mean/NUM_SAMPLES;
sampleStdDevs[sizeIndex] = Math.sqrt(mnSqrSum);
Вывод:
n sample mean sample sigma approximate normal sigma
2 0.50038 3154150872.19213 0.20412
5 0.50291 12572436666.74340 0.12910
10 0.50080 35403680532.40556 0.09129
20 0.49916 99950947154.05588 0.06455
40 0.49982 282781992497.35280 0.04564
80 0.50006 799937088950.25340 0.03227
Я должен приблизиться к нормальной сигме в этой таблице.