Example usage for org.apache.commons.math.stat.descriptive.rank Percentile Percentile

List of usage examples for org.apache.commons.math.stat.descriptive.rank Percentile Percentile

Introduction

In this page you can find the example usage for org.apache.commons.math.stat.descriptive.rank Percentile Percentile.

Prototype

public Percentile() 

Source Link

Document

Constructs a Percentile with a default quantile value of 50.0.

Usage

From source file:com.discursive.jccook.math.StatExample.java

public static void main(String[] args) {
    double[] values = new double[] { 2.3, 5.4, 6.2, 7.3, 23.3 };

    System.out.println("min: " + StatUtils.min(values));
    System.out.println("max: " + StatUtils.max(values));
    System.out.println("mean: " + StatUtils.mean(values));
    System.out.println("product: " + StatUtils.product(values));
    System.out.println("sum: " + StatUtils.sum(values));
    System.out.println("variance: " + StatUtils.variance(values));

    // Measures from previous example
    Min min = new Min();
    System.out.println("min: " + min.evaluate(values));
    Max max = new Max();
    System.out.println("max: " + max.evaluate(values));
    Mean mean = new Mean();
    System.out.println("mean: " + mean.evaluate(values));
    Product product = new Product();
    System.out.println("product: " + product.evaluate(values));
    Sum sum = new Sum();
    System.out.println("sum: " + sum.evaluate(values));
    Variance variance = new Variance();
    System.out.println("variance: " + variance.evaluate(values));

    // New measures
    Percentile percentile = new Percentile();
    System.out.println("80 percentile value: " + percentile.evaluate(values, 80.0));
    GeometricMean geoMean = new GeometricMean();
    System.out.println("geometric mean: " + geoMean.evaluate(values));
    StandardDeviation stdDev = new StandardDeviation();
    System.out.println("standard dev: " + stdDev.evaluate(values));
    Skewness skewness = new Skewness();
    System.out.println("skewness: " + skewness.evaluate(values));
    Kurtosis kurtosis = new Kurtosis();
    System.out.println("kurtosis: " + kurtosis.evaluate(values));

}

From source file:fr.ens.transcriptome.corsen.util.StatTest.java

public void testPercentile() {

    Percentile percentile = new Percentile();

    for (int j = 0; j < 10; j++) {
        for (int i = 0; i < 98; i++) {

            List<DataDouble> list = generate();
            double p = random.nextInt(99) + 1;

            assertEquals(percentile.evaluate(Stats.toDouble(list), p), Stats.percentile(list, p));

        }//  w  w w .j ava 2 s .  c  o m
    }

}

From source file:geogebra.kernel.statistics.AlgoPercentile.java

protected final void compute() {

    //==========================
    // validation
    size = inputList.size();//from   w w  w . j  a  v a2  s. c o m
    if (!inputList.isDefined() || size == 0) {
        result.setUndefined();
        return;
    }

    if (value == null) {
        result.setUndefined();
        return;
    } else {
        val = value.getDouble() * 100;
    }

    if (val <= 0 || val > 100) {
        result.setUndefined();
        return;
    }

    //==========================
    // compute result

    inputArray = new double[size];

    // load input value array from  geoList
    for (int i = 0; i < size; i++) {
        GeoElement geo = inputList.get(i);
        if (geo.isNumberValue()) {
            NumberValue num = (NumberValue) geo;
            inputArray[i] = num.getDouble();
        } else {
            result.setUndefined();
            return;
        }
    }

    if (percentile == null)
        percentile = new Percentile();

    percentile.setData(inputArray);
    result.setValue(percentile.evaluate(val));
}

From source file:geogebra.common.kernel.statistics.AlgoPercentile.java

@Override
public final void compute() {

    // ==========================
    // validation
    size = inputList.size();//from ww  w  . j a  va2s. c om
    if (!inputList.isDefined() || size == 0) {
        result.setUndefined();
        return;
    }

    if (value == null) {
        result.setUndefined();
        return;
    }
    val = value.getDouble() * 100;

    if (val <= 0 || val > 100) {
        result.setUndefined();
        return;
    }

    // ==========================
    // compute result

    inputArray = new double[size];

    // load input value array from geoList
    for (int i = 0; i < size; i++) {
        GeoElement geo = inputList.get(i);
        if (geo instanceof NumberValue) {
            NumberValue num = (NumberValue) geo;
            inputArray[i] = num.getDouble();
        } else {
            result.setUndefined();
            return;
        }
    }

    if (percentile == null)
        percentile = new Percentile();

    percentile.setData(inputArray);
    result.setValue(percentile.evaluate(val));
}

From source file:fr.ens.transcriptome.corsen.util.StatTest.java

public void testFirstQuartile() {

    Percentile percentile = new Percentile();

    for (int i = 0; i < 1000; i++) {

        List<DataDouble> list = generate();
        assertEquals(percentile.evaluate(Stats.toDouble(list), 25.0), Stats.firstQuartile(list));
    }/*from  www. j  a  v  a  2s  . co  m*/
}

From source file:com.google.caliper.runner.ConsoleResultProcessor.java

@Override
public void processTrial(Trial trial) {
    ImmutableListMultimap<String, Measurement> measurementsIndex = new ImmutableListMultimap.Builder<String, Measurement>()
            .orderKeysBy(Ordering.natural())
            .putAll(Multimaps.index(trial.measurements(), new Function<Measurement, String>() {
                @Override/*from  w w  w  .j  a v  a2 s  .  co m*/
                public String apply(Measurement input) {
                    return input.description();
                }
            })).build();
    for (Entry<String, Collection<Measurement>> entry : measurementsIndex.asMap().entrySet()) {
        Collection<Measurement> measurements = entry.getValue();
        ImmutableSet<String> units = FluentIterable.from(measurements)
                .transform(new Function<Measurement, String>() {
                    @Override
                    public String apply(Measurement input) {
                        return input.value().unit();
                    }
                }).toSet();
        double[] weightedValues = new double[measurements.size()];
        int i = 0;
        for (Measurement measurement : measurements) {
            weightedValues[i] = measurement.value().magnitude() / measurement.weight();
            i++;
        }
        Percentile percentile = new Percentile();
        percentile.setData(weightedValues);
        DescriptiveStatistics descriptiveStatistics = new DescriptiveStatistics(weightedValues);
        String unit = Iterables.getOnlyElement(units);
        stdout.printf("  %s%s: min=%.2f, 1st qu.=%.2f, median=%.2f, mean=%.2f, 3rd qu.=%.2f, max=%.2f%n",
                entry.getKey(), unit.isEmpty() ? "" : "(" + unit + ")", descriptiveStatistics.getMin(),
                percentile.evaluate(25), percentile.evaluate(50), descriptiveStatistics.getMean(),
                percentile.evaluate(75), descriptiveStatistics.getMax());
    }

    instrumentSpecs.add(trial.instrumentSpec());
    Scenario scenario = trial.scenario();
    vmSpecs.add(scenario.vmSpec());
    benchmarkSpecs.add(scenario.benchmarkSpec());
    numMeasurements += trial.measurements().size();
}

From source file:fr.ens.transcriptome.corsen.util.StatTest.java

public void testThirdQuartile() {

    Percentile percentile = new Percentile();

    for (int i = 0; i < 1000; i++) {

        List<DataDouble> list = generate();
        assertEquals(percentile.evaluate(Stats.toDouble(list), 75.0), Stats.thirdQuartile(list));
    }/* ww  w  .  j ava  2 s  . c o  m*/
}

From source file:dk.ilios.spanner.model.Trial.java

/**
 * Mark Trial as done and calculate results.
 *///  w  w  w . j a va2 s .c o m
public void calculateResults() {
    checkResultsCalculated(false);

    double[] weightedValues = new double[measurements.size()];
    int i = 0;
    for (Measurement measurement : measurements) {
        weightedValues[i] = measurement.value().magnitude() / measurement.weight();
        i++;
    }
    percentile = new Percentile();
    percentile.setData(weightedValues);
    descriptiveStatistics = new DescriptiveStatistics(weightedValues);
    if (experiment.getBaseline() != null) {
        experiment.getBaseline().calculateResults();
    }
    resultsCalculated = true;
}

From source file:dk.ilios.spanner.internal.ConsoleOutput.java

/**
 * Prints a summary of a successful trial result.
 *//*  w ww  .ja  v a 2  s .co  m*/
void processTrial(Trial.Result result) {
    Trial baseline = result.getExperiment().getBaseline();

    trialsCompleted++;

    stdout.printf("Trial Report (%d of %d):%n  Experiment %s%n", trialsCompleted, numberOfTrials,
            result.getExperiment());
    if (!result.getTrialMessages().isEmpty()) {
        stdout.println("  Messages:");
        for (String message : result.getTrialMessages()) {
            stdout.print("    ");
            stdout.println(message);
        }
    }
    Trial trial = result.getTrial();

    // Group measurements by their description
    // TODO Why? All measurements for a single trial should have the same description
    ImmutableListMultimap<String, Measurement> measurementsIndex = new ImmutableListMultimap.Builder<String, Measurement>()
            .orderKeysBy(Ordering.natural())
            .putAll(Multimaps.index(trial.measurements(), new Function<Measurement, String>() {
                @Override
                public String apply(Measurement input) {
                    return input.description();
                }
            })).build();

    stdout.println("  Results:");
    for (Map.Entry<String, Collection<Measurement>> entry : measurementsIndex.asMap().entrySet()) {

        Collection<Measurement> measurements = entry.getValue();
        String unit = measurements.iterator().next().value().unit();

        double[] weightedValues = new double[measurements.size()];
        int i = 0;
        for (Measurement measurement : measurements) {
            weightedValues[i] = measurement.value().magnitude() / measurement.weight();
            i++;
        }
        Percentile percentile = new Percentile();
        percentile.setData(weightedValues);
        DescriptiveStatistics descriptiveStatistics = new DescriptiveStatistics(weightedValues);
        stdout.printf("    %s%s: min=%.2f, 1st qu.=%.2f, median=%.2f (%s), mean=%.2f, 3rd qu.=%.2f, max=%.2f%n",
                entry.getKey(), unit.isEmpty() ? "" : "(" + unit + ")", descriptiveStatistics.getMin(),
                percentile.evaluate(25), percentile.evaluate(50),
                calculateDiff(percentile.evaluate(50), baseline), descriptiveStatistics.getMean(),
                percentile.evaluate(75), descriptiveStatistics.getMax());
    }

    instrumentSpecs.add(trial.instrumentSpec());
    Scenario scenario = trial.scenario();
    benchmarkSpecs.add(scenario.benchmarkSpec());
    numMeasurements += trial.measurements().size();
}

From source file:com.google.caliper.runner.ConsoleOutput.java

/**
 * Prints a summary of a successful trial result.
 *///from  ww w  .j  a  va  2  s .  c om
void processTrial(TrialResult result) {
    trialsCompleted++;
    stdout.printf("Trial Report (%d of %d):%n  Experiment %s%n", trialsCompleted, numberOfTrials,
            result.getExperiment());
    if (!result.getTrialMessages().isEmpty()) {
        stdout.println("  Messages:");
        for (String message : result.getTrialMessages()) {
            stdout.print("    ");
            stdout.println(message);
        }
    }
    Trial trial = result.getTrial();
    ImmutableListMultimap<String, Measurement> measurementsIndex = new ImmutableListMultimap.Builder<String, Measurement>()
            .orderKeysBy(Ordering.natural())
            .putAll(Multimaps.index(trial.measurements(), new Function<Measurement, String>() {
                @Override
                public String apply(Measurement input) {
                    return input.description();
                }
            })).build();
    stdout.println("  Results:");
    for (Entry<String, Collection<Measurement>> entry : measurementsIndex.asMap().entrySet()) {
        Collection<Measurement> measurements = entry.getValue();
        ImmutableSet<String> units = FluentIterable.from(measurements)
                .transform(new Function<Measurement, String>() {
                    @Override
                    public String apply(Measurement input) {
                        return input.value().unit();
                    }
                }).toSet();
        double[] weightedValues = new double[measurements.size()];
        int i = 0;
        for (Measurement measurement : measurements) {
            weightedValues[i] = measurement.value().magnitude() / measurement.weight();
            i++;
        }
        Percentile percentile = new Percentile();
        percentile.setData(weightedValues);
        DescriptiveStatistics descriptiveStatistics = new DescriptiveStatistics(weightedValues);
        String unit = Iterables.getOnlyElement(units);
        stdout.printf("    %s%s: min=%.2f, 1st qu.=%.2f, median=%.2f, mean=%.2f, 3rd qu.=%.2f, max=%.2f%n",
                entry.getKey(), unit.isEmpty() ? "" : "(" + unit + ")", descriptiveStatistics.getMin(),
                percentile.evaluate(25), percentile.evaluate(50), descriptiveStatistics.getMean(),
                percentile.evaluate(75), descriptiveStatistics.getMax());
    }

    instrumentSpecs.add(trial.instrumentSpec());
    Scenario scenario = trial.scenario();
    vmSpecs.add(scenario.vmSpec());
    benchmarkSpecs.add(scenario.benchmarkSpec());
    numMeasurements += trial.measurements().size();
}