ABsoluteMaybe.Statistics.ZScore.Execute C# (CSharp) Метод

Execute() публичный Метод

public Execute ( ) : double
Результат double
        public double Execute()
        {
            if (_options.Count() < 2)
                throw new TooFewOptionsException(
                    "Can't currently automatically calculate statistics for A/B tests with less than two options.");
            if (_options.Count() > 2)
                throw new TooManyOptionsException(
                    "Can't currently automatically calculate statistics for A/B tests with more than two options.");

            var option1 = _options.ElementAt(0);
            var option2 = _options.ElementAt(1);

            if (option1.Participants == 0 || option2.Participants == 0)
                throw new NotEnoughParticipantsException(
                    "Can't calculate the z-score if either of the options lacks participants.");

            var numerator = option1.ConversionRate - option2.ConversionRate;
            var frac1 = option1.ConversionRate*(1 - option1.ConversionRate)/option1.Participants;
            var frac2 = option2.ConversionRate*(1 - option2.ConversionRate)/option2.Participants;

            return numerator/Math.Pow((frac1 + frac2), 0.5);
        }

Usage Example

        public ABsoluteMaybeStatisticsResult Execute()
        {
            var zscore = new ZScore(_experiment.Options);
            var pvalue = new PValue(zscore.Execute()).Execute();

            var insufficientSampleSize = _experiment.Options.Any(o => o.Participants < 10);

            var best = _experiment.Options.OrderByDescending(o => o.ConversionRate).ThenByDescending(o => o.Conversions).First();
            var worst = _experiment.Options.OrderByDescending(o => o.ConversionRate).ThenByDescending(o => o.Conversions).Last();

            return new ABsoluteMaybeStatisticsResult(insufficientSampleSize, 1 - pvalue, best, worst);
        }
All Usage Examples Of ABsoluteMaybe.Statistics.ZScore::Execute