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.matsim.contrib.socnetgen.sna.snowball.analysis.BridgeEdgeTask.java

@Override
public void analyze(Graph g, Map<String, DescriptiveStatistics> results) {
    SampledGraph graph = (SampledGraph) g;

    int count = 0;

    for (SampledEdge e : graph.getEdges()) {
        SampledVertex v1 = e.getVertices().getFirst();
        SampledVertex v2 = e.getVertices().getSecond();

        if (v1.getSeed() != v2.getSeed())
            count++;/*w w  w  .  ja va2s .c  om*/
    }

    DescriptiveStatistics stats = new DescriptiveStatistics();
    stats.addValue(count);

    printStats(stats, KEY);
    results.put(KEY, stats);
}

From source file:org.matsim.contrib.socnetgen.sna.snowball.analysis.EstimatorTask.java

@Override
public void analyze(Graph graph, Map<String, DescriptiveStatistics> stats) {
    TIntDoubleHashMap probas = new TIntDoubleHashMap(graph.getVertices().size());
    TIntIntHashMap counts = new TIntIntHashMap(graph.getVertices().size());

    double N_estim = 0;
    for (Vertex vertex : graph.getVertices()) {
        if (((SampledVertex) vertex).isSampled()) {
            int k = vertex.getNeighbours().size();
            double p = estimator.probability((SampledVertex) vertex);

            probas.adjustOrPutValue(k, p, p);
            counts.adjustOrPutValue(k, 1, 1);

            if (p > 0)
                N_estim += 1 / p;//from w  w  w  .jav a2s. co  m
        }
    }
    DescriptiveStatistics ds = new DescriptiveStatistics();
    ds.addValue(N_estim);
    stats.put("N_estim", ds);

    double M_estim = 0;
    for (Edge edge : graph.getEdges()) {
        SampledVertex v_i = (SampledVertex) edge.getVertices().getFirst();
        SampledVertex v_j = (SampledVertex) edge.getVertices().getSecond();
        if (v_i.isSampled() && v_j.isSampled()) {
            double p_i = estimator.probability(v_i);
            double p_j = estimator.probability(v_j);
            if (p_i > 0 && p_j > 0) {
                M_estim += 1 / ((p_i + p_j) - (p_i * p_j));
                //               M_estim += 1/(p_i * p_j);
            }
        }
    }
    ds = new DescriptiveStatistics();
    ds.addValue(M_estim);
    stats.put("M_estim", ds);

    TIntDoubleIterator it = probas.iterator();
    for (int i = 0; i < probas.size(); i++) {
        it.advance();
        it.setValue(it.value() / counts.get(it.key()));
    }

    writeValues(probas, "proba");
}

From source file:org.matsim.contrib.socnetgen.sna.snowball.analysis.ObservedTransitivity.java

/**
 * Returns a descriptive statistics object containing the local clustering
 * coefficient of all sampled vertices that have been sampled up to and
 * including the next to last iteration.
 * /*from www . ja v a2 s. c  o  m*/
 * @param vertices
 *            a set of sampled vertices
 * @return a descriptive statistics object.
 */
@SuppressWarnings("unchecked")
@Override
public DescriptiveStatistics statistics(Set<? extends Vertex> vertices) {
    DescriptiveStatistics stats = new DescriptiveStatistics();
    int iteration = SnowballStatistics.getInstance().lastIteration((Set<? extends SampledVertex>) vertices);

    TObjectDoubleHashMap<? extends Vertex> coefficients = localClusteringCoefficients(vertices);
    TObjectDoubleIterator<? extends Vertex> it = coefficients.iterator();

    for (int i = 0; i < coefficients.size(); i++) {
        it.advance();
        if (((SampledVertex) it.key()).getIterationSampled() <= iteration - 1) {
            stats.addValue(it.value());
        }
    }

    return stats;
}

From source file:org.matsim.contrib.socnetgen.sna.snowball.analysis.ResponseRateTask.java

@Override
public void analyze(Graph g, Map<String, DescriptiveStatistics> stats) {
    SampledGraph graph = (SampledGraph) g;

    DescriptiveStatistics ds = new DescriptiveStatistics();
    ds.addValue(SnowballStatistics.getInstance().responseRateTotal(graph.getVertices(),
            SnowballStatistics.getInstance().lastIteration(graph.getVertices())));
    stats.put("responseRate", ds);

    if (getOutputDirectory() != null) {
        try {//from  w  w w .java2  s . co m
            BufferedWriter writer = new BufferedWriter(
                    new FileWriter(getOutputDirectory() + "/responseRates.txt"));
            writer.write("iteration\tresponseRateTotal\tresponseRatePerIteration");
            writer.newLine();
            double[] rateTotal = SnowballStatistics.getInstance().responseRateTotal(graph.getVertices());
            double[] rate = SnowballStatistics.getInstance().responseRatePerIteration(graph.getVertices());

            for (int i = 0; i < rateTotal.length; i++) {
                writer.write(String.valueOf(i));
                writer.write("\t");
                writer.write(String.valueOf(rateTotal[i]));
                writer.write("\t");
                writer.write(String.valueOf(rate[i]));
                writer.newLine();
            }
            writer.close();

        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

From source file:org.matsim.contrib.socnetgen.sna.snowball.analysis.SeedAPLTask.java

@Override
public void analyze(Graph g, Map<String, DescriptiveStatistics> results) {
    SampledGraph graph = (SampledGraph) g;
    if (seeds == null) {
        seeds = new ArrayList<SampledVertex>(graph.getVertices().size());
        for (SampledVertex vertex : graph.getVertices()) {
            Integer it = vertex.getIterationDetected();
            if (it != null && it == -1) {
                seeds.add(vertex);/*  w w w .j a  v a 2  s  .c  o  m*/
            }
        }
    }

    AdjacencyMatrix<SampledVertex> y = new AdjacencyMatrix<SampledVertex>(graph);

    int[] seedIndices = new int[seeds.size()];
    for (int i = 0; i < seeds.size(); i++) {
        seedIndices[i] = y.getIndex(seeds.get(i));
    }

    Dijkstra dijkstra = new Dijkstra(y);

    DescriptiveStatistics stats = new DescriptiveStatistics();
    DescriptiveStatistics statsDirect = new DescriptiveStatistics();

    for (int i = 0; i < seedIndices.length; i++) {
        int idx_i = seedIndices[i];
        dijkstra.run(idx_i, -1);
        for (int j = i + 1; j < seedIndices.length; j++) {
            int idx_j = seedIndices[j];
            TIntArrayList path = dijkstra.getPath(idx_i, idx_j);
            if (path != null) {
                stats.addValue(path.size());
                /*
                 * filter indirect paths
                 */
                boolean indirect = false;
                for (int k = 1; k < path.size() - 1; k++) {
                    SampledVertex v = y.getVertex(path.get(k));
                    if (v.getSeed() != seeds.get(i) && v.getSeed() != seeds.get(j)) {
                        indirect = true;
                        break;
                    }
                }

                if (!indirect)
                    statsDirect.addValue(path.size());
            }
        }
    }

    results.put(KEY, stats);
    printStats(stats, KEY);

    String key2 = KEY + "_direct";
    results.put(key2, statsDirect);
    printStats(statsDirect, key2);

    try {
        writeHistograms(stats, new LinearDiscretizer(1.0), KEY, false);
        writeHistograms(statsDirect, new LinearDiscretizer(1.0), key2, false);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

From source file:org.neo4j.nlp.impl.util.VectorUtil.java

public static double getFeatureMatchDistribution(GraphDatabaseService db, Long patternId) {
    Transaction tx = db.beginTx();/*from   w w  w  .ja  va2  s  . com*/
    Node startNode = db.getNodeById(patternId);

    // Feature match distribution
    List<Double> matches = IteratorUtil
            .asCollection(db.traversalDescription().depthFirst()
                    .relationships(withName("HAS_CLASS"), Direction.OUTGOING).evaluator(Evaluators.fromDepth(1))
                    .evaluator(Evaluators.toDepth(1)).traverse(startNode).relationships())
            .stream().map(p -> ((Integer) p.getProperty("matches")).doubleValue()).collect(Collectors.toList());

    tx.success();
    tx.close();

    double variance = 1.0;

    if (matches.size() > 1) {
        Double[] matchArr = matches.toArray(new Double[matches.size()]);
        // Get the standard deviation
        DescriptiveStatistics ds = new DescriptiveStatistics();
        matches.forEach(m -> ds.addValue(m.doubleValue() / StatUtils.sum(ArrayUtils.toPrimitive(matchArr))));
        variance = ds.getStandardDeviation();
    }

    return variance;
}

From source file:org.openehealth.ipf.commons.test.performance.processingtime.ProcessingTimeDescriptiveStatistics.java

@Override
protected void updateStatisticsWithDuration(Measurement from, Measurement to) {
    DescriptiveStatistics statistics = statisticsByMeasurementName.get(to.getName());
    ProcessingTime processingTime = ProcessingTime.getProcessingTime(from.getTimestamp(), to.getTimestamp());

    statistics.addValue(processingTime.getValue(PROCESSING_TIME_UNIT));
}

From source file:org.processmining.analysis.performance.dottedchart.model.DottedChartModel.java

public void calculateStatisticsLogical() {
    String key = null;//from  ww w .java  2  s  . com
    AbstractLogUnit item, itemOld;

    DescriptiveStatistics overallDS = timeStatistics.get(0);
    overallDS.clear();
    overallStatistics.clear();

    int index = -1;
    for (Iterator itSets = getItemMap().keySet().iterator(); itSets.hasNext();) {
        key = (String) itSets.next();
        index++;
        DescriptiveStatistics tempDS = timeStatistics.get(index + 1);
        tempDS.clear();
        if (typeHashMap.equals(ST_INST) && !instanceIDs.contains(key))
            continue;
        LogUnitList tempLogUnitList = (LogUnitList) getItemMap().get(key);

        itemOld = null;
        // iterate through items
        ArrayList<AbstractLogUnit> abst = tempLogUnitList.getEvents();
        TreeSet treeSet = new TreeSet<AbstractLogUnit>(abst);

        for (Iterator itItm = treeSet.iterator(); itItm.hasNext();) {
            item = (AbstractLogUnit) itItm.next();
            if (eventTypeToKeep != null && (!eventTypeToKeep.contains(item.getType())
                    || !instanceIDs.contains(item.getProcessInstance().getName())))
                continue;
            if (itemOld == null) {
                itemOld = item;
            } else {
                double temp = (double) item.getCurrentTimeStamp().getTime()
                        - (double) itemOld.getCurrentTimeStamp().getTime();
                overallStatistics.addValue(temp);
                tempDS.addValue(temp);
                itemOld = item;
            }
        }
        if (tempLogUnitList.getRightBoundaryTimestamp(eventTypeToKeep, instanceIDs) == null
                || tempLogUnitList.getLeftBoundaryTimestamp(eventTypeToKeep, instanceIDs) == null)
            overallDS.addValue(0);
        else
            overallDS.addValue((tempLogUnitList.getRightBoundaryTimestamp(eventTypeToKeep, instanceIDs)
                    .getTime()
                    - tempLogUnitList.getLeftBoundaryTimestamp(eventTypeToKeep, instanceIDs).getTime()));
    }
}

From source file:org.processmining.analysis.performance.dottedchart.model.DottedChartModel.java

public void calculateStatistics() {
    String key = null;/*from   www  . j ava 2s.  c  o m*/
    AbstractLogUnit item = null;
    AbstractLogUnit itemOld;

    // get the descriptiveStatistics object
    DescriptiveStatistics overallDS = getTimeStatistics().get(0);
    overallDS.clear();
    overallStatistics.clear();

    // iterate through sets
    int index = -1;
    for (Iterator itSets = getItemMap().keySet().iterator(); itSets.hasNext();) {
        index++;
        key = (String) itSets.next();
        DescriptiveStatistics tempDS = getTimeStatistics().get(index + 1);
        tempDS.clear();

        if (typeHashMap.equals(ST_INST) && !instanceIDs.contains(key))
            continue;

        LogUnitList tempLogUnit = (LogUnitList) getItemMap().get(key);

        itemOld = null;
        // iterate through items
        ArrayList<AbstractLogUnit> abst = ((LogUnitList) getItemMap().get(key)).getEvents();
        TreeSet treeSet = new TreeSet<AbstractLogUnit>(abst);

        int k = 0;
        for (Iterator itItm = treeSet.iterator(); itItm.hasNext();) {
            k++;
            item = (AbstractLogUnit) itItm.next();

            if (eventTypeToKeep != null && (!eventTypeToKeep.contains(item.getType())
                    || !instanceIDs.contains(item.getProcessInstance().getName())))
                continue;
            if (itemOld == null) {
                itemOld = item;
            } else {
                double temp = (double) item.getCurrentTimeStamp().getTime()
                        - (double) itemOld.getCurrentTimeStamp().getTime();
                tempDS.addValue(temp);
                overallStatistics.addValue(temp);
                itemOld = item;
            }
        }
        for (int j = k; j < abst.size(); j++)
            tempDS.addValue(0);

        if (tempLogUnit.getRightBoundaryTimestamp(eventTypeToKeep, instanceIDs) == null
                || tempLogUnit.getLeftBoundaryTimestamp(eventTypeToKeep, instanceIDs) == null)
            overallDS.addValue(0);
        else
            overallDS.addValue((tempLogUnit.getRightBoundaryTimestamp(eventTypeToKeep, instanceIDs).getTime()
                    - tempLogUnit.getLeftBoundaryTimestamp(eventTypeToKeep, instanceIDs).getTime()));
    }

}

From source file:org.rascalmpl.library.analysis.statistics.Descriptive.java

DescriptiveStatistics make(IList dataValues) {
    DescriptiveStatistics stats = new DescriptiveStatistics();
    for (IValue v : dataValues) {
        stats.addValue(((INumber) v).toReal().floatValue());
    }/* w w w .ja  v  a 2s  .c  o  m*/
    return stats;
}