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

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

Introduction

In this page you can find the example usage for org.apache.commons.math3.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:org.hawkular.metrics.core.impl.GaugeBucketedOutputMapper.java

@Override
protected GaugeBucketDataPoint newPointInstance(long from, long to, List<DataPoint<Double>> dataPoints) {
    double[] values = new double[dataPoints.size()];
    for (ListIterator<DataPoint<Double>> iterator = dataPoints.listIterator(); iterator.hasNext();) {
        DataPoint<Double> gaugeData = iterator.next();
        values[iterator.previousIndex()] = gaugeData.getValue();
    }//from   w w w . j  ava2  s. co m

    Percentile percentile = new Percentile();
    percentile.setData(values);

    return new GaugeBucketDataPoint.Builder(from, to).setMin(new Min().evaluate(values))
            .setAvg(new Mean().evaluate(values)).setMedian(percentile.evaluate(50.0))
            .setMax(new Max().evaluate(values)).setPercentile95th(percentile.evaluate(95.0)).build();
}

From source file:org.jpmml.evaluator.DoubleVector.java

public double percentile(int percentile) {

    if (this.values == null) {
        throw new IllegalStateException();
    }//from  w w  w .ja v  a2 s.c o m

    double[] data = new double[this.size];

    System.arraycopy(this.values, 0, data, 0, data.length);

    Arrays.sort(data);

    Percentile statistic = new Percentile();
    statistic.setData(data);

    return statistic.evaluate(percentile);
}

From source file:org.jpmml.evaluator.functions.PercentileFunction.java

static private Double evaluate(Collection<?> values, int quantile) {
    List<Double> doubleValues = Lists.newArrayList();

    for (Object value : values) {
        Double doubleValue = (Double) TypeUtil.parseOrCast(DataType.DOUBLE, value);

        doubleValues.add(doubleValue);/* w  w w.  j a  v a  2  s.  com*/
    }

    double[] data = Doubles.toArray(doubleValues);

    // The data must be (at least partially) ordered
    Arrays.sort(data);

    Percentile percentile = new Percentile();
    percentile.setData(data);

    return percentile.evaluate(quantile);
}

From source file:org.jpmml.evaluator.RegressionAggregator.java

static double median(List<Double> values) {
    double[] data = Doubles.toArray(values);

    // The data must be ordered
    Arrays.sort(data);/*from  w  w  w  .j  a v a2s  .c o  m*/

    Percentile percentile = new Percentile();
    percentile.setData(data);

    return percentile.evaluate(50);
}

From source file:org.opencloudengine.flamingo.mapreduce.util.MathUtils.java

/**
 * Percentile? .//from  w w  w.  java2  s . com
 *
 * @param values   ? 
 * @param quantile ?  Quantile
 * @return Percentile
 */
public static double percentile(double[] values, double quantile) {
    Percentile percentile = new Percentile();
    return percentile.evaluate(values, quantile);
}

From source file:org.openjdk.jmh.util.ListStatistics.java

@Override
public double getPercentile(double rank) {
    if (count == 0) {
        return Double.NaN;
    }/*from   w  w  w  . jav  a 2  s. com*/

    if (rank == 0) {
        return getMin();
    }

    // trim
    values = Arrays.copyOf(values, count);

    Percentile p = new Percentile();
    return p.evaluate(values, rank);
}

From source file:org.orbisgis.sos.LeqStats.java

/**
 * Compute Leq stats using specified range.double[][] classRanges = ;
 * @param laOccurrencesRanges Min-Max range ex: new double[][]{{Double.MIN_VALUE, 45}, {45, 55}, {55, 65}, {65, 75},{75, Double.MAX_VALUE}}
 * @return LeqOccurrences instance//from ww  w  . j  av a2  s .  c o  m
 */
public LeqOccurrences computeLeqOccurrences(double[][] laOccurrencesRanges) {
    // Compute invert sum of class occurrences
    List<Double> classList = new ArrayList<>(leqClass.size());
    List<Integer> classValue = new ArrayList<>(leqClass.size());
    long sum = 0;
    double[] values = new double[rmsSumCount];
    int valCounter = 0;
    for (Map.Entry<Integer, AtomicInteger> entry : leqClass.entrySet()) {
        double leq = entry.getKey() * classStep;
        classList.add(leq);
        classValue.add(0, entry.getValue().get());
        sum += entry.getValue().get();
        for (int classValCount = 0; classValCount < entry.getValue().get(); classValCount++) {
            values[valCounter++] = leq;
        }
    }
    List<Double> sumClassValuePerc = new ArrayList<>(classValue.size());
    double invSum = 0.;
    for (int classVal : classValue) {
        invSum += classVal / (double) sum;
        sumClassValuePerc.add(0, invSum);
    }
    Percentile percentile = new Percentile();
    percentile.setData(values);
    // Fetch level at each lae
    double la10 = percentile.evaluate(100 - 10);
    double la50 = percentile.evaluate(50);
    double la90 = percentile.evaluate(100 - 90);

    // Sum percentage between provided laOccurrancesRanges
    List<Double> laOccurrencesRangesValue = new ArrayList<>();
    if (laOccurrencesRanges != null) {
        for (double[] range : laOccurrencesRanges) {
            double min = range[0];
            double max = range[1];
            double sumClass = 0;
            for (int idClass = 0; idClass < sumClassValuePerc.size(); idClass++) {
                if (classList.get(idClass) >= min) {
                    if (classList.get(idClass) < max) {
                        sumClass += classValue.get(sumClassValuePerc.size() - 1 - idClass) / (double) sum;
                    } else {
                        break;
                    }
                }
            }
            laOccurrencesRangesValue.add(sumClass);
        }
    }

    return new LeqOccurrences(la10, la50, la90, laOccurrencesRangesValue);
}

From source file:uk.ac.diamond.scisoft.ncd.passerelle.actors.forkjoin.NcdImageStatsForkJoinTransformer.java

public NcdImageStatsForkJoinTransformer(CompositeEntity container, String name)
        throws NameDuplicationException, IllegalActionException {
    super(container, name);

    maskParam = new Parameter(this, "maskParam", new ObjectToken());
    sectorROIParam = new ROIParameter(this, "sectorROIParam");

    radiiMap = new HashMap<>(numSamples);
    percentile = new Percentile();
    percentiles = new double[numBins + 1];
    distance = new EuclideanDistance();
    resBins = new ArrayList<Set<Pair<Integer, Integer>>>(numBins);
}