# source:trunk/src/Regression.h@235

Last change on this file since 235 was 235, checked in by Peter, 18 years ago

Major modifications

• Property svn:eol-style set to native
• Property svn:keywords set to Author Date Id Revision
File size: 1.5 KB
Line
1// $Id: Regression.h 235 2005-02-21 14:53:48Z peter$
2
3#ifndef _theplu_statistics_regression_
4#define _theplu_statistics_regression_
5
6#include "vector.h"
7
8
9namespace theplu {
10namespace statistics {
11
12
13  ///
14  /// Virtual Class for Regression.
15  ///
16
17  class Regression
18  {
19
20  public:
21    ///
22    /// Default Constructor.
23    ///
24    Regression();
25
26    ///
27    /// Destructor
28    ///
29    virtual ~Regression(void) {};
30
31    ///
32    /// This function computes the best-fit given a model (see
33    /// specific class for details) by minimizing \f$34 /// \sum{(\hat{y_i}-y_i)^2} \f$, where \f$\hat{y} \f$ is the fitted value.
35    ///
36    virtual void fit(const gslapi::vector& x, const gslapi::vector& y)=0;
37
38    ///
39    /// This function computes the best-fit given a model (see
40    /// specific class for details) by minimizing \f$41 /// \sum{w_i(\hat{y_i}-y_i)^2} \f$, where \f$\hat{y} \f$ is the
42    /// fitted value. The weight \f$w_i \f$ is should be proportional
43    /// to the inverse of the variance for \f$y_i \f$
44    ///
45    virtual void fit(const gslapi::vector& x, const gslapi::vector& y,
46                    const gslapi::vector& w)=0;
47    ///
48    ///
49    ///
50    virtual void predict(const double x, double& y, double& y_err,
51                         const double w=1) =0;
52    ///
53    /// @return prediction value and parameters
54    ///
55    virtual std::ostream& print(std::ostream&) const=0;
56
57    ///
58    /// @return header for print()
59    ///
60    virtual std::ostream& print_header(std::ostream& s) const=0;
61
62  protected:
63    double x_;
64    double y_;
65    double y_err_;
66  };
67
68}} // of namespace statistics and namespace theplu
69
70#endif
71
Note: See TracBrowser for help on using the repository browser.