Open lifenjoiner opened 3 years ago
Explanation:
Average
in column I is the exact average of the selected samples. It is the ideal result, the base that others will compare to.N
in cell A2 is the moving window size.Alpha
in cell B2 is the solid decay, the W of EWMA.n
in column C is the index of samples.V
in column D is the random value as samples.alpha
in column E is the just-in-time decay, the W of EWMA.EWMA Variant
is the result of adding the the 1st sample by using Add
.EWMA Continuing
is the result of adding the the 1st sample by using Set
.EWMA Warmup
is the result of the VividCortex implement with WARMUP_SAMPLES = N - 1
, and adding the the 1st sample by using Add
.Comparing to VividCortex implement:
EWMA Continuing
should be the same, while they both add the the 1st sample by using Set
.
EWMA Warmup
should be the same, while they both use the moving window size equal to WARMUP_SAMPLES
.
More discussions: https://github.com/DNSCrypt/dnscrypt-proxy/pull/2079
2 strategies at the "warmup" stage related to how to deal with the outliers:
Add
. The following samples have more (decreasing to stable) weight.Set
. The following samples have less weight.Things you may need to consider:
Anyway, the above is a rough/lazy way. If you really care about outliers, you should deal with them in an earlier stage: the validate/cleanup stage, for all samples.
Here is an easy to use helper to give you a glance over different EWMA strategies: EWMA_cmp.xlsx
Just refresh the random samples or change the
N
:)