private static double moment(double[] x, int order) { if (x == null || order == 1) { return Double.NaN; } else { double mu = mean(x); double sum = 0; for (int i = 0; i < x.length; i++) { sum += Math.pow(x[i] - mu, order); } return sum / (x.length - 1); } }
public static double stDev(int[] data) { double sHat; if (data == null || data.length == 0) { sHat = Double.NaN; } else { double mu = mean(data); sHat = 0.0D; for (int i = 0; i < data.length; i++) { sHat += (data[i] - mu) * (data[i] - mu); } sHat = Math.sqrt(sHat / (data.length - 1.0)); } return sHat; }
public static double stDev(double[] data) { double sHat; if (data == null || data.length == 0) { sHat = Double.NaN; } else { double mu = mean(data); sHat = 0.0D; for (int i = 0; i < data.length; i++) { sHat += (data[i] - mu) * (data[i] - mu); } sHat = Math.sqrt(sHat / (data.length - 1.0)); } return sHat; }
public static double corrCoef(double[] xVal, double[] yVal) { double r = 0.0D; double mX = mean(xVal); double mY = mean(yVal); double sdX = stDev(xVal, mX); double sdY = stDev(yVal, mY); for (int i = 0; i < xVal.length; i++) { r += ((xVal[i] - mX) * (yVal[i] - mY)) / (sdX * sdY); } r /= (xVal.length - 1); return r; }
/** * This constructor creates a new <tt>Statistics</tt> object, and initializes the data array with an array of * Objects that must be convertable to numeric values. */ public Statistics(List<Point> arrayList) { x = new int[arrayList.size()]; y = new int[arrayList.size()]; for (int i = 0; i < arrayList.size(); i++) { Point p = arrayList.get(i); x[i] = p.x; y[i] = p.y; } mx = mean(x); my = mean(y); if (x.length < 2) { return; // variance est égale à 0 } for (int i = 0; i < x.length; i++) { // central bivariate moments u11 += (x[i] - mx) * (y[i] - my); u20 += (x[i] - mx) * (x[i] - mx); u02 += (y[i] - my) * (y[i] - my); } }