Example usage for org.apache.commons.math.stat.descriptive DescriptiveStatistics getSum

List of usage examples for org.apache.commons.math.stat.descriptive DescriptiveStatistics getSum

Introduction

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

Prototype

public double getSum() 

Source Link

Document

Returns the sum of the values that have been added to Univariate.

Usage

From source file:playground.artemc.pricing.SocialCostCalculator.java

private void calcStatistics() {

    // Get a DescriptiveStatistics instance
    DescriptiveStatistics tripStats = new DescriptiveStatistics();
    DescriptiveStatistics tripStatsNormalized = new DescriptiveStatistics();

    // Add the data from the array
    for (LegTrip legTrip : performedLegs) {
        double distance = 0.0;
        double cost = 0.0;
        for (LinkTrip linkTrip : legTrip.linkTrips) {
            double socialCosts = calcSocCosts(linkTrip.link_id, linkTrip.enterTime);
            if (socialCosts > 0.0)
                cost = cost + socialCosts;
            distance = legTrip.distance + network.getLinks().get(linkTrip.link_id).getLength();
        }//from   w ww.j  a  v  a 2s .c o  m

        legTrip.distance = distance;
        legTrip.cost = cost;

        tripStats.addValue(cost);

        /*
         * Normalize a legs social cost by dividing them by the leg travel time or leg distance.
         */
        //double legTravelTime = legTrip.arrivalTime - legTrip.departureTime;
        if (cost > 0.0 && legTrip.distance > 0.0)
            tripStatsNormalized.addValue(cost / legTrip.distance);
    }

    // Compute some statistics
    double sum = tripStats.getSum();
    double mean = tripStats.getMean();
    double std = tripStats.getStandardDeviation();
    double median = tripStats.getPercentile(50);
    double quantile25 = tripStats.getPercentile(25);
    double quantile75 = tripStats.getPercentile(75);

    double sumNormalized = tripStatsNormalized.getSum();
    double meanNormalized = tripStatsNormalized.getMean();
    double stdNormalized = tripStatsNormalized.getStandardDeviation();
    double medianNormalized = tripStatsNormalized.getPercentile(50);
    double quantile25Normalized = tripStatsNormalized.getPercentile(25);
    double quantile75Normalized = tripStatsNormalized.getPercentile(75);

    log.info("Sum of all leg costs: " + sum);
    log.info("Mean leg costs: " + mean);
    log.info("Standard deviation: " + std);
    log.info("Median leg costs: " + median);
    log.info("25% quantile leg costs: " + quantile25);
    log.info("75% quantile leg costs: " + quantile75);

    log.info("Normalized sum of all leg costs: " + sumNormalized);
    log.info("Normalized mean leg costs: " + meanNormalized);
    log.info("Normalized standard deviation: " + stdNormalized);
    log.info("Normalized median leg costs: " + medianNormalized);
    log.info("Normalized 25% quantile leg costs: " + quantile25Normalized);
    log.info("Normalized 75% quantile leg costs: " + quantile75Normalized);

    meanSocialCosts.add(mean);
    medianSocialCosts.add(median);
    quantil25PctSocialCosts.add(quantile25);
    quantil75PctSocialCosts.add(quantile75);

    meanNormalizedSocialCosts.add(meanNormalized);
    medianNormalizedSocialCosts.add(medianNormalized);
    quantil25PctNormalizedSocialCosts.add(quantile25Normalized);
    quantil75PctNormalizedSocialCosts.add(quantile75Normalized);
}

From source file:playground.christoph.socialcosts.SocialCostCalculator.java

private void calcStatistics() {

    // Get a DescriptiveStatistics instance
    DescriptiveStatistics stats = new DescriptiveStatistics();
    DescriptiveStatistics statsNormalized = new DescriptiveStatistics();

    // Add the data from the array
    for (LegTrip legTrip : performedLegs) {
        double costs = 0.0;
        for (LinkTrip linkTrip : legTrip.linkTrips) {
            double socialCosts = calcSocCosts(linkTrip.link_id, linkTrip.enterTime);
            if (socialCosts > 0.0)
                costs = costs + socialCosts;
        }//from w  w  w . j  a  v  a 2s . c  om
        stats.addValue(costs);

        /*
         * Normalize a legs social cost by dividing them by the leg travel time.
         * As a result we get something like social costs per traveled second.
         * Another option would be doing this on link level instead of leg level.
         */
        double legTravelTime = legTrip.arrivalTime - legTrip.departureTime;
        if (costs > 0.0 && legTravelTime > 0.0)
            statsNormalized.addValue(costs / legTravelTime);
    }

    // Compute some statistics
    double sum = stats.getSum();
    double mean = stats.getMean();
    double std = stats.getStandardDeviation();
    double median = stats.getPercentile(50);
    double quantile25 = stats.getPercentile(25);
    double quantile75 = stats.getPercentile(75);

    double sumNormalized = statsNormalized.getSum();
    double meanNormalized = statsNormalized.getMean();
    double stdNormalized = statsNormalized.getStandardDeviation();
    double medianNormalized = statsNormalized.getPercentile(50);
    double quantile25Normalized = statsNormalized.getPercentile(25);
    double quantile75Normalized = statsNormalized.getPercentile(75);

    log.info("Sum of all leg costs: " + sum);
    log.info("Mean leg costs: " + mean);
    log.info("Standard deviation: " + std);
    log.info("Median leg costs: " + median);
    log.info("25% quantile leg costs: " + quantile25);
    log.info("75% quantile leg costs: " + quantile75);

    log.info("Normalized sum of all leg costs: " + sumNormalized);
    log.info("Normalized mean leg costs: " + meanNormalized);
    log.info("Normalized standard deviation: " + stdNormalized);
    log.info("Normalized median leg costs: " + medianNormalized);
    log.info("Normalized 25% quantile leg costs: " + quantile25Normalized);
    log.info("Normalized 75% quantile leg costs: " + quantile75Normalized);

    meanSocialCosts.add(mean);
    medianSocialCosts.add(median);
    quantil25PctSocialCosts.add(quantile25);
    quantil75PctSocialCosts.add(quantile75);

    meanNormalizedSocialCosts.add(meanNormalized);
    medianNormalizedSocialCosts.add(medianNormalized);
    quantil25PctNormalizedSocialCosts.add(quantile25Normalized);
    quantil75PctNormalizedSocialCosts.add(quantile75Normalized);
}

From source file:playground.johannes.coopsim.analysis.TripCountTask.java

@Override
public void analyze(Set<Trajectory> trajectories, Map<String, DescriptiveStatistics> results) {
    Map<String, PlanElementConditionComposite<Leg>> conditions = Conditions.getLegConditions(trajectories);

    TripCount tripCount = new TripCount();

    for (Entry<String, PlanElementConditionComposite<Leg>> entry : conditions.entrySet()) {
        tripCount.setCondition(entry.getValue());
        DescriptiveStatistics stats = tripCount.statistics(trajectories);

        DescriptiveStatistics sum = new DescriptiveStatistics();
        sum.addValue(stats.getSum());

        results.put(String.format("%s.%s", KEY, entry.getKey()), sum);
    }/*from  w  w  w. j av  a 2 s.c o  m*/

}

From source file:playground.johannes.gsv.synPop.sim3.HamiltonianLogger.java

@Override
public void afterStep(Collection<ProxyPerson> population, Collection<ProxyPerson> mutations, boolean accepted) {
    if (iter.get() % logInterval == 0) {
        long iterNow = iter.get();
        double[] values = new double[population.size()];
        int i = 0;
        for (ProxyPerson person : population) {
            values[i] = h.evaluate(person);
            i++;/*from  w  ww  .  j a  v a  2  s .  co m*/
        }
        DescriptiveStatistics stats = new DescriptiveStatistics(values);
        double sum = stats.getSum();
        double avr = stats.getMean();
        //         double med = stats.getPercentile(50);
        double max = stats.getMax();
        double min = stats.getMin();

        StringBuilder builder = new StringBuilder();
        builder.append("Statistics for ");
        builder.append(h.getClass().getSimpleName());
        builder.append(String.format(Locale.US, ": Sum = %.4f, ", sum));
        builder.append(String.format(Locale.US, ": Avr = %.4f, ", avr));
        //         builder.append(String.format(Locale.US, ": Med = %.4f, ", med));
        builder.append(String.format(Locale.US, ": Max = %.4f, ", max));
        builder.append(String.format(Locale.US, ": Min = %.4f", min));

        logger.info(builder.toString());

        if (writer != null) {
            try {
                writer.write(String.valueOf(iterNow));
                writer.write(TAB);
                writer.write(String.valueOf(sum));
                writer.write(TAB);
                writer.write(String.valueOf(avr));
                writer.write(TAB);
                //               writer.write(String.valueOf(med));
                //               writer.write(TAB);
                writer.write(String.valueOf(min));
                writer.write(TAB);
                writer.write(String.valueOf(max));
                writer.newLine();
                writer.flush();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        TDoubleDoubleHashMap hist = Histogram.createHistogram(stats,
                FixedSampleSizeDiscretizer.create(stats.getValues(), 1, 100), true);
        Histogram.normalize(hist);
        //         String file = String.format("%s/%s.%s.txt", outdir, h.getClass().getSimpleName(), iterNow);
        String file = String.format("%s/%s", outdir, h.getClass().getSimpleName());
        File afile = new File(file);
        afile.mkdirs();
        try {
            TXTWriter.writeMap(hist, "value", "frequency", String.format("%s/%s.txt", file, iterNow));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    iter.incrementAndGet();
}