OpenMS
LinearRegression Class Reference

This class offers functions to perform least-squares fits to a straight line model, $$Y(c,x) = c_0 + c_1 x$$. More...

#include <OpenMS/ML/REGRESSION/LinearRegression.h>

Collaboration diagram for LinearRegression:
[legend]

## Public Member Functions

LinearRegression ()
Constructor. More...

virtual ~LinearRegression ()=default
Destructor. More...

void computeRegression (double confidence_interval_P, std::vector< double >::const_iterator x_begin, std::vector< double >::const_iterator x_end, std::vector< double >::const_iterator y_begin, bool compute_goodness=true)
This function computes the best-fit linear regression coefficients $$(c_0,c_1)$$ of the model $$Y = c_0 + c_1 X$$ for the dataset $$(x, y)$$. More...

void computeRegressionWeighted (double confidence_interval_P, std::vector< double >::const_iterator x_begin, std::vector< double >::const_iterator x_end, std::vector< double >::const_iterator y_begin, std::vector< double >::const_iterator w_begin, bool compute_goodness=true)
This function computes the best-fit linear regression coefficients $$(c_0,c_1)$$ of the model $$Y = c_0 + c_1 X$$ for the weighted dataset $$(x, y)$$. More...

double getIntercept () const

double getSlope () const

double getXIntercept () const

double getLower () const

double getUpper () const

double getTValue () const

double getRSquared () const

double getStandDevRes () const

double getMeanRes () const

double getStandErrSlope () const

double getChiSquared () const

double getRSD () const

## Static Public Member Functions

static double computePointY (double x, double slope, double intercept)
given x compute y = slope * x + intercept More...

## Protected Member Functions

void computeGoodness_ (const std::vector< double > &X, const std::vector< double > &Y, 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...

LinearRegressionoperator= (const LinearRegression &arg)
Not implemented. More...

## Detailed Description

This class offers functions to perform least-squares fits to a straight line model, $$Y(c,x) = c_0 + c_1 x$$.

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

## ◆ LinearRegression() [1/2]

 LinearRegression ( )
inline

Constructor.

## ◆ ~LinearRegression()

 virtual ~LinearRegression ( )
virtualdefault

Destructor.

## ◆ LinearRegression() [2/2]

 LinearRegression ( const LinearRegression & arg )
private

Not implemented.

## ◆ 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.

References LinearRegression::computePointY().

## ◆ computeGoodness_()

 void computeGoodness_ ( const std::vector< double > & X, const std::vector< double > & Y, double confidence_interval_P )
protected

Computes the goodness of the fitted regression line.

## ◆ computePointY()

 static double computePointY ( double x, double slope, double intercept )
inlinestatic

given x compute y = slope * x + intercept

## ◆ computeRegression()

 void computeRegression ( double confidence_interval_P, std::vector< double >::const_iterator x_begin, std::vector< double >::const_iterator x_end, std::vector< double >::const_iterator y_begin, bool compute_goodness = true )

This function computes the best-fit linear regression coefficients $$(c_0,c_1)$$ of the model $$Y = c_0 + c_1 X$$ for the dataset $$(x, y)$$.

The values in x-dimension of the dataset $$(x,y)$$ 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.
Exceptions
 Exception::UnableToFit is thrown if fitting cannot be performed

## ◆ computeRegressionWeighted()

 void computeRegressionWeighted ( double confidence_interval_P, std::vector< double >::const_iterator x_begin, std::vector< double >::const_iterator x_end, std::vector< double >::const_iterator y_begin, std::vector< double >::const_iterator w_begin, bool compute_goodness = true )

This function computes the best-fit linear regression coefficients $$(c_0,c_1)$$ of the model $$Y = c_0 + c_1 X$$ for the weighted dataset $$(x, y)$$.

The values in x-dimension of the dataset $$(x, y)$$ 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.
Exceptions
 Exception::UnableToFit is thrown if fitting cannot be performed

## ◆ 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.

References LinearRegression::computePointY().

## ◆ getChiSquared()

 double getChiSquared ( ) const

## ◆ getIntercept()

 double getIntercept ( ) const

## ◆ getLower()

 double getLower ( ) const

## ◆ getMeanRes()

 double getMeanRes ( ) const

## ◆ getRSD()

 double getRSD ( ) const

## ◆ getRSquared()

 double getRSquared ( ) const

## ◆ getSlope()

 double getSlope ( ) const

## ◆ getStandDevRes()

 double getStandDevRes ( ) const

## ◆ getStandErrSlope()

 double getStandErrSlope ( ) const

## ◆ getTValue()

 double getTValue ( ) const

## ◆ getUpper()

 double getUpper ( ) const

## ◆ getXIntercept()

 double getXIntercept ( ) const

## ◆ operator=()

 LinearRegression& operator= ( const LinearRegression & arg )
private

Not implemented.

## ◆ chi_squared_

 double chi_squared_
protected

The value of the Chi Squared statistic.

## ◆ intercept_

 double intercept_
protected

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

## ◆ 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.

## ◆ 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.