store intercept in proper place when using QR method
authorJason Stover <jhs@math.gcsu.edu>
Sun, 6 Apr 2008 21:59:13 +0000 (21:59 +0000)
committerJason Stover <jhs@math.gcsu.edu>
Sun, 6 Apr 2008 21:59:13 +0000 (21:59 +0000)
src/math/linreg/ChangeLog
src/math/linreg/linreg.c

index c92db77a363789f1e5d9bd271238ed4ddfcd7c1c..a93f3b3fc23c9674f478799eebf797021a3881d9 100644 (file)
@@ -1,3 +1,9 @@
+2008-04-06  Jason Stover  <jhs@math.gcsu.edu>
+
+       * linreg.c (pspp_linreg): For the QR method of getting the least
+       squares estimates, store intercept in cache->intercept
+       instead of coefficienc structure. Partial fix of bug 22788.
+
 2008-03-10  Jason Stover  <jhs@math.gcsu.edu>
 
        * linreg.c (pspp_linreg): Remove use of coefficient 0 as intercept.
index 217e201ce588bbbb95a3688ddb89beaebfe7e102..0782c36fc3df82aae30d00c5f88fbd5f89aa3ad7 100644 (file)
@@ -397,10 +397,11 @@ pspp_linreg (const gsl_vector * Y, const gsl_matrix * X,
       wk = gsl_multifit_linear_alloc (design->size1, design->size2);
       rc = gsl_multifit_linear (design, Y, param_estimates,
                                cache->cov, &(cache->sse), wk);
-      for (i = 0; i < cache->n_coeffs; i++)
+      for (i = 1; i < cache->n_coeffs; i++)
        {
          cache->coeff[i]->estimate = gsl_vector_get (param_estimates, i);
        }
+      cache->intercept = gsl_vector_get (param_estimates, 0);
       if (rc == GSL_SUCCESS)
        {
          gsl_multifit_linear_free (wk);