swk82
Bunching and spreading out are two different behaviors which both have their pros and cons. I wonder if the neural net is complex enough to enable them to switch between these behaviors depending on the age and ability to reproduce.
Using mathematical precision might take years to get it right and often there is no easy answer.
What I've been looking for is something that is fast and works "good enough". Estimating the 95th percentile and averaging it did not work well in my use case. Using the histogram method does work well although it certainly is not perfect.
rand('seed',123);
outer_rounds = 100;
inner_rounds = 100;
items = 500;
q99_mean_vec = [];
q99_complete_vec = [];
for ior = 1:outer_rounds;
q99_vec = [];
x = rand( 1, rounds*items );
for iir = 1:inner_rounds
q99_vec(iir) = quantile( x( (iir-1)*items+(1:items) )', 0.99 );
end
q99_complete_vec(ior) = quantile( x', 0.99 );
q99_mean_vec(ior) = mean( q99_vec' );
end
hist( [ q99_complete_vec; q99_mean_vec ]', [0.988:0.0001:0.991] );
xlim( [0.988, 0.991] );
legend( 'from complete data', 'from means' );
This looks biased to me even though the distribution is uniform. I did not expect that. Maybe the quantile function is broken.EDIT: I've installed R and run your code. You use a very low number of samples in the mean, so I changed it a bit. 1. I use the uniform distribution, so we know the true value of the 99th percentile is 0.99. 2. I've increased the number of samples:
x <- runif(100000)
quantile(x, 0.99)
mean(sapply(1:2000, function(i) {
i <- i * 50
quantile(x[i-49:i], 0.99)
}))
When run multiple times, I've found that the mean is always lower than the quantile over the full sample.Are you sure about this?
E.g. estimating the P99 from 200 data points each will give you a large variation. In this case averaging will be wrong. This gets worse if you experience bunching. E.g. a server will have a high ping on several packets when the load is high; after that it will have a low ping for thousands of packets when the load is low. Here, it just doesn't work.
Instead, you can get a better result by adding the (estimated) histograms and resampling the quantiles from the combined distribution function.
Here I've written how that works with a live demonstration: http://www.siegfried-kettlitz.de/blog/posts/2015/11/28/linlo...
http://www.siegfried-kettlitz.de/blog/posts/2015/11/28/linlo...
If you have questions or comments, feel free to reply or email.