Routines (alphabetical) > Routines: L > LINFIT

# LINFIT

The LINFIT function fits the paired data {xi, yi} 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