原因在于直方图函数期望包含所有数据,因此它必须跨越数据的范围。
Freedman-Diaconis 规则给出了箱宽的公式。
该函数给出了bin数量的公式。
bin 的数量和 bin 的宽度之间的关系会受到数据范围的影响。
对于高斯数据,预期范围随增加。n
这是功能:
> nclass.FD
function (x)
{
h <- stats::IQR(x)
if (h == 0)
h <- stats::mad(x, constant = 2)
if (h > 0)
ceiling(diff(range(x))/(2 * h * length(x)^(-1/3)))
else 1L
}
<bytecode: 0x086e6938>
<environment: namespace:grDevices>
diff(range(x))是数据的范围。
如我们所见,它将数据范围除以 FD 公式的 bin 宽度(并向上取整)以获得 bin 的数量。
看来我可以更清楚,所以这里有一个更详细的解释:
实际的 Freedman-Diaconis 规则不是针对 bin 数量的规则,而是针对 bin-width 的规则。通过他们的分析,bin 宽度应该与成正比。由于直方图的总宽度必须与样本范围密切相关(它可能会更宽一些,因为四舍五入到很好的数字),并且预期范围随变化,因此 bin 的数量与bin-width,但必须比这更快。因此,bin 的数量不应增长为 - 接近它,但要快一点,因为范围进入它的方式。n−1/3nn1/3
查看来自 Tippett 的 1925 表 [1] 的数据,标准正态样本的预期范围似乎随着的增长而缓慢增长,尽管 - 甚至比慢:nlog(n)

(实际上,变形虫在下面的评论中指出,它应该与成比例 - 或几乎成比例,它的增长速度比您在问题中的分析似乎暗示的要慢。这让我想知道是否有出现了其他一些问题,但我尚未调查此范围效应是否完全解释了您的数据。)log(n)−−−−−√
快速浏览一下 Tippett 的数字(最高 n=1000)表明,高斯的预期范围非常接近于超过的线性,但似乎实际上与此范围内的值不成比例。log(n)−−−−−√10≤n≤1000

[1]:LHC 蒂皮特 (1925)。“关于极端个体和从正常人群中抽取的样本范围”。生物计量学 17 (3/4): 364–387