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

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

Introduction

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

Prototype

public double evaluate(final double p) 

Source Link

Document

Returns the result of evaluating the statistic over the stored data.

Usage

From source file:cc.recommenders.evaluation.data.BoxplotData.java

public double getPercentil(int percent) {
    refreshCache();/*  w  w  w  .j a va  2s. c o  m*/
    Percentile p = new Percentile(percent);
    // sorting is implicitly done in the evaluate method
    return p.evaluate(dataAsCachedArray);
}

From source file:com.kylinolap.job.engine.JobEngine.java

public double getPercentileJobStepDuration(double percentile) {
    Collection<Double> values = JOB_DURATION.values();
    Double[] all = (Double[]) values.toArray(new Double[values.size()]);
    Percentile p = new Percentile(percentile);
    return p.evaluate(ArrayUtils.toPrimitive(all));
}

From source file:edu.cornell.med.icb.learning.PercentileScalingRowProcessor.java

private void observeStatistics(final MutableString featureId, final int featureIndex,
        final double[] trimmedArray) {
    final Percentile lowerPercentile = new Percentile();
    lowerPercentile.setQuantile(20);/*from w  ww. j a v a2  s  .  c  om*/
    final double min = lowerPercentile.evaluate(trimmedArray);
    final Percentile higherPercentile = new Percentile();
    higherPercentile.setQuantile(80);
    final double max = higherPercentile.evaluate(trimmedArray);
    final Percentile medianPercentile = new Percentile();
    medianPercentile.setQuantile(50);
    final double median = medianPercentile.evaluate(trimmedArray);
    final double range = max - min;

    featureIndex2ScaleMedian[featureIndex] = median;
    featureIndex2ScaleRange[featureIndex] = range;
    if (featureId != null) {

        probesetScaleMedianMap.put(featureId, median);
        probesetScaleRangeMap.put(featureId, range);
    }
    if (LOG.isTraceEnabled()) {
        LOG.trace(String.format("training, featureIndex/columnId %d/%s lower: %f higher %f median %f ",
                featureIndex, featureId, min, max, median));
    }
}

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/* w ww  .j  a va  2s .  c  o 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:dk.ilios.spanner.internal.ConsoleOutput.java

/**
 * Prints a summary of a successful trial result.
 *//*from  www. j a v  a2 s.  c om*/
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.
 *///www  . j  a v  a  2s.  co  m
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();
}