0

我正在尝试在某些数据上叠加正态分布。我已经对数据进行了分箱和绘制,我想生成一个正态分布进行比较。我为此使用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);
});

我试过乘以样本量(除其他外),但无济于事。有没有办法将概率转换为频率或以其他方式“缩放”正态分布?

4

1 回答 1

1

我终于解决了这个问题。把它留在这里给任何走这条路的人。

解决方案是将得到的正态分布值乘以比例因子binSize * sampleSize

简单来说,得到的正态分布曲线下的面积为 1(根据定义)。该因子binSize * sampleSize将为您提供较大曲线下的总面积。因此,您缩放正态分布以使面积相等。

我不确定这是最好的解释,但这里有一些关于解决方案的指导。它是在 excel 中完成的,但它为我指明了正确的方向。

于 2017-03-22T11:31:11.450 回答