| OpenMS 2.5.0

Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
LinearRegression Class Reference
Math

This class offers functions to perform least-squares fits to a straight line model, . More...

`#include <OpenMS/MATH/STATISTICS/LinearRegression.h>`

## Public Member Functions

| LinearRegression ()
| Constructor. More...
virtual | ~LinearRegression ()
| Destructor. More...
template<typename Iterator >
void | computeRegression (double confidence_interval_P, Iterator x_begin, Iterator x_end, Iterator y_begin, bool compute_goodness=true)
| This function computes the best-fit linear regression coefficients of the model for the dataset . More...
template<typename Iterator >
void | computeRegressionWeighted (double confidence_interval_P, Iterator x_begin, Iterator x_end, Iterator y_begin, Iterator w_begin, bool compute_goodness=true)
| This function computes the best-fit linear regression coefficients of the model for the weighted dataset . More...
double | getIntercept () const
| Non-mutable access to the y-intercept of the straight line. More...
double | getSlope () const
| Non-mutable access to the slope of the straight line. More...
double | getXIntercept () const
| Non-mutable access to the x-intercept of the straight line. More...
double | getLower () const
| Non-mutable access to the lower border of confidence interval. More...
double | getUpper () const
| Non-mutable access to the upper border of confidence interval. More...
double | getTValue () const
| Non-mutable access to the value of the t-distribution. More...
double | getRSquared () const
| Non-mutable access to the squared Pearson coefficient. More...
double | getStandDevRes () const
| Non-mutable access to the standard deviation of the residuals. More...
double | getMeanRes () const
| Non-mutable access to the residual mean. More...
double | getStandErrSlope () const
| Non-mutable access to the standard error of the slope. More...
double | getChiSquared () const
| Non-mutable access to the chi squared value. More...
double | getRSD () const
| Non-mutable access to relative standard deviation. More...

## Protected Member Functions

void | computeGoodness_ (const std::vector< Wm5::Vector2d > &points, double confidence_interval_P)
| Computes the goodness of the fitted regression line. More...
template<typename Iterator >
double | computeChiSquare (Iterator x_begin, Iterator x_end, Iterator y_begin, double slope, double intercept)
| Compute the chi squared of a linear fit. More...
template<typename Iterator >
double | computeWeightedChiSquare (Iterator x_begin, Iterator x_end, Iterator y_begin, Iterator w_begin, double slope, double intercept)
| Compute the chi squared of a weighted linear fit. More...

## Protected Attributes

double | intercept_
| The intercept of the fitted line with the y-axis. More...
double | slope_
| The slope of the fitted line. More...
double | x_intercept_
| The intercept of the fitted line with the x-axis. More...
double | lower_
| The lower bound of the confidence interval. More...
double | upper_
| The upper bound of the confidence interval. More...
double | t_star_
| The value of the t-statistic. More...
double | r_squared_
| The squared correlation coefficient (Pearson) More...
double | stand_dev_residuals_
| The standard deviation of the residuals. More...
double | mean_residuals_
| Mean of residuals. More...
double | stand_error_slope_
| The standard error of the slope. More...
double | chi_squared_
| The value of the Chi Squared statistic. More...
double | rsd_
| the relative standard deviation More...

## Private Member Functions

| LinearRegression (const LinearRegression &arg)
| Not implemented. More...
LinearRegression & | operator= (const LinearRegression &arg)
| Not implemented. More...

## Detailed Description

This class offers functions to perform least-squares fits to a straight line model, .

Next to the intercept with the y-axis and the slope of the fitted line, this class computes the:

- squared Pearson coefficient
- value of the t-distribution
- standard deviation of the residuals
- standard error of the slope
- intercept with the x-axis (useful for additive series experiments)
- lower border of confidence interval
- higher border of confidence interval
- chi squared value
- x mean

## Constructor & Destructor Documentation

## ◆ LinearRegression() [1/2]

LinearRegression | ( |  | ) |

inline

Constructor.

## ◆ ~LinearRegression()

virtual ~LinearRegression | ( |  | ) |

inline virtual

Destructor.

## ◆ LinearRegression() [2/2]

LinearRegression | ( | const LinearRegression & | arg | ) |

private

Not implemented.

## Member Function Documentation

## ◆ computeChiSquare()

double computeChiSquare | ( | Iterator | x_begin,
|  | Iterator | x_end,
|  | Iterator | y_begin,
|  | double | slope,
|  | double | intercept
| ) |  |

protected

Compute the chi squared of a linear fit.

Referenced by LinearRegression::computeRegression().

## ◆ computeGoodness_()

void computeGoodness_ | ( | const std::vector< Wm5::Vector2d > & | points,
|  | double | confidence_interval_P
| ) |  |

protected

Computes the goodness of the fitted regression line.

Referenced by LinearRegression::computeRegression(), and LinearRegression::computeRegressionWeighted().

## ◆ computeRegression()

void computeRegression | ( | double | confidence_interval_P,
|  | Iterator | x_begin,
|  | Iterator | x_end,
|  | Iterator | y_begin,
|  | bool | compute_goodness = `true`
| ) |  |

This function computes the best-fit linear regression coefficients of the model for the dataset .

The values in x-dimension of the dataset are given by the iterator range [x_begin,x_end) and the corresponding y-values start at position y_begin.

For a "x %" Confidence Interval use confidence_interval_P = x/100. For example the 95% Confidence Interval is supposed to be an interval that has a 95% chance of containing the true value of the parameter.

Parameters

  confidence_interval_P | Value between 0-1 to determine lower and upper CI borders.
  x_begin | Begin iterator of x values
  x_end | End iterator of x values
  y_begin | Begin iterator of y values (same length as x)
  compute_goodness | Compute meta stats about the fit. If this is not done, none of the members (except slope and intercept) are meaningful.

Returns
  If an error occurred during the fit.

Exceptions

  Exception::UnableToFit | is thrown if fitting cannot be performed

References LinearRegression::chi_squared_, LinearRegression::computeChiSquare(), LinearRegression::computeGoodness_(), LinearRegression::intercept_, OpenMS::Math::iteratorRange2Wm5Vectors(), and LinearRegression::slope_.

## ◆ computeRegressionWeighted()

void computeRegressionWeighted | ( | double | confidence_interval_P,
|  | Iterator | x_begin,
|  | Iterator | x_end,
|  | Iterator | y_begin,
|  | Iterator | w_begin,
|  | bool | compute_goodness = `true`
| ) |  |

This function computes the best-fit linear regression coefficients of the model for the weighted dataset .

The values in x-dimension of the dataset are given by the iterator range [x_begin,x_end) and the corresponding y-values start at position y_begin. They will be weighted by the values starting at w_begin.

For a "x %" Confidence Interval use confidence_interval_P = x/100. For example the 95% Confidence Interval is supposed to be an interval that has a 95% chance of containing the true value of the parameter.

Parameters

  confidence_interval_P | Value between 0-1 to determine lower and upper CI borders.
  x_begin | Begin iterator of x values
  x_end | End iterator of x values
  y_begin | Begin iterator of y values (same length as x)
  w_begin | Begin iterator of weight values (same length as x)
  compute_goodness | Compute meta stats about the fit. If this is not done, none of the members (except slope and intercept) are meaningful.

Returns
  If an error occurred during the fit.

Exceptions

  Exception::UnableToFit | is thrown if fitting cannot be performed

References LinearRegression::chi_squared_, LinearRegression::computeGoodness_(), LinearRegression::computeWeightedChiSquare(), LinearRegression::intercept_, OpenMS::Math::iteratorRange2Wm5Vectors(), and LinearRegression::slope_.

## ◆ computeWeightedChiSquare()

double computeWeightedChiSquare | ( | Iterator | x_begin,
|  | Iterator | x_end,
|  | Iterator | y_begin,
|  | Iterator | w_begin,
|  | double | slope,
|  | double | intercept
| ) |  |

protected

Compute the chi squared of a weighted linear fit.

Referenced by LinearRegression::computeRegressionWeighted().

## ◆ getChiSquared()

double getChiSquared | ( |  | ) | const

Non-mutable access to the chi squared value.

## ◆ getIntercept()

double getIntercept | ( |  | ) | const

Non-mutable access to the y-intercept of the straight line.

## ◆ getLower()

double getLower | ( |  | ) | const

Non-mutable access to the lower border of confidence interval.

## ◆ getMeanRes()

double getMeanRes | ( |  | ) | const

Non-mutable access to the residual mean.

## ◆ getRSD()

double getRSD | ( |  | ) | const

Non-mutable access to relative standard deviation.

## ◆ getRSquared()

double getRSquared | ( |  | ) | const

Non-mutable access to the squared Pearson coefficient.

## ◆ getSlope()

double getSlope | ( |  | ) | const

Non-mutable access to the slope of the straight line.

## ◆ getStandDevRes()

double getStandDevRes | ( |  | ) | const

Non-mutable access to the standard deviation of the residuals.

## ◆ getStandErrSlope()

double getStandErrSlope | ( |  | ) | const

Non-mutable access to the standard error of the slope.

## ◆ getTValue()

double getTValue | ( |  | ) | const

Non-mutable access to the value of the t-distribution.

## ◆ getUpper()

double getUpper | ( |  | ) | const

Non-mutable access to the upper border of confidence interval.

## ◆ getXIntercept()

double getXIntercept | ( |  | ) | const

Non-mutable access to the x-intercept of the straight line.

## ◆ operator=()

LinearRegression& operator= | ( | const LinearRegression & | arg | ) |

private

Not implemented.

## Member Data Documentation

## ◆ chi_squared_

double chi_squared_

protected

The value of the Chi Squared statistic.

Referenced by LinearRegression::computeRegression(), and LinearRegression::computeRegressionWeighted().

## ◆ intercept_

double intercept_

protected

The intercept of the fitted line with the y-axis.

Referenced by LinearRegression::computeRegression(), and LinearRegression::computeRegressionWeighted().

## ◆ lower_

double lower_

protected

The lower bound of the confidence interval.

## ◆ mean_residuals_

double mean_residuals_

protected

Mean of residuals.

## ◆ r_squared_

double r_squared_

protected

The squared correlation coefficient (Pearson)

## ◆ rsd_

double rsd_

protected

the relative standard deviation

## ◆ slope_

double slope_

protected

The slope of the fitted line.

Referenced by LinearRegression::computeRegression(), and LinearRegression::computeRegressionWeighted().

## ◆ stand_dev_residuals_

double stand_dev_residuals_

protected

The standard deviation of the residuals.

## ◆ stand_error_slope_

double stand_error_slope_

protected

The standard error of the slope.

## ◆ t_star_

double t_star_

protected

The value of the t-statistic.

## ◆ upper_

double upper_

protected

The upper bound of the confidence interval.

## ◆ x_intercept_

double x_intercept_

protected

The intercept of the fitted line with the x-axis.