Наложение нормального распределения на график с помощью jStat Javascript

Я пытаюсь наложить нормальное распределение на некоторые данные. Я скопировал и нанес на график данные, и я хочу сгенерировать нормальное распределение для сравнения. Я использую jStat для этого.

До сих пор мне удавалось генерировать нормальное распределение, но я не могу понять, как его "масштабировать" до размера, равного фактическим данным.

Данные нормального распределения на порядки меньше, чем фактические данные, и на графике они почти плоские.

Вот что я имею в виду:

Сравнительный сюжет. Я хочу наложить кривые

Вот график черной линии с выключенным синим. Я бы предположил, что это вероятности, а не частоты.

введите описание изображения здесь

Вот код, который я использую до сих пор для генерации нормального распределения:

// Mean & Std dev for calculating normal pdf
var mean = jStat.mean(data);
var stdev = jStat.stdev(data);

// get min & max for defining range of values for normal
var min = jStat.min(data);
var max = jStat.max(data);

// binNum = number of bins
var normData = jStat.seq(min, max, binNum, (x) => {
  return jStat.normal.pdf(x, mean, stdev);
});

Я пытался умножить на размер выборки (между прочим), но безрезультатно. Есть ли способ преобразовать вероятности в частоты или иначе "масштабировать" нормальное распределение?

1 ответ

Я наконец-то решил это. Оставить это здесь для любого, кто идет по этому пути.

Решением было умножить полученные значения нормального распределения на коэффициент масштабирования binSize * sampleSize,

Проще говоря, площадь под полученной кривой нормального распределения равна 1 (по определению). Фактор binSize * sampleSize даст вам общую площадь под большей кривой. Таким образом, вы масштабируете номинальное распределение так, чтобы площади были равны.

Я не уверен, что это лучшее объяснение, но вот несколько советов по решению. Это сделано в Excel, но оно указало мне в правильном направлении.

Другие вопросы по тегам