Наложение нормального распределения на график с помощью 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, но оно указало мне в правильном направлении.