Example usage for org.apache.commons.math3.stat.descriptive.rank Median setData

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

Introduction

In this page you can find the example usage for org.apache.commons.math3.stat.descriptive.rank Median setData.

Prototype

@Override
public void setData(final double[] values) 

Source Link

Usage

From source file:eu.crisis_economics.abm.algorithms.portfolio.returns.MedianOverHistoryStockReturnExpectationFunction.java

private double medianOfSeries(final double[] series) {
    Median median = new Median();
    median.setData(series);
    return median.evaluate(50);
}

From source file:com.moto.miletus.application.ble.neardevice.NearDeviceHolder.java

/**
 * whoWins/*from w ww.  j a v  a  2s  .co m*/
 */
private void whoWins() {
    if (list.isEmpty() || list.size() == 1) {
        broadcastDeviceRoom(null);
        setNearDevice(null);
        return;
    }

    Set<BluetoothDevice> devices = new HashSet<>();
    for (Pair<BluetoothDevice, Double> pair : list) {
        devices.add(pair.first);
    }

    Set<Pair<BluetoothDevice, Double>> medians = new HashSet<>(devices.size());
    for (BluetoothDevice device : devices) {
        List<Double> rssi = new ArrayList<>();
        for (Pair<BluetoothDevice, Double> pair : list) {
            if (pair.first.equals(device)) {
                rssi.add(pair.second);
            }
        }

        Median median = new Median();
        median.setData(ArrayUtils.toPrimitive(rssi.toArray(new Double[rssi.size()])));
        medians.add(new Pair<>(device, median.evaluate()));
    }

    Pair<BluetoothDevice, Double> winner = new Pair<>(null, -999999d);
    for (Pair<BluetoothDevice, Double> median : medians) {
        if (median.second > winner.second) {
            winner = median;
        }
    }

    broadcastDeviceRoom(winner.first);
    setNearDevice(winner.first);
}

From source file:eu.crisis_economics.abm.model.AbstractModel.java

@RecorderSource(value = "FirmPercentileStockPrices", collectionLength = 10)
public List<Double> getPercentileFirmStockPrices() {
    final int numPercentilesToPlot = 10;
    List<Double> result = new ArrayList<Double>(), allFirmStockPrices = new ArrayList<Double>();
    for (final Firm firm : population.getAgentsOfType(StockReleasingFirm.class))
        allFirmStockPrices.add(UniqueStockExchange.Instance.getStockPrice(firm.getUniqueName()));
    for (int i = 0; i < numPercentilesToPlot; ++i) {
        final double medianPercentile = (1. / numPercentilesToPlot) * (i + 1);
        Median median = new Median();
        median.setData(ArrayUtil.toPrimitive(allFirmStockPrices.toArray(new Double[0])));
        result.add(median.evaluate(medianPercentile * 1.e2));
    }/*from  w  ww .j a  v  a2 s .  co m*/
    return result;
}

From source file:plugin.trackmate.tram.trackanalyzer.TrAM.java

/**
 * Computes the median absolute difference between adjacent values within
 * each data vector./* w w  w .  j a v a 2s.com*/
 * 
 * @param timeSeries
 *            a staggered array whose rows are each independent time series.
 * @return the median absolute difference between adjacent values within all
 *         time series.
 */
public static double computeMedianAbsoluteDifference(final double[][] timeSeries) {
    if (timeSeries.length < 1)
        throw new IllegalArgumentException("Must have at least one data vector.");

    // where we accumulate all the absolute differences
    final ArrayDoubleList accum = new ArrayDoubleList();

    // compute absolute differences for each time series
    for (final double[] vals : timeSeries) {
        for (int i = 0; i < vals.length - 1; ++i)
            accum.add(Math.abs(vals[i + 1] - vals[i]));
    }

    final Median m = new Median();
    m.setData(accum.toArray());

    return m.evaluate();
}