source: trunk/lib/statistics/RegressionNaive.cc @ 303

Last change on this file since 303 was 303, checked in by Peter, 17 years ago

docs

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.4 KB
Line 
1// $Id: RegressionNaive.cc 303 2005-04-30 16:17:35Z peter $
2
3
4#include <c++_tools/statistics/RegressionNaive.h>
5
6#include <c++_tools/statistics/Averager.h>
7#include <c++_tools/statistics/AveragerWeighted.h>
8#include <c++_tools/statistics/Regression.h>
9#include <c++_tools/gslapi/vector.h>
10
11#include <iostream>
12
13
14namespace theplu {
15namespace statistics {
16
17 
18  RegressionNaive::RegressionNaive(void)
19    : Regression(), m_(0.0), m_err_(0.0)
20  {
21  }
22
23  void RegressionNaive::fit(const gslapi::vector& x, const gslapi::vector& y)
24  {
25    Averager a;
26    for (size_t i=0; i<y.size(); i++)
27      a.add(y(i));
28    m_=a.mean();
29    s2_=a.variance();
30    m_err_=a.standard_error();
31  }
32
33  void RegressionNaive::fit(const gslapi::vector& x,
34                            const gslapi::vector& y,
35                            const gslapi::vector& w)
36  {
37    AveragerWeighted a;
38    for (size_t i=0; i<y.size(); i++)
39      a.add(y(i), w(i));
40    m_=a.mean();
41    m_err_=a.standard_error();
42    s2_=m_err_*m_err_*w.sum(); 
43  }
44
45  void RegressionNaive::predict(const double x, double& y, double& y_err, 
46                                const double w) 
47  { 
48    x_ = x;
49    y = m_; 
50    y_err = sqrt(m_err_*m_err_ + s2_/w);
51  }
52 
53  std::ostream& RegressionNaive::print(std::ostream& s) const
54  {
55    s << x_ << "\t" 
56      << m_ << "\t"
57      << sqrt(m_err_*m_err_ + s2_);
58    return s;
59  }
60 
61  std::ostream& RegressionNaive::print_header(std::ostream& s) const
62  {
63    s << "# column 1: x\n"
64      << "# column 2: y\n"
65      << "# column 3: y_err";
66    return s;
67  }
68 
69}} // of namespace statistics and namespace theplu
Note: See TracBrowser for help on using the repository browser.