public void WinsorizedHarrellDavisQuantileEstimatorTest1() { var randomGenerator = NormalDistribution.Standard.Random(42); double[] values = randomGenerator.Next(10); values[0] = 1_000_000; var sample = values.ToSample(); var hdEstimator = new HarrellDavisQuantileEstimator(); var whdEstimator = new WinsorizedHarrellDavisQuantileEstimator(0.01); double hdMedian = hdEstimator.GetMedian(sample); double whdMedian = whdEstimator.GetMedian(sample); output.WriteLine("Median-HD = " + hdMedian.ToStringInvariant()); output.WriteLine("Median-WHD = " + whdMedian.ToStringInvariant()); Assert.True(Math.Abs(whdMedian) < 4); }
public void WinsorizedIntervals(double trimPercent) { var estimator = new WinsorizedHarrellDavisQuantileEstimator(trimPercent); output.WriteLine("| n | winsorized | breakdown |"); var ns = Enumerable.Range(2, 49).Concat(new[] { 100, 500, 1_000, 10_000, 100_000 });