private double GetCoveragePercentage(IContinuousDistribution distribution, Probability probability, ConfidenceLevel confidenceLevel, Random random, int sampleSize, int repetitions) { var generator = distribution.Random(random); var estimator = HarrellDavisQuantileEstimator.Instance; double trueValue = distribution.Quantile(probability); int success = 0; for (int i = 0; i < repetitions; i++) { var sample = new Sample(generator.Next(sampleSize)); var estimatedCi = estimator .GetQuantileConfidenceIntervalEstimator(sample, probability) .GetConfidenceInterval(confidenceLevel); if (estimatedCi.Contains(trueValue)) { success++; } } return(success * 1.0 / repetitions); }
public override double Next() => distribution.Quantile(Random.NextDouble());