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

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

Introduction

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

Prototype

public void addValue(double v) 

Source Link

Document

Adds the value to the dataset.

Usage

From source file:org.xenmaster.monitoring.data.Record.java

protected final void applyStatistics(Collection<Double> values) {
    // Let's get statistical
    DescriptiveStatistics ds = new DescriptiveStatistics();

    for (double util : values) {
        ds.addValue(util);
    }//w  w w  .  ja  v  a2 s .  c  o  m

    double a = ds.getMean();
    double stdDev = ds.getStandardDeviation();

    // TODO: actually test this and generate warning
    // Check if all vCPUs have a fair load, e.g. [45, 60, 50] would be fair, [90, 4, 2] indicates you should learn threading
    if (stdDev > 0.8) {
        Logger.getLogger(getClass())
                .info((vm ? "VM" : "Host") + " " + reference + " has an unfair load distribution");
    }

    if (stdDev > 0) {
        try {
            NormalDistributionImpl ndi = new NormalDistributionImpl(ds.getMean(), stdDev);
            double cp = ndi.cumulativeProbability(90);
            if (cp > 0.8) {
                // 80% of the CPUs have a >90% load
                // TODO warning
                Logger.getLogger(getClass()).info((vm ? "VM" : "Host") + " " + reference
                        + " has a load >=90% on 80% of the available CPUs");
            }
        } catch (MathException ex) {
            Logger.getLogger(getClass()).error("Flawed maths", ex);
        }
    }
}

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  2 s. co  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  ww  w  .  ja va  2  s. c  o m*/
        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.AbstractPersonProperty.java

@Override
public DescriptiveStatistics statistics(Set<? extends Person> persons) {
    TObjectDoubleHashMap<Person> values = values(persons);
    DescriptiveStatistics stats = new DescriptiveStatistics();

    TObjectDoubleIterator<Person> it = values.iterator();
    for (int i = 0; i < values.size(); i++) {
        it.advance();/*w w  w .  j  a va 2s .  c  o m*/
        stats.addValue(it.value());
    }

    return stats;
}

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

public DescriptiveStatistics statistics(Set<? extends Trajectory> trajectories, boolean ignoreZeros) {
    if (!ignoreZeros)
        return this.statistics(trajectories);
    else {// www .j av a 2s.com
        TObjectDoubleHashMap<Trajectory> values = values(trajectories);
        DescriptiveStatistics stats = new DescriptiveStatistics();

        int zeros = 0;
        TObjectDoubleIterator<Trajectory> it = values.iterator();
        for (int i = 0; i < values.size(); i++) {
            it.advance();
            if (it.value() > 0)
                stats.addValue(it.value());
            else
                zeros++;
        }

        if (zeros > 0)
            logger.debug(String.format("Ignored %1$s zero values.", zeros));

        return stats;
    }
}

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

@Override
public DescriptiveStatistics statistics(Set<? extends Trajectory> trajectories) {
    TObjectDoubleHashMap<Trajectory> values = values(trajectories);
    DescriptiveStatistics stats = new DescriptiveStatistics();

    TObjectDoubleIterator<Trajectory> it = values.iterator();
    for (int i = 0; i < values.size(); i++) {
        it.advance();/* ww  w .j  ava 2 s  . c om*/
        stats.addValue(it.value());
    }

    return stats;
}

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

@Override
public void analyze(Set<Trajectory> trajectories, Map<String, DescriptiveStatistics> results) {
    DescriptiveStatistics durStats = new DescriptiveStatistics();
    DescriptiveStatistics arrStats = new DescriptiveStatistics();

    for (Trajectory t : trajectories) {
        Activity act = (Activity) t.getElements().get(2);
        String type = act.getType();
        if (!type.equals("idle")) {
            ActivityDesires desire = desires.get(t.getPerson());

            double desiredDuration = desire.getActivityDuration(type);
            double desiredStartTime = desire.getActivityStartTime(type);

            double realizedDuration = t.getTransitions().get(3) - t.getTransitions().get(2);
            double realizedStartTime = t.getTransitions().get(2);

            durStats.addValue(Math.abs(realizedDuration - desiredDuration));
            arrStats.addValue(Math.abs(realizedStartTime - desiredStartTime));
        }/*from w w  w.  j a v a2s  . co m*/
    }
    results.put("dur_diff", durStats);
    results.put("arr_diff", arrStats);

    try {
        writeHistograms(durStats, "dur_diff", 50, 50);
        writeHistograms(arrStats, "arr_diff", 50, 50);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

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

@Override
public void analyze(Set<Trajectory> trajectories, Map<String, DescriptiveStatistics> results) {
    DescriptiveStatistics timeStatsAll = new DescriptiveStatistics();
    DescriptiveStatistics visitorStatsAll = new DescriptiveStatistics();
    Map<String, DescriptiveStatistics> timeStatsTypeMap = new HashMap<String, DescriptiveStatistics>();
    Map<String, DescriptiveStatistics> visitorStatsTypeMap = new HashMap<String, DescriptiveStatistics>();

    for (Trajectory t : trajectories) {
        Person person = t.getPerson();/*from   w  w  w  . j  a v a  2 s. c  o m*/
        SocialVertex ego = personVertexMap.get(person);
        String type = ((Activity) t.getElements().get(2)).getType();

        DescriptiveStatistics timeStatsType = timeStatsTypeMap.get(type);
        DescriptiveStatistics visitorStatsType = visitorStatsTypeMap.get(type);

        if (timeStatsType == null) {
            timeStatsType = new DescriptiveStatistics();
            timeStatsTypeMap.put(type, timeStatsType);
            visitorStatsType = new DescriptiveStatistics();
            visitorStatsTypeMap.put(type, visitorStatsType);
        }

        int visitors = 0;
        List<Person> alterPersons = new ArrayList<Person>(ego.getNeighbours().size());
        for (SocialVertex alter : ego.getNeighbours()) {
            double time = tracker.timeOverlap(person, alter.getPerson().getPerson());
            if (time > 0) {
                timeStatsType.addValue(time);
                timeStatsAll.addValue(time);
            }

            alterPersons.add(alter.getPerson().getPerson());
        }

        visitors = tracker.metAlters(person, alterPersons);
        visitorStatsType.addValue(visitors);
        visitorStatsAll.addValue(visitors);
    }

    String timeKey = "t_joint";
    results.put(timeKey, timeStatsAll);
    for (Entry<String, DescriptiveStatistics> entry : timeStatsTypeMap.entrySet()) {
        results.put("t_joint_" + entry.getKey(), entry.getValue());
    }

    String visitorKey = "visitors";
    results.put(visitorKey, visitorStatsAll);
    for (Entry<String, DescriptiveStatistics> entry : visitorStatsTypeMap.entrySet()) {
        results.put("visitors_" + entry.getKey(), entry.getValue());
    }

    if (outputDirectoryNotNull()) {
        try {
            writeHistograms(timeStatsAll, timeKey, 50, 50);
            writeHistograms(visitorStatsAll, new DummyDiscretizer(), visitorKey, false);

            for (Entry<String, DescriptiveStatistics> entry : timeStatsTypeMap.entrySet()) {
                writeHistograms(entry.getValue(), "t_joint_" + entry.getKey(), 50, 50);
            }

            for (Entry<String, DescriptiveStatistics> entry : visitorStatsTypeMap.entrySet()) {
                writeHistograms(entry.getValue(), new DummyDiscretizer(), "visitors_" + entry.getKey(), false);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

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

@Override
public void analyze(Set<Trajectory> trajectories, Map<String, DescriptiveStatistics> results) {
    Set<String> modes = TrajectoryUtils.getModes(trajectories);
    modes.add(null);/*www. j  av a 2 s.c  om*/

    for (String mode : modes) {
        PlanElementCondition<Leg> condition;
        if (mode != null) {
            condition = new LegModeCondition(mode);
        } else {
            condition = DefaultCondition.getInstance();
        }

        DescriptiveStatistics stats = new DescriptiveStatistics();
        for (Trajectory t : trajectories) {
            int cnt = 0;
            for (int i = 1; i < t.getElements().size(); i += 2) {
                if (condition.test(t, (Leg) t.getElements().get(i), i)) {
                    cnt++;
                }
            }
            stats.addValue(cnt);
        }

        String key;
        if (mode == null)
            key = String.format("%s.all", KEY, mode);
        else
            key = String.format("%s.%s", KEY, mode);

        results.put(key, stats);

        if (outputDirectoryNotNull()) {
            try {
                writeHistograms(stats, DummyDiscretizer.getInstance(), key, false);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

}

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

@Override
public void analyze(Set<Trajectory> trajectories, Map<String, DescriptiveStatistics> results) {
    DescriptiveStatistics stats = new DescriptiveStatistics();
    for (Trajectory t : trajectories) {
        stats.addValue(((PersonImpl) t.getPerson()).getAge());
    }/*from   w  ww  .ja va  2  s .  com*/

    results.put("person_age", stats);
    try {
        writeHistograms(stats, new DummyDiscretizer(), "age", false);
    } catch (IOException e) {
        e.printStackTrace();
    }
}