[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pspp-cvs] pspp/src/math/linreg linreg.h
From: |
Jason H Stover |
Subject: |
[Pspp-cvs] pspp/src/math/linreg linreg.h |
Date: |
Sun, 09 Apr 2006 12:39:32 +0000 |
CVSROOT: /sources/pspp
Module name: pspp
Branch:
Changes by: Jason H Stover <address@hidden> 06/04/09 12:39:32
Modified files:
src/math/linreg: linreg.h
Log message:
fix predict and residual declaration
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pspp/pspp/src/math/linreg/linreg.h.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
Patches:
Index: pspp/src/math/linreg/linreg.h
diff -u pspp/src/math/linreg/linreg.h:1.3 pspp/src/math/linreg/linreg.h:1.4
--- pspp/src/math/linreg/linreg.h:1.3 Fri Apr 7 19:37:13 2006
+++ pspp/src/math/linreg/linreg.h Sun Apr 9 12:39:32 2006
@@ -1,23 +1,22 @@
-/* lib/linreg/linreg.h
-
- Copyright (C) 2005 Free Software Foundation, Inc.
- Written by Jason H. Stover.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or (at
- your option) any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02111-1307, USA.
-*/
+/*
+ * lib/linreg/linreg.h
+ *
+ * Copyright (C) 2005 Free Software Foundation, Inc. Written by Jason H.
Stover.
+ *
+ * This program is free software; you can redistribute it and/or modify it
under
+ * the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc., 51
+ * Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA.
+ */
#ifndef LINREG_H
#define LINREG_H
@@ -26,7 +25,7 @@
#include <gsl/gsl_vector.h>
#include <gsl/gsl_matrix.h>
-struct variable ;
+struct variable;
struct pspp_linreg_coeff;
union value;
@@ -46,20 +45,26 @@
int resid; /* Should the residuals be returned? */
int get_depvar_mean_std;
- int *get_indep_mean_std; /* Array of booleans dictating which
- independent variables need their means
- and standard deviations computed within
- pspp_linreg. This array MUST be of
- length n_indeps. If element i is 1,
- pspp_linreg will compute the mean and
- variance of indpendent variable i. If
- element i is 0, it will not compute the
- mean and standard deviation, and assume
- the values are stored.
- cache->indep_mean[i] is the mean and
- cache->indep_std[i] is the sample
- standard deviation.
- */
+ int *get_indep_mean_std; /* Array of booleans
+ * dictating which
+ * independent variables need
+ * their means and standard
+ * deviations computed within
+ * pspp_linreg. This array
+ * MUST be of length
+ * n_indeps. If element i is
+ * 1, pspp_linreg will
+ * compute the mean and
+ * variance of indpendent
+ * variable i. If element i
+ * is 0, it will not compute
+ * the mean and standard
+ * deviation, and assume the
+ * values are stored.
+ * cache->indep_mean[i] is
+ * the mean and
+ * cache->indep_std[i] is the
+ * sample standard deviation. */
};
typedef struct pspp_linreg_opts_struct pspp_linreg_opts;
@@ -69,7 +74,7 @@
Y = Xb + Z
- where Y is an n-by-1 column vector, X is an n-by-p matrix of
+ where Y is an n-by-1 column vector, X is an n-by-p matrix of
independent variables, b is a p-by-1 vector of regression coefficients,
and Z is an n-by-1 normally-distributed random vector with independent
identically distributed components with mean 0.
@@ -97,11 +102,10 @@
int n_indeps; /* Number of independent variables. */
int n_coeffs;
- /*
- The variable struct is ignored during estimation.
- It is here so the calling procedure can
- find the variable used in the model.
- */
+ /*
+ * The variable struct is ignored during estimation. It is here so
+ * the calling procedure can find the variable used in the model.
+ */
const struct variable *depvar;
gsl_vector *residuals;
@@ -125,19 +129,18 @@
Sums of squares.
*/
double ssm; /* Sums of squares for the overall model. */
- gsl_vector *ss_indeps; /* Sums of squares from each
- independent variable.
- */
+ gsl_vector *ss_indeps; /* Sums of squares from each
+ * independent variable. */
double sst; /* Sum of squares total. */
double sse; /* Sum of squares error. */
- double mse; /* Mean squared error. This is just sse / dfe,
but
- since it is the best unbiased estimate of
the population
- variance, it has its own entry here.
- */
- gsl_vector *ssx; /* Centered sums of squares for independent
variables,
- i.e. \sum (x[i] - mean(x))^2.
- */
- double ssy; /* Centered sums of squares for dependent
variable. */
+ double mse; /* Mean squared error. This is just sse /
+ * dfe, but since it is the best unbiased
+ * estimate of the population variance, it
+ * has its own entry here. */
+ gsl_vector *ssx; /* Centered sums of squares for independent
+ * variables, i.e. \sum (x[i] - mean(x))^2. */
+ double ssy; /* Centered sums of squares for dependent
+ * variable. */
/*
Covariance matrix of the parameter estimates.
*/
@@ -154,6 +157,9 @@
design matrix.
*/
gsl_matrix *hat;
+
+ double (*predict) (const struct variable *, const union value *,
+ const void *, int);
};
typedef struct pspp_linreg_cache_struct pspp_linreg_cache;
@@ -162,26 +168,26 @@
/*
Allocate a pspp_linreg_cache and return a pointer
- to it. n is the number of cases, p is the number of
+ to it. n is the number of cases, p is the number of
independent variables.
*/
-pspp_linreg_cache * pspp_linreg_cache_alloc (size_t n, size_t p);
+pspp_linreg_cache *pspp_linreg_cache_alloc (size_t n, size_t p);
void pspp_linreg_cache_free (pspp_linreg_cache * c);
/*
Fit the linear model via least squares. All pointers passed to pspp_linreg
are assumed to be allocated to the correct size and initialized to the
- values as indicated by opts.
+ values as indicated by opts.
*/
-int pspp_linreg (const gsl_vector * Y, const gsl_matrix * X,
- const pspp_linreg_opts * opts,
- pspp_linreg_cache * cache);
+int
+pspp_linreg (const gsl_vector * Y, const gsl_matrix * X,
+ const pspp_linreg_opts * opts, pspp_linreg_cache * cache);
double
-pspp_linreg_predict (const struct variable *, const union value *,
+pspp_linreg_predict (const struct variable **, const union value **,
const pspp_linreg_cache *, int);
double
-pspp_linreg_residual (const struct variable *, const union value *,
+pspp_linreg_residual (const struct variable *, const union value **,
const union value *, const pspp_linreg_cache *, int);
#endif
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pspp-cvs] pspp/src/math/linreg linreg.h,
Jason H Stover <=