You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tn...@apache.org on 2014/05/01 13:54:06 UTC

svn commit: r1591624 - in /commons/proper/math/trunk/src: changes/changes.xml main/java/org/apache/commons/math3/stat/regression/OLSMultipleLinearRegression.java test/java/org/apache/commons/math3/stat/regression/OLSMultipleLinearRegressionTest.java

Author: tn
Date: Thu May  1 11:54:06 2014
New Revision: 1591624

URL: http://svn.apache.org/r1591624
Log:
[MATH-1110] Added constructor to OLSMultipleLinearRegression to be able to specify a custom singularity threshold for QR decomposition. Thanks to Edward Segall.

Modified:
    commons/proper/math/trunk/src/changes/changes.xml
    commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/regression/OLSMultipleLinearRegression.java
    commons/proper/math/trunk/src/test/java/org/apache/commons/math3/stat/regression/OLSMultipleLinearRegressionTest.java

Modified: commons/proper/math/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/changes/changes.xml?rev=1591624&r1=1591623&r2=1591624&view=diff
==============================================================================
--- commons/proper/math/trunk/src/changes/changes.xml (original)
+++ commons/proper/math/trunk/src/changes/changes.xml Thu May  1 11:54:06 2014
@@ -80,6 +80,10 @@ Users are encouraged to upgrade to this 
   classes are intended to be package private only and are not supposed to be
   used for other purposes. 
 ">
+      <action dev="tn" type="add" issue="MATH-1110">
+        Added new constructor to "OLSMultipleLinearRegression" to be able
+        to specify a custom singularity threshold for QR decomposition.
+      </action>
       <action dev="erans" type="fix" issue="MATH-1092">
         Extracted class "LineSearch" from "PowellOptimizer", to be used in
         "NonLinearConjugateGradientOptimizer" (in place of the implementation

Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/regression/OLSMultipleLinearRegression.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/regression/OLSMultipleLinearRegression.java?rev=1591624&r1=1591623&r2=1591624&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/regression/OLSMultipleLinearRegression.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/stat/regression/OLSMultipleLinearRegression.java Thu May  1 11:54:06 2014
@@ -57,6 +57,27 @@ public class OLSMultipleLinearRegression
     /** Cached QR decomposition of X matrix */
     private QRDecomposition qr = null;
 
+    /** Singularity threshold for QR decomposition */
+    private final double threshold;
+
+    /**
+     * Create an empty OLSMultipleLinearRegression instance.
+     */
+    public OLSMultipleLinearRegression() {
+        this(0d);
+    }
+
+    /**
+     * Create an empty OLSMultipleLinearRegression instance, using the given
+     * singularity threshold for the QR decomposition.
+     *
+     * @param threshold the singularity threshold
+     * @since 3.3
+     */
+    public OLSMultipleLinearRegression(final double threshold) {
+        this.threshold = threshold;
+    }
+
     /**
      * Loads model x and y sample data, overriding any previous sample.
      *
@@ -79,7 +100,7 @@ public class OLSMultipleLinearRegression
     @Override
     public void newSampleData(double[] data, int nobs, int nvars) {
         super.newSampleData(data, nobs, nvars);
-        qr = new QRDecomposition(getX());
+        qr = new QRDecomposition(getX(), threshold);
     }
 
     /**

Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math3/stat/regression/OLSMultipleLinearRegressionTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/stat/regression/OLSMultipleLinearRegressionTest.java?rev=1591624&r1=1591623&r2=1591624&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math3/stat/regression/OLSMultipleLinearRegressionTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math3/stat/regression/OLSMultipleLinearRegressionTest.java Thu May  1 11:54:06 2014
@@ -18,10 +18,10 @@ package org.apache.commons.math3.stat.re
 
 
 import org.apache.commons.math3.TestUtils;
+import org.apache.commons.math3.linear.Array2DRowRealMatrix;
 import org.apache.commons.math3.linear.DefaultRealMatrixChangingVisitor;
 import org.apache.commons.math3.linear.MatrixUtils;
 import org.apache.commons.math3.linear.RealMatrix;
-import org.apache.commons.math3.linear.Array2DRowRealMatrix;
 import org.apache.commons.math3.linear.RealVector;
 import org.apache.commons.math3.stat.StatUtils;
 import org.junit.Assert;