projects
/
pspp-builds.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
38f15c5
)
Correct reporting for parametr estimates via QR decomposition
author
Jason Stover
<jhs@math.gcsu.edu>
Mon, 28 Nov 2005 03:17:00 +0000
(
03:17
+0000)
committer
Jason Stover
<jhs@math.gcsu.edu>
Mon, 28 Nov 2005 03:17:00 +0000
(
03:17
+0000)
lib/linreg/linreg.c
patch
|
blob
|
history
diff --git
a/lib/linreg/linreg.c
b/lib/linreg/linreg.c
index 2a8aff3f40262ed441499988a6866f87b4aecc24..fb6bbc45e1b298bb0e784035ab69a705208980e3 100644
(file)
--- a/
lib/linreg/linreg.c
+++ b/
lib/linreg/linreg.c
@@
-139,6
+139,7
@@
pspp_linreg (const gsl_vector * Y, const gsl_matrix * X,
gsl_vector_view xty;
gsl_vector_view xi;
gsl_vector_view xj;
gsl_vector_view xty;
gsl_vector_view xi;
gsl_vector_view xj;
+ gsl_vector *param_estimates;
size_t i;
size_t j;
size_t i;
size_t j;
@@
-300,6
+301,8
@@
pspp_linreg (const gsl_vector * Y, const gsl_matrix * X,
/*
Use QR decomposition via GSL.
*/
/*
Use QR decomposition via GSL.
*/
+
+ param_estimates = gsl_vector_alloc (1 + X->size2);
design = gsl_matrix_alloc (X->size1, 1 + X->size2);
for (j = 0; j < X->size1; j++)
design = gsl_matrix_alloc (X->size1, 1 + X->size2);
for (j = 0; j < X->size1; j++)
@@
-313,11
+316,16
@@
pspp_linreg (const gsl_vector * Y, const gsl_matrix * X,
}
gsl_multifit_linear_workspace *wk =
gsl_multifit_linear_alloc (design->size1, design->size2);
}
gsl_multifit_linear_workspace *wk =
gsl_multifit_linear_alloc (design->size1, design->size2);
- rc = gsl_multifit_linear (design, Y,
cache->
param_estimates,
+ rc = gsl_multifit_linear (design, Y, param_estimates,
cache->cov, &(cache->sse), wk);
cache->cov, &(cache->sse), wk);
+ for (i = 0; i < cache->n_coeffs; i++)
+ {
+ cache->coeff[i].estimate = gsl_vector_get (param_estimates, i);
+ }
if (rc == GSL_SUCCESS)
{
gsl_multifit_linear_free (wk);
if (rc == GSL_SUCCESS)
{
gsl_multifit_linear_free (wk);
+ gsl_vector_free (param_estimates);
}
else
{
}
else
{