The LINFIT function fits the paired data {*x*_{i}, *y*_{i}} to the linear model, y = A + Bx, by minimizing the chi-square error statistic. The chi-square error statistic is computed as

LINFIT is based upon the “fit” and “gammq” routines from *Numerical Recipes in C* (Second Edition). See section 15.2 of *Numerical Recipes in C* (Second Edition) for details.

This routine is written in the IDL language. Its source code can be found in the file linfit.pro in the lib subdirectory of the IDL distribution.

## Examples

`; Define two n-element vectors of paired data:`

X = [-3.20, 4.49, -1.66, 0.64, -2.43, -0.89, -0.12, 1.41, $

2.95, 2.18, 3.72, 5.26]

Y = [-7.14, -1.30, -4.26, -1.90, -6.19, -3.98, -2.87, -1.66, $

-0.78, -2.61, 0.31, 1.74]

; Define an n-element vector of Poisson measurement errors:

measure_errors = SQRT(ABS(Y))

; Compute the model parameters, A and B, and print the result:

`result = LINFIT(X, Y, MEASURE_ERRORS=measure_errors)`

`PRINT, result`

IDL prints:

-3.16574 0.829856

## Syntax

*Result* = LINFIT( *X*, *Y* [, CHISQR=*variable*] [, COVAR=*variable*] [, /DOUBLE] [, MEASURE_ERRORS=*vector*] [, PROB=*variable*] [, SIGMA=*variable*] [, YFIT=*variable*] )

## Return Value

The result is a two-element vector containing the linear model parameters [A, B].

## Arguments

### X

An *n*-element vector containing the independent variable values. *X* may be of type integer, floating point, or double-precision floating-point.

### Y

An *n*-element integer, single-, or double-precision floating-point vector.

## Keywords

### CHISQR

Set this keyword to a named variable that will contain the value of the unreduced chi-square goodness-of-fit statistic.

### COVAR

Set this keyword to a named variable that will contain the covariance matrix of the coefficients.

**Note: **The COVAR matrix depends only upon the independent variable X and (optionally) the MEASURE_ERRORS. The values do not depend upon Y. See section 15.4 of *Numerical Recipes in C* (Second Edition) for details.

### DOUBLE

Set this keyword to force the computation to be done in double-precision arithmetic.

### MEASURE_ERRORS

Set this keyword to a vector containing standard measurement errors for each point *Y*[*i*]. This vector must be the same length as *X* and *Y*. When MEASURE_ERRORS is set, the chi-square error statistic is computed as

where σ represents the measurement error.

**Note: **For Gaussian errors (e.g., instrumental uncertainties), MEASURE_ERRORS should be set to the standard deviations of each point in *Y*. For Poisson or statistical weighting, MEASURE_ERRORS should be set to SQRT(ABS(*Y*)).

### PROB

Set this keyword to a named variable that will contain the probability that the computed fit would have a value of CHISQ or greater. If PROB is greater than 0.1, the model parameters are “believable”. If PROB is less than 0.1, the accuracy of the model parameters is questionable.

### SIGMA

Set this keyword to a named variable that will contain the 1-sigma uncertainty estimates for the returned parameters

**Note: **If MEASURE_ERRORS is omitted, then you are assuming that a straight line is the correct model for your data, and therefore, no independent goodness-of-fit test is possible. In this case, the values returned in SIGMA are multiplied by

SQRT(CHISQ/(*N*–*M*)), where *N* is the number of points in *X*, and *M* is the number of coefficients. See section 15.2 of *Numerical Recipes in C* (Second Edition) for details.

### YFIT

Set this keyword equal to a named variable that will contain the vector of calculated *Y* values.

## Version History

4.0 |
Introduced |

Pre 6.1 |
Deprecated the SDEV keyword. |

## See Also

COMFIT, CURVEFIT, GAUSSFIT, LADFIT, LMFIT, POLY_FIT, REGRESS, SFIT, SVDFIT