コード例 #1
0
        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);
        }
コード例 #2
0
 public override double Next() => distribution.Quantile(Random.NextDouble());