PointStats.java

From GM-RKB
Jump to navigation Jump to search

A PointStats.java is a Java-based point estimation system.



References

2012

  • Gabor Melli
/* PointStats.java (v1.0) - a Java-based class that calculates several point statistics.
** Return results as public variables.
*/

import java.util.Arrays; // includes .sort()

public class PointStats {

	int n ;
	double sum=0, average, min, max, median, sumSq=0, sumSqDev=0, varS, stdDevS ; 

	public PointStats(double[] values) {

		n = values.length;
		for (double val : values) {sum += val ;}

		average = sum / n;

		Arrays.sort(values);
		min = values [0];
		max = values [values.length - 1];
		int middle = n/2;
		if (n % 2 == 1) { // Odd number of elements -- return the middle one.
			median = values [middle];
		} else { // Even number -- return average of middle two
			median = (values [middle - 1] + values [middle]) / 2.0;
		}
		for (double val : values) {
			sumSq += Math.pow(val, 2) ;
			sumSqDev += Math.pow(average - val, 2) ;
		}
		varS=sumSqDev/(n-1) ;
		stdDevS = Math.pow(varS, 0.5) ;

	}

	// include a main() method to illustrate it usage
	public static void main(String[] args) {

		double[] numList = new double [] { 2.0, 20.5, 24.5, 19.0 } ;

		PointStats inst = new PointStats(numList) ;

		System.out.printf("cnt=%d\tsum=%+2.2f\tavg=%2.2f\tmin=%2.2f\tmax=%2.2f\tmedian=%2.2f\tsumSq=%2.2f\tsumSqDev=%2.2f\tvarS=%2.2f\tstdDevS=%2.2f\n",
				inst.n, inst.sum, inst.average, inst.min, inst.max, inst.median, inst.sumSq, inst.sumSqDev, inst.varS, inst.stdDevS) ;
	}

}