tlinear: Use linear regression to fit one or two table columns.

Package: nttools

Usage

tlinear intable outtable xcol ycol

Description

This task generates fitted Y values and their residuals in two columns. These columns may be written to an output table, but cannot be written to STDOUT--only the fit parameters can be written to STDOUT. If there is more than one table in the input list then a separate fit is made for each table.

When a column of weights is used (see 'wcol'), the weights will be applied when computing the coefficients of the fit (a, b), their standard deviations (siga2, sigb2), and chi squared (chi2), where the names in parentheses are the headings in the output printed to STDOUT. If any row has a weight that is exactly zero, that row will not be counted in the "pts in fit" value. The weights will NOT be used when computing the RMS of the residuals and mean of the residuals (residual rms, residual mean); these are unweighted averages except that rows with exactly zero weight will not be included.

Parameters

intable [file name template]
A list of input tables containing the columns to be fit. A fit will be made of the columns specified by the 'xcol' and 'ycol' parameters. If more than one file name is passed to 'intable', all of the files must use the same column names.
outtable = STDOUT [file name template]
File names for creating output files, or STDOUT to send output to the screen. If the value of this parameter is "STDOUT" then the parameters of the fit will be written to STDOUT preceded by a header line (beginning with #) in tabular form. If 'outtable' is not "STDOUT" then the number of file names must match the number of names in 'intable', and the fitted Y values and residuals will be written to an output table with the specified name. The parameters of the fit will be written to the table header.
xcol [string]
Column name in the input tables to be fit. The values in this column will be fit for the X axis. (The same column name is used for each input table.) If a name is not specified for the X values then row number is used. The values in the 'xcol' column will be copied to 'outtable' unless the output is being directed to STDOUT.
ycol [string]
Column name in the input tables containing value to be fit for the Y axis. (The same column name is used for each input table.) Values in 'ycol' will be copied to 'outtable' unless 'outtable = STDOUT'.
(wcol) [string]
Column name in 'intable' that contains weight values for X and Y. (The same column name is used for each input table.) If no column name is passed to either the 'wcol' or 'scol' parameters, then a weight of 1. is used. The value of the 'wcol' column is copied to 'outtable' unless 'outtable = STDOUT'.
(scol) [string]
Column in 'intable' containing the standard deviation of X and Y. The X and Y values are weighted by the values in 'scol' as the reciprocal of the values squared. (The same column name is used for each input table.) If no value is passed to 'wcol' or 'scol', then a weight of 1. is used. This task can accept either a weight value or a standard deviation value, but not both. If both 'wcol' and 'scol' are specified, then the weight column (i.e., 'wcol') will be used. The value in the 'scol' column is written to 'outtable' unless 'outtable' = STDOUT.
(rows = "-") [string]
Range of rows to use for fitting the data. The default "-" means that all rows are used. (Type "help xtools.ranges" for more information.)
(outcoly = "yfit") [string]
Column name for fitted Y values. This parameter is not used if 'outtable' = STDOUT. This column will be double data type.
(outcolr = "yres") [string]
Name of the column to contain residuals. This parameter is ignored if 'outtable' = STDOUT. This column will be of double data type.

Examples

1. Fit the values in the "flux" column in every table whose name begins with "hr"; put all parameters of the fits in the ASCII file "fit.lis".

tt> tlinear hr*.tab STDOUT "" flux > fit.lis

2. Generate the same fits as in the previous example, but put the results in tables, one output for each input table. For example, the fitted Y values and residuals for an input table named "hr465.tab" would be put in "hr465h.tab".

tt> tlinear hr*.tab hr*%%h%.tab "" flux

3. Fit the values in the "flux" column as a function of the values in the "wavelength" column and write all the parameters of the fit to STDOUT.

tt> tlinear hr*.tab STDOUT wavelength flux

Bugs

References

This task was written by Betty Stobie.

See also

ranges