Optimal streaming histograms
blog.amplitude.com
Optimal streaming histograms
1–10 of 20 posts
Re: Optimal streaming histograms
#2That said, the challenge with online (streaming) data is that you have to constantly estimate the distribution you are sampling from. Someone here might know better =)
Re: Optimal streaming histograms
#3Sure, it's an estimate so you'd have some error term but you could pass that on to the new buckets. If the total error is small enough in practice it wouldn't be a problem.
Re: Optimal streaming histograms
#4https://svn.apache.org/repos/asf/hive/trunk/ql/src/java/org/...
Re: Optimal streaming histograms
#5Re: Optimal streaming histograms
#6Could you not keep statistics on the values that went into each bucket, and use those to redistribute the contents of the bucket when the buckets needed to be resized? Sure, it's an estimate so you'd have some error term but you could pass that on to the new buckets. If the total error is small enough in practice it wouldn't be a problem.
Re: Optimal streaming histograms
#7The optimal number of bins has a rich statistics literature. The Freedman-Diaconis Rule is a good place to start: http://en.wikipedia.org/wiki/Freedman%E2%80%93Diaconis_rule That said, the challenge with online (streaming) data is that you have to constantly estimate the distribution you are sampling from. Someone here might know better =)
Re: Optimal streaming histograms
#8Re: Optimal streaming histograms
#9Re: Optimal streaming histograms
#10I think that in your case your data (server response time?) looks good because you probably have a log-logistic or log-normal distribution.
Suppose you were working with values that are exponentially distributed which is also a reasonable hypothesis for your data. In that case the log-binned histogram would like a plateau with the exception of the beginning and ending bins. In this scenario a linear-binning approach would probably be better.
Unfortunately, I think that there is no approach for bucketing that is good for all situations. Usually the best approach will depend on your data and also on what you are trying to analyze.