List of usage examples for org.apache.commons.math.stat.descriptive DescriptiveStatistics addValue
public void addValue(double v)
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(); } }