- Timestamp:
- Jan 12, 2007, 1:14:21 PM (16 years ago)
- Location:
- trunk/yat/regression
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/yat/regression/MultiDimensional.cc
r731 r739 63 63 fit_parameters_.gsl_vector_p(), 64 64 covariance_.gsl_matrix_p(),&chisquare_,work_); 65 s2_ = chisquare_/(x.rows()-x.columns()); 65 66 } 66 67 … … 86 87 double MultiDimensional::prediction_error2(const utility::vector& x) const 87 88 { 88 return standard_error2(x) +chisquare_;89 return standard_error2(x) + s2_; 89 90 } 90 91 -
trunk/yat/regression/MultiDimensional.h
r731 r739 90 90 private: 91 91 double chisquare_; 92 double s2_; 92 93 utility::matrix covariance_; 93 94 utility::vector fit_parameters_; -
trunk/yat/regression/MultiDimensionalWeighted.cc
r731 r739 23 23 24 24 #include "MultiDimensionalWeighted.h" 25 #include "yat/statistics/AveragerWeighted.h" 25 26 #include "yat/utility/matrix.h" 26 27 #include "yat/utility/vector.h" … … 58 59 fit_parameters_.gsl_vector_p(), 59 60 covariance_.gsl_matrix_p(),&chisquare_,work_); 61 62 statistics::AveragerWeighted aw; 63 aw.add_values(y,w); 64 s2_ = chisquare_ / (aw.n()-fit_parameters_.size()); 65 covariance_ *= s2_; 60 66 } 61 67 … … 66 72 } 67 73 68 double MultiDimensionalWeighted::prediction_error (const utility::vector& x,69 const double w) const74 double MultiDimensionalWeighted::prediction_error2(const utility::vector& x, 75 const double w) const 70 76 { 71 double s2 = 0; 72 for (size_t i=0; i<x.size(); ++i){ 73 s2 += covariance_(i,i)*x(i)*x(i); 74 for (size_t j=i+1; j<x.size(); ++j) 75 s2 += 2*covariance_(i,j)*x(i)*x(j); 76 } 77 return sqrt(s2+chisquare_/w); 77 return standard_error2(x) + s2_/w; 78 78 } 79 79 … … 82 82 MultiDimensionalWeighted::standard_error2(const utility::vector& x) const 83 83 { 84 double s2= 0;84 double c = 0; 85 85 for (size_t i=0; i<x.size(); ++i){ 86 s2+= covariance_(i,i)*x(i)*x(i);86 c += covariance_(i,i)*x(i)*x(i); 87 87 for (size_t j=i+1; j<x.size(); ++j) 88 s2+= 2*covariance_(i,j)*x(i)*x(j);88 c += 2*covariance_(i,j)*x(i)*x(j); 89 89 } 90 return s2;90 return c; 91 91 } 92 92 -
trunk/yat/regression/MultiDimensionalWeighted.h
r731 r739 63 63 64 64 /// 65 /// @return expected prediction error for a new data point in @a x 65 /// @return expected squared prediction error for a new data point 66 /// in @a x 66 67 /// 67 double prediction_error (const utility::vector& x, const double w) const;68 double prediction_error2(const utility::vector& x, const double w) const; 68 69 69 70 /// … … 81 82 utility::matrix covariance_; 82 83 utility::vector fit_parameters_; 84 double s2_; 83 85 gsl_multifit_linear_workspace* work_; 84 86 -
trunk/yat/regression/PolynomialWeighted.cc
r731 r739 67 67 } 68 68 69 double PolynomialWeighted::prediction_error (const double x,70 const double w) const69 double PolynomialWeighted::prediction_error2(const double x, 70 const double w) const 71 71 { 72 72 utility::vector vec(power_+1,1); 73 73 for (size_t i=1; i<=power_; ++i) 74 74 vec(i) = vec(i-1)*x; 75 return md_.prediction_error (vec, w);75 return md_.prediction_error2(vec, w); 76 76 } 77 77 -
trunk/yat/regression/PolynomialWeighted.h
r729 r739 81 81 /// with weight @a w 82 82 /// 83 double prediction_error (const double x, const double w=1) const;83 double prediction_error2(const double x, const double w=1) const; 84 84 85 85 ///
Note: See TracChangeset
for help on using the changeset viewer.