List of usage examples for org.apache.commons.math3.stat.descriptive SummaryStatistics getStandardDeviation
public double getStandardDeviation()
From source file:net.adamjak.thomas.graph.application.gui.ResultsWidnow.java
private JTable createJtResults() { if (this.results.containsKey("resultsData")) { GraphTestResult[][] results = (GraphTestResult[][]) this.results.get("resultsData"); String[] columnNames = { "Graph ID", "Avarage time", "Standard deviation", "Minimum", "Maximum" }; Object[][] data = new Object[results[0].length][5]; for (int graph = 0; graph < results[0].length; graph++) { SummaryStatistics summaryStatistics = new SummaryStatistics(); for (int run = 0; run < results.length; run++) { summaryStatistics.addValue((double) results[run][graph].getValue("timeInSeconds")); }//w w w . j av a2 s.c om data[graph][0] = graph; data[graph][1] = summaryStatistics.getMean(); data[graph][2] = summaryStatistics.getStandardDeviation(); data[graph][3] = summaryStatistics.getMin(); data[graph][4] = summaryStatistics.getMax(); } return new JTable(data, columnNames); } else { String[] columnNames = { "Description", "Result" }; Object[][] data = new Object[this.results.keySet().size()][2]; int i = 0; for (String key : this.results.keySet()) { data[i][0] = key; data[i][1] = this.results.get(key); i++; } return new JTable(data, columnNames); } }
From source file:net.lizalab.util.RdRandRandomTest.java
/** * Tests RdRandRandom by verifying the average of the distribution of digits 0-9 * over 100 million values. Also runs the test for Random and SecureRandom for * reference./*from w ww . jav a 2 s .c o m*/ * Based on Mean Test outlined in <i>Beautiful Testing</i> published by O'Reilly. * @throws GeneralSecurityException * @throws SeedException */ @Test public final void testRdRandRandomMean() throws GeneralSecurityException, SeedException { final String methodName = "testRdRandRandom : "; SummaryStatistics stats = new SummaryStatistics(); // Initialize the array ndigits = new int[10]; for (int i = 0; i < 10; i++) { ndigits[i] = 0; stats.addValue(i); } // Calculate the confidence intervals to assert. mean = stats.getMean(); stdDev = stats.getStandardDeviation(); var = stats.getVariance(); LOGGER.info("{} Normal mean: {}", methodName, mean); LOGGER.info("{} Normal std: {}", methodName, stdDev); LOGGER.info("{} Normal var: {}", methodName, var); // 99.7% CI is within 3 std. double expectedDev3SD = 3 * stdDev / Math.sqrt(values); smLowerRng3SD = mean - expectedDev3SD; smUpperRng3SD = mean + expectedDev3SD; // 95% CI is within 2 std. double expectedDev2SD = 2 * stdDev / Math.sqrt(values); smLowerRng2SD = mean - expectedDev2SD; smUpperRng2SD = mean + expectedDev2SD; LOGGER.info("{} Generating {} values.", methodName, values); LOGGER.info("{} Sample mean expected in range {} - {} 99.7% of the times.", methodName, smLowerRng3SD, smUpperRng3SD); LOGGER.info("{} Sample mean expected in range {} - {} 95% of the times.", methodName, smLowerRng2SD, smUpperRng2SD); LOGGER.info("{} Running for Random..", methodName); Random random = new Random(); meanTest(random, false); LOGGER.info("{} Running for RdRand..", methodName); random = new RdRandRandom(); meanTest(random, true); LOGGER.info("{} Running for SecureRandom..", methodName); random = new SecureRandom(); meanTest(random, false); LOGGER.info("{} Running Uncommons Maths AESCounterRNG using RdRandSeedGenerator..", methodName); random = new AESCounterRNG(new RdRandSeedGenerator()); meanTest(random, false); }
From source file:model.scenario.OneLinkSupplyChainResult.java
public static OneLinkSupplyChainResult beefMonopolistFixedProductionsOneRun(long seed, float divideMonopolistGainsByThis, int monopolistSpeed, final boolean foodLearned, File csvFileToWrite) {//from w w w .ja va 2 s . c o m final MacroII macroII = new MacroII(seed); final OneLinkSupplyChainScenarioCheatingBuyPriceAndForcedMonopolist scenario1 = new OneLinkSupplyChainScenarioCheatingBuyPriceAndForcedMonopolist( macroII, OneLinkSupplyChainScenario.INPUT_GOOD) { @Override public void buildFoodPurchasesPredictor(PurchasesDepartment department) { if (foodLearned) department.setPredictor(new FixedIncreasePurchasesPredictor(0)); } @Override protected SalesDepartment createSalesDepartment(Firm firm, Market goodmarket) { SalesDepartment department = super.createSalesDepartment(firm, goodmarket); //To change body of overridden methods use File | Settings | File Templates. if (foodLearned && goodmarket.getGoodType().equals(OneLinkSupplyChainScenario.OUTPUT_GOOD)) department.setPredictorStrategy(new FixedDecreaseSalesPredictor(0)); return department; } @Override protected HumanResources createPlant(Blueprint blueprint, Firm firm, Market laborMarket) { HumanResources hr = super.createPlant(blueprint, firm, laborMarket); //To change body of overridden methods use File | Settings | File Templates. if (foodLearned && !blueprint.getOutputs().containsKey(OneLinkSupplyChainScenario.INPUT_GOOD)) hr.setPredictor(new FixedIncreasePurchasesPredictor(0)); return hr; } }; scenario1.setControlType(MarginalMaximizer.class); scenario1.setSalesDepartmentType(SalesDepartmentOneAtATime.class); //use standard PID parameters scenario1.setDivideProportionalGainByThis(divideMonopolistGainsByThis); scenario1.setDivideIntegrativeGainByThis(divideMonopolistGainsByThis); //100 days delay scenario1.setBeefPricingSpeed(monopolistSpeed); //no need for filter with the cheating price scenario1.setBeefPriceFilterer(null); scenario1.setBeefTargetInventory(100); scenario1.setFoodTargetInventory(100); //add csv writer if needed if (csvFileToWrite != null) DailyStatCollector.addDailyStatCollectorToModel(csvFileToWrite, macroII); macroII.setScenario(scenario1); macroII.start(); SummaryStatistics averageFoodPrice = new SummaryStatistics(); SummaryStatistics averageBeefPrice = new SummaryStatistics(); SummaryStatistics averageBeefTraded = new SummaryStatistics(); while (macroII.schedule.getTime() < 15000) { macroII.schedule.step(macroII); if (macroII.schedule.getTime() >= 14500) { averageFoodPrice.addValue(macroII.getMarket(OneLinkSupplyChainScenario.OUTPUT_GOOD) .getLatestObservation(MarketDataType.AVERAGE_CLOSING_PRICE)); averageBeefPrice.addValue(macroII.getMarket(OneLinkSupplyChainScenario.INPUT_GOOD) .getLatestObservation(MarketDataType.AVERAGE_CLOSING_PRICE)); averageBeefTraded .addValue(macroII.getMarket(OneLinkSupplyChainScenario.INPUT_GOOD).getYesterdayVolume()); } } macroII.finish(); System.out.println("done with price: " + averageBeefPrice.getMean() + ", and standard deviation : " + averageBeefPrice.getStandardDeviation()); System.out.println("seed: " + macroII.seed()); System.out.println(); //the beef price is in the ballpark return new OneLinkSupplyChainResult(averageBeefPrice.getMean(), averageFoodPrice.getMean(), averageBeefTraded.getMean(), macroII); }
From source file:gov.llnl.lc.infiniband.opensm.plugin.data.RT_NodeBalance.java
private boolean getPortsExceedingSubscription(BinList<RT_Port> caBins, SummaryStatistics stats) { // create the normal boundaries, anything outside of these are considered "out of balance" double stdDev = stats.getStandardDeviation() > RT_Balance.DEVIATION_LIMIT ? stats.getStandardDeviation() : RT_Balance.DEVIATION_LIMIT; double maxPaths = stats.getMean() + stdDev; double minPaths = stats.getMean() - stdDev; int k = 0;//from w ww . ja va 2s. co m for (ArrayList<RT_Port> caList : caBins) { if (caList != null) { double nPaths = Double.parseDouble((caBins.getKey(k)).trim()); if (nPaths > maxPaths) { // add all of these port numbers to the OverSubscribed list for (RT_Port p : caList) OverSubscribedPorts.add(p.getPortNumber()); } else if (nPaths < minPaths) { // add all of these port numbers to the UnderSubscribed list for (RT_Port p : caList) UnderSubscribedPorts.add(p.getPortNumber()); } } k++; } return true; }
From source file:io.galeb.router.tests.hostselectors.AbstractHashHostSelectorTest.java
void doRandomTest(double errorPercentMax, double limitOfNotHitsPercent, int numPopulation) { final HttpServerExchange exchange = new HttpServerExchange(null); final Host[] newHosts = numPopulation < hosts.length ? Arrays.copyOf(hosts, numPopulation) : hosts; final Map<Integer, String> remains = IntStream.rangeClosed(0, newHosts.length - 1).boxed() .collect(Collectors.toMap(x -> x, x -> "")); for (int retry = 1; retry <= NUM_RETRIES; retry++) { final SummaryStatistics statisticsOfResults = new SummaryStatistics(); final Map<Integer, Integer> mapOfResults = new HashMap<>(); new Random().ints(numPopulation).map(Math::abs).forEach(x -> { changeExchange(exchange, x); int result = getResult(exchange, newHosts); Integer lastCount = mapOfResults.get(result); remains.remove(result);/* w w w . j a v a2s.com*/ mapOfResults.put(result, lastCount != null ? ++lastCount : 0); }); mapOfResults.entrySet().stream().mapToDouble(Map.Entry::getValue) .forEach(statisticsOfResults::addValue); double errorPercent = (statisticsOfResults.getStandardDeviation() / numPopulation) * 100; assertThat(errorPercent, lessThan(errorPercentMax)); } final List<Integer> listOfNotHit = remains.entrySet().stream().map(Map.Entry::getKey).collect(toList()); assertThat(listOfNotHit.size(), lessThanOrEqualTo((int) (newHosts.length * (limitOfNotHitsPercent / 100)))); }
From source file:com.milaboratory.core.alignment.KMapper.java
@Override public String toString() { SummaryStatistics ss = getRecordSizeSummaryStatistics(); return "K=" + kValue + "; Avr=" + ss.getMean() + "; SD=" + ss.getStandardDeviation(); }
From source file:eu.crydee.alignment.aligner.ae.MetricsSummaryAE.java
@Override public void collectionProcessComplete() throws AnalysisEngineProcessException { try {/*from w w w . j a va 2 s .c om*/ String template = IOUtils.toString(getClass() .getResourceAsStream("/eu/crydee/alignment/aligner/ae/" + "metrics-summarizer-template.html")); String titledTemplate = template.replace("@@TITLE@@", "Metrics summarizer" + LocalDateTime.now().format(DateTimeFormatter.ISO_DATE_TIME)); StringBuilder sb = new StringBuilder(); sb.append("<table class=\"table table-striped ").append("table-condensed\">\n") .append(" <thead>\n").append(" <tr>\n") .append(" <th>City\\Metric</th>\n"); for (String key : keys) { sb.append(" <th>").append(methodsMetadata.get(key).getRight()).append("</th>\n"); } sb.append(" <tr>\n").append(" </thead>\n").append(" <tbody>\n"); for (String ele : results.rowKeySet()) { sb.append(" <tr>\n").append(" <td>").append(ele) .append("</td>\n"); Map<String, Samples> metricResults = results.row(ele); for (String key : keys) { Samples samples = metricResults.get(key); SummaryStatistics ss = new SummaryStatistics(); samples.samples.forEach(d -> ss.addValue(d)); double mean = ss.getMean(); boolean significant = TestUtils.tTest(samples.mu, ArrayUtils.toPrimitive(samples.samples.toArray(new Double[0])), 0.05), above = samples.mu > mean; String summary = String.format("%.3f", samples.mu) + " <small class=\"text-muted\">" + String.format("%.3f", ss.getMean()) + "" + String.format("%.3f", ss.getStandardDeviation()) + "</small>"; logger.info(ele + "\t" + key + "\t" + summary + "\t" + significant); sb.append(" <td class=\"") .append(significant ? (above ? "success" : "danger") : "warning").append("\">") .append(summary).append("</td>\n"); } sb.append(" </tr>\n"); } sb.append(" </tbody>\n").append(" </table>"); FileUtils.write(new File(htmlFilepath), titledTemplate.replace("@@TABLE@@", sb.toString()), StandardCharsets.UTF_8); } catch (IOException ex) { logger.error("IO problem with the HTML output."); throw new AnalysisEngineProcessException(ex); } }
From source file:com.github.steveash.jg2p.aligntag.AlignTagTrainer.java
private void trainExamples(InstanceList examples) throws IOException { Pipe pipe = examples.getPipe(); TransducerTrainer trainer;//from w w w.j a va 2 s . com int round = 0; CrossValidationIterator trials = new CrossValidationIterator(examples, 4, new Random(123321123)); SummaryStatistics overall = new SummaryStatistics(); while (trials.hasNext()) { log.info("Starting training round {}...", round); InstanceList[] split = trials.next(); InstanceList trainData = split[0]; InstanceList testData = split[1]; trainer = trainOnce(pipe, trainData); double thisAccuracy = evaluateOnce(round, trainData, testData, trainer); overall.addValue(thisAccuracy); round += 1; } log.info("Training on whole data..."); trainer = trainOnce(pipe, examples); writeModel(trainer); log.info("Done! overall " + overall.getMean() + " stddev " + overall.getStandardDeviation()); }
From source file:eu.crydee.alignment.aligner.ae.MetricsOneVsOneC.java
@Override public void collectionProcessComplete() throws AnalysisEngineProcessException { try {/*from w w w . ja v a 2 s . c o m*/ String template = IOUtils.toString(getClass() .getResourceAsStream("/eu/crydee/alignment/aligner/ae/" + "metrics-one-vs-one-template.html")); template = template.replace("@@TITLE@@", "Metrics comparator" + LocalDateTime.now().format(DateTimeFormatter.ISO_DATE_TIME)); template = template.replace("@@LEFTALGO@@", leftAlgoName); template = template.replace("@@RIGHTALGO@@", rightAlgoName); StringBuilder sb = new StringBuilder(); sb.append("<table class=\"table table-condensed\">\n").append(" <thead>\n") .append(" <tr>\n").append(" <th>Document\\Metric</th>\n"); for (String key : keys) { sb.append(" <th colspan=\"2\">").append(methodsMetadata.get(key).getRight()) .append("</th>\n"); } sb.append(" <tr>\n").append(" </thead>\n").append(" <tbody>\n") .append(" <tr>\n").append(" <td>\n") .append(" <strong>Total</strong>\n") .append(" </td>\n"); for (String key : keys) { SummaryStatistics ss1 = new SummaryStatistics(), ss2 = new SummaryStatistics(); List<Pair<Double, Double>> column = results.column(key).values().stream().peek(p -> { ss1.addValue(p.getLeft()); ss2.addValue(p.getRight()); }).collect(Collectors.toList()); boolean significant = TestUtils.pairedTTest(column.stream().mapToDouble(p -> p.getLeft()).toArray(), column.stream().mapToDouble(p -> p.getRight()).toArray(), 0.05); double mean1 = ss1.getMean(), mean2 = ss2.getMean(); boolean above = mean1 > mean2; String summary1 = String.format("%.3f", mean1) + "<small class=\"text-muted\">" + "" + String.format("%.3f", ss1.getStandardDeviation()) + "</small>", summary2 = String.format("%.3f", mean2) + "<small class=\"text-muted\">" + "" + String.format("%.3f", ss2.getStandardDeviation()) + "</small>"; sb.append(" <td class=\"") .append(significant ? (above ? "success" : "danger") : "warning").append("\">") .append(summary1).append("</td>\n"); sb.append(" <td class=\"") .append(significant ? (!above ? "success" : "danger") : "warning").append("\">") .append(summary2).append("</td>\n"); } sb.append(" </tr>\n"); SortedSet<String> rows = new TreeSet<>(results.rowKeySet()); for (String row : rows) { sb.append(" <tr>\n").append(" <td>").append(row) .append("</td>\n"); for (String key : keys) { Pair<Double, Double> r = results.get(row, key); sb.append(" <td>").append(String.format("%.3f", r.getLeft())) .append("</td>\n").append(" <td>") .append(String.format("%.3f", r.getRight())).append("</td>\n"); } sb.append(" </tr>\n"); } sb.append(" </tbody>\n").append(" </table>"); FileUtils.write(new File(htmlFilepath), template.replace("@@TABLE@@", sb.toString()), StandardCharsets.UTF_8); } catch (IOException ex) { logger.error("IO problem with the HTML output."); throw new AnalysisEngineProcessException(ex); } }
From source file:io.tilt.minka.business.leader.Shepherd.java
private boolean checkHealth(long now, long normalDelay, List<Heartbeat> onTime) { SummaryStatistics stat = new SummaryStatistics(); // there's some hope long lastCreation = onTime.get(0).getCreation().getMillis(); long biggestDistance = 0; for (Heartbeat hb : onTime) { long creation = hb.getCreation().getMillis(); long arriveDelay = now - creation; long distance = creation - lastCreation; stat.addValue(distance);// w w w. j ava 2 s . co m lastCreation = creation; biggestDistance = distance > biggestDistance ? distance : biggestDistance; if (logger.isDebugEnabled()) { logger.debug("{}: HB SeqID: {}, Arrive Delay: {}ms, Distance: {}ms, Creation: {}", getClass().getSimpleName(), hb.getSequenceId(), arriveDelay, distance, hb.getCreation()); } } long stdDeviationDelay = (long) Precision.round(stat.getStandardDeviation(), 2); long permittedStdDeviationDistance = (normalDelay * (long) (config.getShepherdHeartbeatMaxDistanceStandardDeviation() * 10d) / 100); /* long permittedBiggestDelay = (normalDelay * (long)(config.getShepherdHeartbeatMaxBiggestDistanceFactor()*10d) / 100); */ final NetworkShardID shardId = onTime.get(0).getShardId(); boolean healthly = stdDeviationDelay < permittedStdDeviationDistance;// && biggestDelay < permittedBiggestDelay; if (logger.isInfoEnabled()) { logger.debug("{}: Shard: {}, {} Standard deviation distance: {}/{}", getClass().getSimpleName(), shardId, healthly ? HEALTH_UP : HEALTH_DOWN, stdDeviationDelay, permittedStdDeviationDistance); } return healthly; }