List of usage examples for org.apache.commons.math3.stat.descriptive.rank Percentile Percentile
public Percentile()
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); }