您可以Interpolation在容器和高度上使用HistogramList以产生平滑PDF的用于ProbabilityDistribution. 通过平滑分布,您无需担心增加或减少 bin 大小。
例如,与data
SeedRandom[9123]
data = RandomVariate[WeibullDistribution[2, 2], 10^6];
拥有Histogram
hist = Histogram[data, Automatic, "PDF", PlotRange -> Full]

你有直方图箱和高度,所以我只会HistogramList用来收集它们并用ListStepPlot.
hlData = HistogramList[data, Automatic, "PDF"];
lstep = ListStepPlot[Transpose@{First@hlData, Append[Last@hlData, 0]}, Mesh -> Full]

InterpolatingFunction可以从箱和高度构造平滑Interpolation。
ifData = Interpolation[Transpose@{First@hlData, Append[Last@hlData, 0]}];
ifPlot = Plot[ifData[x], {x, Sequence @@ First@ifData["Domain"]}, PlotStyle -> Purple]

可以看出,它与箱和高度相匹配。
Show[hist, ifPlot, lstep]

我们想用这个函数作为PDFa 的ProbabilityDistribution,这样NProbability就可以计算和RandomVariates生成。
该函数需要在其域上是非负的。
NMinimize[ifData[x], {x} ∈ Interval @@ ifData["Domain"]]
{0., {x -> 7.4}}
最小值为零,x等于7.4。
必须Integrate越过1它的域。
NIntegrate[ifData[x], {x} ∈ Interval @@ ifData["Domain"]] // N
0.996821
积分只是害羞,但我们可以1询问PDF。ProbabilityDistribution"Normalize"
dist = ProbabilityDistribution[ifData[x], {x, Sequence @@ First@ifData["Domain"]},
Method -> "Normalize"];
此分布可用于随机变量指南RandomVariate的Probability和其他函数。
可以计算概率
NProbability[0.9 < x < 2.2, x \[Distributed] dist]
0.514336
生成的伪随机数
RandomVariate[dist, 5]
{0.494373, 1.16545, 2.94366, 4.06116, 1.72519}
可以计算 , 和其他SurvivalFunction属性。CDF
Plot[SurvivalFunction[dist, x], {x, Sequence @@ First@ifData["Domain"]},
PlotStyle -> Purple]

更新
扩大垃圾箱会导致信息丢失,所以我不建议这样做。但是,如果您必须Subdivide进入InterpolatingFunction "Domain"您需要的垃圾箱数量。
downsamples =
Function[numbins,
With[{bins = Subdivide[##, numbins] & @@ First@ifData["Domain"]},
{
bins,
NProbability[#1 < x < #2, x \[Distributed] dist] & @@@
Partition[bins, 2, 1]
}]
] /@ Range[36, 12, -6];
在评论中解决您的问题;5 个案例中的每个案例的总概率仍然为 1。
Total[downsamples[[All, 2]], {2}]
{1., 1., 1., 1., 1.}
但是,请注意 PDF 直方图的差异。
ListStepPlot[
Transpose[{First@#, Append[Last@#, 0]}] & /@ downsamples,
Mesh -> Full,
PlotRange -> All,
PlotLegends -> StringTemplate["`` bins"] /@ Range[36, 12, -6]]

初始直方图有 37 个 bin。上图显示了随着 bin 宽度的扩大(bin 数量减少),信息是如何丢失的。我会建议与之合作dist。
希望这可以帮助。