Repository: commons-math Updated Branches: refs/heads/master ac1ebc0e9 -> 85a20aad6
Fix indentation (no code change) Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/85a20aad Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/85a20aad Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/85a20aad Branch: refs/heads/master Commit: 85a20aad64be04127106f492e26f6ad6d6c228c8 Parents: ac1ebc0 Author: Sebb <s...@apache.org> Authored: Mon Jan 12 19:05:01 2015 +0000 Committer: Sebb <s...@apache.org> Committed: Mon Jan 12 19:05:01 2015 +0000 ---------------------------------------------------------------------- .../math3/stat/regression/SimpleRegression.java | 74 +++++++++----------- 1 file changed, 32 insertions(+), 42 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/commons-math/blob/85a20aad/src/main/java/org/apache/commons/math3/stat/regression/SimpleRegression.java ---------------------------------------------------------------------- diff --git a/src/main/java/org/apache/commons/math3/stat/regression/SimpleRegression.java b/src/main/java/org/apache/commons/math3/stat/regression/SimpleRegression.java index fd6dd66..02bf8f4 100644 --- a/src/main/java/org/apache/commons/math3/stat/regression/SimpleRegression.java +++ b/src/main/java/org/apache/commons/math3/stat/regression/SimpleRegression.java @@ -770,48 +770,38 @@ public class SimpleRegression implements Serializable, UpdatingMultipleLinearReg */ public RegressionResults regress() throws ModelSpecificationException, NoDataException { if (hasIntercept) { - if( n < 3 ){ - throw new NoDataException(LocalizedFormats.NOT_ENOUGH_DATA_REGRESSION); - } - if( FastMath.abs( sumXX ) > Precision.SAFE_MIN ){ - final double[] params = new double[]{ getIntercept(), getSlope() }; - final double mse = getMeanSquareError(); - final double _syy = sumYY + sumY * sumY / n; - final double[] vcv = new double[]{ - mse * (xbar *xbar /sumXX + 1.0 / n), - -xbar*mse/sumXX, - mse/sumXX }; - return new RegressionResults( - params, new double[][]{vcv}, true, n, 2, - sumY, _syy, getSumSquaredErrors(),true,false); - }else{ - final double[] params = new double[]{ sumY / n, Double.NaN }; - //final double mse = getMeanSquareError(); - final double[] vcv = new double[]{ - ybar / (n - 1.0), - Double.NaN, - Double.NaN }; - return new RegressionResults( - params, new double[][]{vcv}, true, n, 1, - sumY, sumYY, getSumSquaredErrors(),true,false); - } - }else{ - if (n < 2) { - throw new NoDataException(LocalizedFormats.NOT_ENOUGH_DATA_REGRESSION); - } - if( !Double.isNaN(sumXX) ){ - final double[] vcv = new double[]{ getMeanSquareError() / sumXX }; - final double[] params = new double[]{ sumXY/sumXX }; - return new RegressionResults( - params, new double[][]{vcv}, true, n, 1, - sumY, sumYY, getSumSquaredErrors(),false,false); - }else{ - final double[] vcv = new double[]{Double.NaN }; - final double[] params = new double[]{ Double.NaN }; - return new RegressionResults( - params, new double[][]{vcv}, true, n, 1, - Double.NaN, Double.NaN, Double.NaN,false,false); - } + if (n < 3) { + throw new NoDataException(LocalizedFormats.NOT_ENOUGH_DATA_REGRESSION); + } + if (FastMath.abs(sumXX) > Precision.SAFE_MIN) { + final double[] params = new double[] { getIntercept(), getSlope() }; + final double mse = getMeanSquareError(); + final double _syy = sumYY + sumY * sumY / n; + final double[] vcv = new double[] { mse * (xbar * xbar / sumXX + 1.0 / n), -xbar * mse / sumXX, mse / sumXX }; + return new RegressionResults(params, new double[][] { vcv }, true, n, 2, sumY, _syy, getSumSquaredErrors(), true, + false); + } else { + final double[] params = new double[] { sumY / n, Double.NaN }; + // final double mse = getMeanSquareError(); + final double[] vcv = new double[] { ybar / (n - 1.0), Double.NaN, Double.NaN }; + return new RegressionResults(params, new double[][] { vcv }, true, n, 1, sumY, sumYY, getSumSquaredErrors(), true, + false); + } + } else { + if (n < 2) { + throw new NoDataException(LocalizedFormats.NOT_ENOUGH_DATA_REGRESSION); + } + if (!Double.isNaN(sumXX)) { + final double[] vcv = new double[] { getMeanSquareError() / sumXX }; + final double[] params = new double[] { sumXY / sumXX }; + return new RegressionResults(params, new double[][] { vcv }, true, n, 1, sumY, sumYY, getSumSquaredErrors(), false, + false); + } else { + final double[] vcv = new double[] { Double.NaN }; + final double[] params = new double[] { Double.NaN }; + return new RegressionResults(params, new double[][] { vcv }, true, n, 1, Double.NaN, Double.NaN, Double.NaN, false, + false); + } } }