Julia:对于两个大小相等的向量,如何使直方图具有相同数量的 bin?

Julia: How to make the histogram have same number of bins for two vectors of equal size?

我想计算多个向量中的出现频率,并希望得到的 bin 数量在向量之间保持一致,以便更容易计算它们之间的 wasserstein 距离。

以下代码显示直方图给出了不同大小的 bin。

using StatsBase

for i in 1:10
    h = fit(Histogram,randn(1000), nbins=10); println(size(h.weights))
end

如何使bin数一致?

在 运行 之间完全一致的一种方法是提供的不仅仅是垃圾箱的数量;为了完全一致,我们还提供了他们的确切位置。使用 Julia 的 StatsBase,您可以通过提供“边缘”(bin 边界)来做到这一点。这是一个演示,其中 bins 运行 从 ii+1:

julia> fit(Histogram, randn(1000), -5:5)
Histogram{Int64, 1, Tuple{UnitRange{Int64}}}
edges:
  -5:5
weights: [0, 2, 23, 139, 319, 355, 143, 18, 1, 0]
closed: left
isdensity: false