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

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

Introduction

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

Prototype

public double getMax() 

Source Link

Document

Returns the maximum of the available values

Usage

From source file:playground.johannes.gsv.matrices.analysis.NUTSCompare.java

private static void printStats(DescriptiveStatistics stats, String name) {
    logger.info(String.format("%s : mean = %.2f, median = %.2f, var = %.2f, min = %.2f, max = %.2f", name,
            stats.getMean(), stats.getPercentile(50), stats.getVariance(), stats.getMin(), stats.getMax()));
}

From source file:playground.johannes.gsv.misc.MatrixCompareNorm.java

/**
 * @param args/*from w  ww .ja  v  a2 s.  c o  m*/
 */
public static void main(String[] args) {
    Matrix m1 = new Matrix("1", null);
    VisumMatrixReader reader = new VisumMatrixReader(m1);
    reader.readFile("/home/johannes/gsv/matrices/IV_gesamt.O.fma");
    normMatrix(m1);

    Matrix m2 = new Matrix("2", null);
    reader = new VisumMatrixReader(m2);
    reader.readFile("/home/johannes/gsv/matrices/miv.277.fma");
    normMatrix(m2);

    int notfound = 0;
    DescriptiveStatistics oRelErrs = new DescriptiveStatistics();
    Set<String> origs = m1.getFromLocations().keySet();
    for (String origId : origs) {
        List<Entry> entries1 = m1.getFromLocEntries(origId);
        List<Entry> entries2 = m2.getFromLocEntries(origId);

        double sum1 = 0;
        for (Entry entry : entries1) {
            sum1 += entry.getValue();
        }

        if (entries2 == null) {
            oRelErrs.addValue(-1);
        } else if (entries2 != null && sum1 > 0) {
            double sum2 = 0;
            for (Entry entry : entries2) {
                sum2 += entry.getValue();
            }

            oRelErrs.addValue((sum2 - sum1) / sum1);
        } else {
            notfound++;
        }

    }

    System.err.println(String.format("%s entries out of %s not found or with zero value.", notfound,
            notfound + oRelErrs.getN()));
    System.out.println(String.format("Rel err of origins: mean=%s, med=%s, min=%s, max=%s", oRelErrs.getMean(),
            oRelErrs.getPercentile(0.5), oRelErrs.getMin(), oRelErrs.getMax()));

    DescriptiveStatistics dRelErrs = new DescriptiveStatistics();
    Set<String> dests = m1.getToLocations().keySet();
    for (String destId : dests) {
        List<Entry> entries1 = m1.getToLocEntries(destId);
        List<Entry> entries2 = m2.getToLocEntries(destId);

        double sum1 = 0;
        for (Entry entry : entries1) {
            sum1 += entry.getValue();
        }

        if (entries2 != null && sum1 > 0) {
            double sum2 = 0;
            for (Entry entry : entries2) {
                sum2 += entry.getValue();
            }

            dRelErrs.addValue((sum2 - sum1) / sum1);
        }

    }

    System.out.println(String.format("Rel err of destinations: mean=%s, med=%s, min=%s, max=%s",
            dRelErrs.getMean(), dRelErrs.getPercentile(0.5), dRelErrs.getMin(), dRelErrs.getMax()));

    Map<String, String> ids = new HashMap<>();
    ids.put("6412", "FRA");
    ids.put("11000", "BER");
    ids.put("2000", "HAM");
    ids.put("3241", "HAN");
    ids.put("5315", "KLN");
    ids.put("9162", "MUN");
    ids.put("8111", "STG");

    Map<String, Double> errors = new HashMap<>();
    for (String id1 : ids.keySet()) {
        for (String id2 : ids.keySet()) {
            if (!id1.equalsIgnoreCase(id2)) {

                Entry e1 = m1.getEntry(id1, id2);
                double val1 = e1.getValue();

                Entry e2 = m2.getEntry(id1, id2);
                double val2 = e2.getValue();

                double err = (val2 - val1) / val1;

                System.out.print(ids.get(id1));
                System.out.print(" -> ");
                System.out.print(ids.get(id2));
                System.out.print(": ");
                System.out.println(String.valueOf(err));

            }
        }
    }

}

From source file:playground.johannes.gsv.sim.cadyts.ODCountsAnalyzer.java

@Override
public void notifyAfterMobsim(AfterMobsimEvent event) {
    Network network = event.getControler().getScenario().getNetwork();
    DescriptiveStatistics diff = new DescriptiveStatistics();
    DescriptiveStatistics absDiff = new DescriptiveStatistics();
    DescriptiveStatistics error = new DescriptiveStatistics();
    DescriptiveStatistics absError = new DescriptiveStatistics();

    try {//  w w  w .j a v a2 s . c  o  m
        String file = event.getControler().getControlerIO().getIterationFilename(event.getIteration(),
                "odCounts.txt");
        BufferedWriter writer = new BufferedWriter(new FileWriter(file));

        writer.write("id\tobs\tsim");

        writer.newLine();

        for (Count count : counts.getCounts().values()) {
            if (count.getLocId().toString().startsWith(ODCalibrator.VIRTUAL_ID_PREFIX)) {
                Link link = network.getLinks().get(count.getLocId());
                double refVal = count.getMaxVolume().getValue() * 24;
                double simVal = simResults.getSimValue(link, 0, 86400, TYPE.COUNT_VEH);

                double err = (simVal - refVal) / refVal;
                error.addValue(err);
                absError.addValue(Math.abs(err));

                double delta = simVal - refVal;
                diff.addValue(delta);
                absDiff.addValue(Math.abs(delta));

                writer.write(link.getId().toString());
                writer.write("\t");
                writer.write(String.valueOf(refVal));
                writer.write("\t");
                writer.write(String.valueOf(simVal));
                writer.newLine();
            }
        }
        writer.close();

        logger.info(String.format("OD-relations diff: avr = %s, median = %s, var = %s, min = %s, max = %s",
                diff.getMean(), diff.getPercentile(50), diff.getVariance(), diff.getMin(), diff.getMax()));
        logger.info(
                String.format("OD-relations absolute diff: avr = %s, median = %s, var = %s, min = %s, max = %s",
                        absDiff.getMean(), absDiff.getPercentile(50), absDiff.getVariance(), absDiff.getMin(),
                        absDiff.getMax()));

        logger.info(String.format(
                "Relative OD-relations error: avr = %s, median = %s, var = %s, min = %s, max = %s",
                error.getMean(), error.getPercentile(50), error.getVariance(), error.getMin(), error.getMax()));
        logger.info(String.format(
                "Absolute relative OD-relations error: avr = %s, median = %s, var = %s, min = %s, max = %s",
                absError.getMean(), absError.getPercentile(50), absError.getVariance(), absError.getMin(),
                absError.getMax()));

        file = event.getControler().getControlerIO().getOutputFilename("odCountsDiff.txt");
        writeStats(file, diff, event.getIteration());

        file = event.getControler().getControlerIO().getOutputFilename("odCountsAbsDiff.txt");
        writeStats(file, absDiff, event.getIteration());

        file = event.getControler().getControlerIO().getOutputFilename("odCountsError.txt");
        writeStats(file, error, event.getIteration());

        file = event.getControler().getControlerIO().getOutputFilename("odCountsAbsError.txt");
        writeStats(file, absError, event.getIteration());
    } catch (IOException e) {
        e.printStackTrace();
    }
}

From source file:playground.johannes.gsv.sim.cadyts.ODCountsAnalyzer.java

private void writeStats(String file, DescriptiveStatistics stats, int iteration) throws IOException {
    boolean append = true;
    if (iteration == 0)
        append = false;//from ww w .ja  va  2 s . com

    BufferedWriter writer = new BufferedWriter(new FileWriter(file, append));
    if (!append) {
        writer.write("avr\tmedian\tvar\tmin\tmax");
        writer.newLine();
    }

    writer.write(String.valueOf(stats.getMean()));
    writer.write("\t");
    writer.write(String.valueOf(stats.getPercentile(50)));
    writer.write("\t");
    writer.write(String.valueOf(stats.getVariance()));
    writer.write("\t");
    writer.write(String.valueOf(stats.getMin()));
    writer.write("\t");
    writer.write(String.valueOf(stats.getMax()));
    writer.newLine();
    writer.close();
}

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 w w  . j  a  va2  s.c  o  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();
}

From source file:playground.johannes.sna.util.TXTWriter.java

public static void writeStatistics(TDoubleObjectHashMap<DescriptiveStatistics> statsMap, String xLab,
        String file) throws IOException {
    double[] keys = statsMap.keys();
    Arrays.sort(keys);//  w w  w  . j a  v a  2s.  c  om

    BufferedWriter writer = new BufferedWriter(new FileWriter(file));

    writer.write(xLab);
    writer.write(TAB);
    writer.write("mean");
    writer.write(TAB);
    writer.write("median");
    writer.write(TAB);
    writer.write("min");
    writer.write(TAB);
    writer.write("max");
    writer.write(TAB);
    writer.write("n");
    writer.newLine();

    for (double key : keys) {
        DescriptiveStatistics stats = statsMap.get(key);

        writer.write(String.valueOf(key));
        writer.write(TAB);
        writer.write(String.valueOf(stats.getMean()));
        writer.write(TAB);
        writer.write(String.valueOf(stats.getPercentile(50)));
        writer.write(TAB);
        writer.write(String.valueOf(stats.getMin()));
        writer.write(TAB);
        writer.write(String.valueOf(stats.getMax()));
        writer.write(TAB);
        writer.write(String.valueOf(stats.getN()));
        writer.newLine();
    }

    writer.close();
}

From source file:playground.johannes.snowball2.Betweenness.java

@Override
public DescriptiveStatistics calculate(Graph g, int iteration, DescriptiveStatistics reference) {
    centrality.run(g, iteration);// w  ww .  java 2s  . co m

    gamma = calcGammaExponent(centrality.betweennessValues.getValues(), 1, 1.0);
    wMean = centrality.getBetweennessWeighted();

    double norm = (g.numVertices() - 1) * (g.numVertices() - 2);
    normMean = centrality.getGraphBetweenness() / norm;
    normWMean = centrality.getBetweennessWeighted() / norm;
    double[] normValues = getNormalizedValues(centrality.betweennessValues.getValues(), g);
    gammaNorm = calcGammaExponent(normValues, 0.000001, 0);
    double[] normWValues = getNormalizedValues(centrality.betweennessWValues.toNativeArray(), g);
    gammaWNorm = calcGammaExponent(normWValues, centrality.betweennessWeights.toNativeArray(), 0.000001, 0);

    dumpStatistics(getStatisticsMap(centrality.betweennessValues), iteration);

    if (reference != null) {
        try {
            Histogram hist = centrality.getBetweennessHistogram(reference.getMin(), reference.getMax());
            hist.plot(String.format("%1$s/%2$s.histogram.png", outputDir, iteration), "Histogram");
            hist.dumpRawData(String.format("%1$s/%2$s.histogram.txt", outputDir, iteration));
        } catch (IOException e) {
            e.printStackTrace();
        }
    } else {
        try {
            Histogram hist = centrality.getBetweennessHistogram();
            hist.plot(String.format("%1$s/%2$s.histogram.png", outputDir, iteration), "Histogram");
            hist.dumpRawData(String.format("%1$s/%2$s.histogram.txt", outputDir, iteration));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    dumpValues(centrality.betweennessValues.getSortedValues(), iteration, "plain");
    double[] wvalues = centrality.betweennessWValues.toNativeArray();
    Arrays.sort(wvalues);
    dumpValues(wvalues, iteration, "weighted");
    Arrays.sort(normValues);
    dumpValues(normValues, iteration, "norm");
    Arrays.sort(normWValues);
    dumpValues(normWValues, iteration, "normW");

    centrality.dumpDegreeCorrelation(String.format("%1$s/%2$s.degreeBetweenness.txt", outputDir, iteration),
            "betweenness");
    return centrality.betweennessValues;
}

From source file:playground.johannes.snowball2.Closeness.java

@Override
public DescriptiveStatistics calculate(Graph g, int iteration, DescriptiveStatistics reference) {
    centrality.run(g, iteration);/*from  w  ww .  java2  s  .c o  m*/

    dumpStatistics(getStatisticsMap(centrality.closenessValues), iteration);
    if (reference != null) {
        try {
            Histogram hist = centrality.getClosenessHistogram(reference.getMin(), reference.getMax());
            hist.plot(String.format("%1$s/%2$s.histogram.png", outputDir, iteration), "Histogram");
            hist.dumpRawData(String.format("%1$s/%2$s.histogram.txt", outputDir, iteration));
        } catch (IOException e) {
            e.printStackTrace();
        }
    } else {
        try {
            Histogram hist = centrality.getClosenessHistogram();
            hist.plot(String.format("%1$s/%2$s.histogram.png", outputDir, iteration), "Histogram");
            hist.dumpRawData(String.format("%1$s/%2$s.histogram.txt", outputDir, iteration));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    centrality.dumpDegreeCorrelation(String.format("%1$s/%2$s.degreeCloseness.txt", outputDir, iteration),
            "closeness");

    return centrality.closenessValues;
}

From source file:playground.johannes.snowball2.Clustering.java

@SuppressWarnings("unchecked")
@Override//from   w w  w.  j av a  2s.  co  m
public DescriptiveStatistics calculate(Graph g, int iteration, DescriptiveStatistics reference) {
    Map<Vertex, Double> values = GraphStatistics.clusteringCoefficients(g);
    DescriptiveStatistics stats = new DescriptiveStatistics();

    TIntDoubleHashMap degreeClustering = new TIntDoubleHashMap();
    TIntIntHashMap numDegree = new TIntIntHashMap();

    double sum = 0;
    double wsum = 0;

    if (g instanceof SampledGraph) {
        for (Vertex v : values.keySet()) {
            int k = v.degree();

            if (!((SampledVertex) v).isAnonymous()) {
                double cc = degreeClustering.get(k);

                if (v.degree() == 1) {
                    stats.addValue(0.0);
                    //                  sum += (cc / ((SampledVertex)v).getSampleProbability());
                } else {
                    double C = values.get(v);
                    stats.addValue(C);
                    cc += C;
                    sum += (C / ((SampledVertex) v).getSampleProbability());
                }
                degreeClustering.put(k, cc);
                numDegree.put(k, numDegree.get(k) + 1);

                wsum += (1 / ((SampledVertex) v).getSampleProbability());
            }
        }
    } else {
        for (Vertex v : values.keySet()) {
            int k = v.degree();
            double cc = degreeClustering.get(k);

            wsum++;

            if (v.degree() == 1)
                stats.addValue(0.0);
            else {
                double C = values.get(v);
                stats.addValue(C);
                cc += C;
                sum += C;
            }

            degreeClustering.put(k, cc);
            numDegree.put(k, numDegree.get(k) + 1);
        }
    }

    wMean = sum / wsum;

    try {
        BufferedWriter writer = IOUtils
                .getBufferedWriter(String.format("%1$s/%2$s.degreeDependency.txt", outputDir, iteration));
        int[] keys = numDegree.keys();
        Arrays.sort(keys);
        for (int k : keys) {
            double bc = degreeClustering.get(k);
            int numV = numDegree.get(k);

            writer.write(String.valueOf(k));
            writer.write("\t");
            writer.write(String.valueOf(bc / (double) numV));
            writer.newLine();
        }
        writer.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

    dumpStatistics(getStatisticsMap(stats), iteration);

    if (reference != null) {
        Histogram hist = new Histogram(100, reference.getMin(), reference.getMax());
        plotHistogram(stats.getValues(), hist, iteration);
    } else {
        plotHistogram(stats.getValues(), new Histogram(100), iteration);
    }

    return stats;
}

From source file:playground.johannes.snowball2.Degree.java

@SuppressWarnings("unchecked")
@Override//from  www  .j av  a  2  s.  c  o m
public DescriptiveStatistics calculate(Graph g, int iteration, DescriptiveStatistics reference) {
    DescriptiveStatistics stats = new DescriptiveStatistics();
    TDoubleArrayList values = new TDoubleArrayList(g.numVertices());
    TDoubleArrayList weights = new TDoubleArrayList(g.numVertices());
    TDoubleArrayList normWeights = new TDoubleArrayList(g.numVertices());

    if (g instanceof SampledGraph) {
        Set<SampledVertex> vertices = g.getVertices();

        double wsum = 0.0;
        for (SampledVertex v : vertices) {
            if (!v.isAnonymous()) {
                values.add(v.degree());
                if (biasCorrection) {
                    weights.add(1 / v.getSampleProbability());
                    wsum += 1 / v.getSampleProbability();
                } else {
                    weights.add(1.0);
                    wsum++;
                }
            }
        }
        double k = values.size() / wsum;
        for (int i = 0; i < weights.size(); i++) {
            normWeights.add(weights.getQuick(i) * k);
            stats.addValue(values.getQuick(i) * normWeights.getQuick(i));
        }

    } else {
        Set<Vertex> vertices = g.getVertices();
        for (Vertex v : vertices) {
            stats.addValue(v.degree());
            values.add(v.degree());
            weights.add(1.0);
        }
    }

    gamma = calcGammaExponent(values.toNativeArray(), weights.toNativeArray(), 1.0, 0);

    dumpStatistics(getStatisticsMap(stats), iteration);

    if (reference != null) {
        Histogram hist = new Histogram(1.0, reference.getMin(), reference.getMax());
        plotHistogram(values.toNativeArray(), weights.toNativeArray(), hist, iteration);
    } else {
        plotHistogram(values.toNativeArray(), weights.toNativeArray(), new Histogram(1.0), iteration);
    }

    return stats;
}