/** * Computes a <a href="http://www.itl.nist.gov/div898/handbook/prc/section2/prc22.htm#formula"> * t statistic </a> given observed values and a comparison constant. * <p> * This statistic can be used to perform a one sample t-test for the mean. * </p><p> * <strong>Preconditions</strong>: <ul> * <li>The observed array length must be at least 2. * </li></ul></p> * * @param mu comparison constant * @param observed array of values * @return t statistic * @throws NullArgumentException if <code>observed</code> is <code>null</code> * @throws NumberIsTooSmallException if the length of <code>observed</code> is < 2 */ public double t(final double mu, final double[] observed) throws NullArgumentException, NumberIsTooSmallException { checkSampleData(observed); // No try-catch or advertised exception because args have just been checked return t(StatUtils.mean(observed), mu, StatUtils.variance(observed), observed.length); }
@Override public Double summarize(NumericColumn<?> column) { return StatUtils.sumSq(removeMissing(column)); } };
NumberIsTooSmallException, MaxCountExceededException { double meanDifference = StatUtils.meanDifference(sample1, sample2); return tTest(meanDifference, 0, StatUtils.varianceDifference(sample1, sample2, meanDifference), sample1.length);
switch (this) { case GEOMETRIC_MEAN: return StatUtils.geometricMean(aggregationValues); case MAX: return StatUtils.max(aggregationValues); case MEAN: return StatUtils.mean(aggregationValues); case MIN: return StatUtils.min(aggregationValues); case PERCENTILE90: return StatUtils.percentile(aggregationValues, 90); case PERCENTILE95: return StatUtils.percentile(aggregationValues, 95); case PRODUCT: return StatUtils.product(aggregationValues); case SUM: return StatUtils.sum(aggregationValues); case SUMSQ: return StatUtils.sumSq(aggregationValues); case SUMLOG: return StatUtils.sumLog(aggregationValues); case VARIANCE: return StatUtils.variance(aggregationValues); default: return StatUtils.mean(aggregationValues);
@Override public Double summarize(NumericColumn<?> column) { return StatUtils.mean(removeMissing(column)); } };
@Test public void testSummarize() { IntColumn c = IntColumn.indexColumn("t", 99, 1); IntColumn c2 = c.copy(); c2.appendCell(""); double c2Variance = c2.variance(); double cVariance = StatUtils.variance(c.asDoubleArray()); assertEquals(cVariance, c2Variance, 0.00001); assertEquals(StatUtils.sumLog(c.asDoubleArray()), c2.sumOfLogs(), 0.00001); assertEquals(StatUtils.sumSq(c.asDoubleArray()), c2.sumOfSquares(), 0.00001); assertEquals(StatUtils.geometricMean(c.asDoubleArray()), c2.geometricMean(), 0.00001); assertEquals(StatUtils.product(c.asDoubleArray()), c2.product(), 0.00001); assertEquals(StatUtils.populationVariance(c.asDoubleArray()), c2.populationVariance(), 0.00001); assertEquals(new DescriptiveStatistics(c.asDoubleArray()).getQuadraticMean(), c2.quadraticMean(), 0.00001); assertEquals(new DescriptiveStatistics(c.asDoubleArray()).getStandardDeviation(), c2.standardDeviation(), 0.00001); assertEquals(new DescriptiveStatistics(c.asDoubleArray()).getKurtosis(), c2.kurtosis(), 0.00001); assertEquals(new DescriptiveStatistics(c.asDoubleArray()).getSkewness(), c2.skewness(), 0.00001); assertEquals(StatUtils.variance(c.asDoubleArray()), c.variance(), 0.00001); assertEquals(StatUtils.sumLog(c.asDoubleArray()), c.sumOfLogs(), 0.00001); assertEquals(StatUtils.sumSq(c.asDoubleArray()), c.sumOfSquares(), 0.00001); assertEquals(StatUtils.geometricMean(c.asDoubleArray()), c.geometricMean(), 0.00001); assertEquals(StatUtils.product(c.asDoubleArray()), c.product(), 0.00001); assertEquals(StatUtils.populationVariance(c.asDoubleArray()), c.populationVariance(), 0.00001); assertEquals(new DescriptiveStatistics(c.asDoubleArray()).getQuadraticMean(), c.quadraticMean(), 0.00001); assertEquals(new DescriptiveStatistics(c.asDoubleArray()).getStandardDeviation(), c.standardDeviation(), 0.00001); assertEquals(new DescriptiveStatistics(c.asDoubleArray()).getKurtosis(), c.kurtosis(), 0.00001); assertEquals(new DescriptiveStatistics(c.asDoubleArray()).getSkewness(), c.skewness(), 0.00001); }
@Override public Double summarize(NumericColumn<?> column) { double[] values = removeMissing(column); return StatUtils.variance(values); } };
final double varianceUnitChange = StatUtils.variance(convertToArray(unitChange)); final double variancesendSPARQL = StatUtils.variance(convertToArray(sendSPARQL)); final double varianceanswerOfServerToOM = StatUtils.variance(convertToArray(answerOfServerToOM)); final double variancetriggerImplFromRSB = StatUtils.variance(convertToArray(triggerImplFromRSB)); final double variancetriggerEnd = StatUtils.variance(convertToArray(triggerEnd)); final double meanUnitChange = StatUtils.mean(convertToArray(unitChange)); final double meansendSPARQL = StatUtils.mean(convertToArray(sendSPARQL)); final double meananswerOfServerToOM = StatUtils.mean(convertToArray(answerOfServerToOM)); final double meantriggerImplFromRSB = StatUtils.mean(convertToArray(triggerImplFromRSB)); final double meantriggerEnd = StatUtils.mean(convertToArray(triggerEnd)); final double standardDeviationUnitChange = FastMath.sqrt(StatUtils.variance(convertToArray(unitChange))); final double standardDeviationsendSPARQL = FastMath.sqrt(StatUtils.variance(convertToArray(sendSPARQL))); final double standardDeviationanswerOfServerToOM = FastMath.sqrt(StatUtils.variance(convertToArray(answerOfServerToOM))); final double standardDeviationtriggerImplFromRSB = FastMath.sqrt(StatUtils.variance(convertToArray(triggerImplFromRSB))); final double standardDeviationtriggerEnd = FastMath.sqrt(StatUtils.variance(convertToArray(triggerEnd))); final double medianUnitChange = StatUtils.percentile(convertToArray(unitChange), 50); final double mediansendSPARQL = StatUtils.percentile(convertToArray(sendSPARQL), 50); final double mediananswerOfServerToOM = StatUtils.percentile(convertToArray(answerOfServerToOM), 50); final double mediantriggerImplFromRSB = StatUtils.percentile(convertToArray(triggerImplFromRSB), 50); final double mediantriggerEnd = StatUtils.percentile(convertToArray(triggerEnd), 50);
if (nSpans > 1) { if (spanType == MEDIAN) { // 50th percentile counts = StatUtils.percentile(binsamples, 50); } else if (spanType == MEAN) { // mean counts = StatUtils.mean(binsamples); } else if (spanType == MODE) { // the 1st max freq. element counts = StatUtils.mode(binsamples)[0];
private void summarizeSkeleton(final SkeletonResult sr) { final String TABLE_TITLE = "Summary of Rendered Paths"; final ResultsTable rt = getTable(TABLE_TITLE); try { double sumLength = 0d; final int[] branches = sr.getBranches(); final double[] avgLengths = sr.getAverageBranchLength(); for (int i = 0; i < sr.getNumOfTrees(); i++) sumLength += avgLengths[i] * branches[i]; rt.incrementCounter(); rt.addValue("N. Rendered Paths", renderingPaths.size()); rt.addValue("Unit", imp.getCalibration().getUnits()); rt.addValue("Total length", sumLength); rt.addValue("Mean branch length", StatUtils.mean(avgLengths)); rt.addValue("Length of longest branch", StatUtils.max(sr.getMaximumBranchLength())); rt.addValue("# Branches", IntStream.of(sr.getBranches()).sum()); rt.addValue("# Junctions", IntStream.of(sr.getJunctions()).sum()); rt.addValue("# End-points", IntStream.of(sr.getEndPoints()).sum()); rt.addValue("Fitering", getFilterString()); if (restrictByRoi && roi != null && roi.isArea()) rt.addValue("ROI Name", roi.getName() == null ? "Unammed ROI" : roi.getName()); } catch (final Exception ignored) { SNT.error("Some statistics could not be calculated."); } finally { rt.show(TABLE_TITLE); } }
mean1 = StatUtils.mean(sample1); mean2 = StatUtils.mean(sample2); diffMeans = mean1 - mean2; n1 = stats1.getN(); meanDifference = StatUtils.meanDifference(sample1, sample2); se = Math.sqrt(StatUtils.varianceDifference(sample1, sample2, meanDifference) / n1); df = n1 - 1;
public static Double percentile(NumericColumn<?> data, Double percentile) { return StatUtils.percentile(removeMissing(data), percentile); }
@Override public Double summarize(NumericColumn<?> column) { return StatUtils.max(removeMissing(column)); } };
@Override public Double summarize(NumericColumn<?> column) { return StatUtils.min(removeMissing(column)); } };
@Override public Double summarize(NumericColumn<?> column) { return StatUtils.geometricMean(removeMissing(column)); } };
public static Double meanDifference(NumericColumn<?> column1, NumericColumn<?> column2) { return StatUtils.meanDifference(column1.asDoubleArray(), column2.asDoubleArray()); }
switch (this) { case GEOMETRIC_MEAN: return StatUtils.geometricMean(aggregationValues); case MAX: return StatUtils.max(aggregationValues); case MEAN: return StatUtils.mean(aggregationValues); case MIN: return StatUtils.min(aggregationValues); case PERCENTILE90: return StatUtils.percentile(aggregationValues, 90); case PERCENTILE95: return StatUtils.percentile(aggregationValues, 95); case PRODUCT: return StatUtils.product(aggregationValues); case SUM: return StatUtils.sum(aggregationValues); case SUMSQ: return StatUtils.sumSq(aggregationValues); case SUMLOG: return StatUtils.sumLog(aggregationValues); case VARIANCE: return StatUtils.variance(aggregationValues); default: return StatUtils.mean(aggregationValues);
@Override public boolean isPrematureBreak(SearchStrategy.DiscoveredSolution discoveredSolution) { if (discoveredSolution.isAccepted()) { lastAccepted = discoveredSolution.getSolution(); solutionValues[currentIteration] = discoveredSolution.getSolution().getCost(); } else { if (lastAccepted != null) { solutionValues[currentIteration] = lastAccepted.getCost(); } else solutionValues[currentIteration] = Integer.MAX_VALUE; } if (currentIteration == (noIterations - 1)) { double mean = StatUtils.mean(solutionValues); double stdDev = new StandardDeviation(true).evaluate(solutionValues, mean); double variationCoefficient = stdDev / mean; if (variationCoefficient < variationCoefficientThreshold) { return true; } } return false; }