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.