REGRESS Function

Standard Library function that fits a curve to data using the multiple linear regression method.

Usage

result = REGRESS(x, y, wt[, yf, a0, sig, ft, r, rm, c])

Input Parameters

x—An array containing the independent values. Must be two-dimensional of size m by n, where m is the number of coefficients to be computed, and n is the number of data points.

y—A vector containing the dependent values. Must have n elements.

wt—A vector of weighting factors for determining the weighting of the multiple linear regression. Must have n elements.

Output Parameters

yf—(optional) An array containing the calculated values of y. It contains n number of elements

a0(optional) The constant term (offset) of the output function.

sig—(optional) Vector containing standard deviations for the coefficients.

ft—(optional) The value of F in the standard F Test for the goodness of fit.

r—(optional) A vector containing the linear correlational coefficients.

rm—(optional) The multiple linear correlation coefficient.

c—(optional) Value of X2 in the Chi-Squared test for the goodness of fit.

Returned Value

result—A column vector containing the coefficients ( a1 to am ) of the function in x.

Keywords

None.

Discussion

REGRESS performs a multiple linear regression fit to a dataset with a specified function which is linear in the coefficients. The general function is given by:

f(x) = a0 + a1x1 + a2x2 + ... amxm

Weighting is useful when you want to correct for potential errors in the data you are fitting to a curve. The weighting factor, wt, adjusts the parameters of the curve so that the error at each point of the curve is minimized. For more information, see the CURVEFIT Function.

Example

; Create the data.
x = FLTARR(3, 9)
x(0, *) = [0., 1., 2., 3., 4., 10., 13., 17., 20.]
x(1, *) = [0., 3., 6., 9., 12., 15., 18., 19., 20.]
x(2, *) = [0., 4., 8., 12., 13., 14., 15., 18., 20.]
y = [5., 4., 3., 2., 2., 4., 5., 8., 9.]
wt = FLTARR(9) + 1.0
; Perform multiple linear regression with no weighting.
coeff = REGRESS(x, y, wt, yf, a0, sig, ft, r, rm, c)
; Plot the fitted data.
PLOT, yf, Title='REGRESS EXAMPLE'
; Print all the output parameters.
PRINT, 'Fitted function:'
PRINT, ' f(x) = ',a0,' +', coeff(0, 0),' x1 +', $
   coeff(0, 1),' x2 +', coeff(0, 2),' x3'
PRINT, 'Standard deviations for coefficients: ', sig
PRINT, 'F Test value:', ft
PRINT, 'Linear correlation coefficients: ', r
PRINT, 'Multiple linear correlation coefficient: ', rm
PRINT, 'Chi-squared value: ', c
; PV-WAVE prints:
; f(x) =  4.88039 +  0.736371 x1 +  -0.476869 x2 +  -0.0464314 x3
; Standard deviations for coefficients:    0.135938     0.284764
;      0.246748
; F Test value:       94.8390
; Linear correlation coefficients:  0.810984  0.546753  0.469676
; Multiple linear correlation coefficient:       0.991327
; Chi-squared value:       0.165797

See Also

CURVEFIT,  GAUSSFIT,  POLY_FIT,  POLYFITW,  SVDFIT

The REGRESS function is adapted from the program REGRES in Data Reduction and Error Analysis for the Physical Sciences, by Philip Bevington, McGraw-Hill, New York, 1969.