HTML automatically generated with rman
Table of Contents
tablsqfit - general purpose least squares fitting program
tablsqfit
in=table-file [parameter=value]
tablsqfit takes a least squares
fit (minimized ChiSquared) of a set of datapoints (x(i),y(i)) where a functional
form y=f(x;a1,a2,...,an) is assumed. The functional form to be fitted has to
be specified by name at this stage. A number of options are possible.
The
inputfile is an ascii file in a tabular format, where on every line there
must be an assigned column for the X- and Y-coordinates. An optional column
can be assigned to the errors in Y (the DY-coordinates). If no DY-column is
assigned, it is assumed that the errors in Y are all the same and equal
to 1. Lines starting with the ’#’ symbol are comment lines. Certain models
(see fit= below) allow multiple X or Y columns. For fit=line a proper goodness-of-fit
is also computed in a second fit an error column (dycol=) is given.
For
most linear functions the non-linear version of this program will also work
fine, and has the added power that certain parameters can be fixed, and
error estimates are returned. See tabnllsqfit(1NEMO)
.
The following
parameters are recognized in any order if the keyword is also given:
- in=in-file
- (ascii) input file, a table of values from which data is taken. No default.
- xcol=col,...
- The column(s) from which the (independant) X-values are taken.
The first column is called 1 by definition [default: 1].
- ycol=col,...
- The column(s)
from which the (dependant) Y-values are taken [default: 2].
- dxcol=int
- Optional
column from which the DX-values (errors in X) are taken. Currently only
a straight line fit can use this option. See below.
- dycol=int
- Optional column
from which the DY-values (errors in Y) are taken. The inverse square of the
errors are uses as weights for those fits where these are used [default:
none assigned].
- xrange=xmin:xmax
- Range in X-values for which the fit is done.
If only one number is given, the other one is considered zero. [default:
no entry, i.e. all].
- fit=model
- Model name what to fit. Currently implemented
are line, plane, poly, ellipse, peak, zero, imageshift, area, gauss1d,
and gauss2d. [default: line].
- order=order
- Highest order of the polynomial
fit (fit=poly) or dimension of the hyper-plane fit (fit=plane). 0 would
fit a constant. 0 and 1 would have the same meaning in both the plane and
poly cases [Default: 0].
- out=filename
- Optional output filename (only active
under certain options) where the data and residuals are stored. Column 1,
2 and 3 will contain the X, Y and residuals F(X)-Y respectively. A future
release will also store the errors (if it was given, see keyword dycol
above) in the 4th column. [default: empty, no output file created].
- nsigma=sigma_factor
- A positive number will delete points more than sigma_factor from the fit,
and fit again. [Default: -1].
- estimate=
- Optional estimate for parameters of
non-linear fits
- nmax=max_lines
- Maximum number of lines allocated if the
input file was being read from a pipe. If not, the routine file_lines(3NEMO)
is used to allocate space for the table. [Default: 10000].
- mpfit=mode
- The
fitting mode in which mpfit(3NEMO)
is used. 0=no errors. 1=only errors in
X used (dxcol=), 2=only errors in Y used (dycol=), 3=errors in both X
and Y used. See also linreg(1NEMO)
.
- tab=t|f
- Output results in simple tabular
format. Default: false.
Here is an example of creating an on-the-fly
table with a straight line, with some added noise and random weights between
1 and 2:
% nemoinp 1:100 | tabmath - - "%1+rang(0,10),ranu(1,2)" seed=123 | tablsqfit
-
a = 0.974146 uncertainty: 0.039389
b = 1.755022 uncertainty: 2.291149
x0 = -1.801599 uncertainty: 2.353083
y0 = 1.755022 uncertainty: 2.291149
chi-squared: 12668.983284
goodness-of-fit: 1.000000 (no Y errors supplied [dycol=])
r: 0.92923
prob: 3.65557e-44
z: 1.65272
The fitted line is written either as y=ax+b or alternatively with their
(x0,y0) intercepts as x/x0 + y/y0=1.
tabhist(1NEMO)
, tabmath(1NEMO)
,
gaussfit(1NEMO)
, linreg(1NEMO)
, tabnllsqfit(1NEMO)
Numerical Recipies in
C, Ch.14
mpfit: http://www.physics.wisc.edu/~craigm/idl/cmpfit.html
(author:
Craig B. Markwardt)
http://arxiv.org/abs/1008.4686:
Data analysis recipes:
Fitting a model to data P (Hogg, Bovy & Lang 2010)
Author
Peter Teuben
~/src/kernel/tab tablsqfit.c
5-Aug-87 V1.0 created PJT
18-May-88 V1.4 various new options PJT
31-May-88 V2.0 ’float’-> ’double’ for NumRec PJT
14-nov-91 V2.4 ellips fit and various others PJT
13-Mar-92 V2.5 added imageshift option PJT
15-nov-93 V2.6 added nmax= PJT
13-jun-94 V2.7 code overhaul to add line/poly PJT
8-jun-95 V2.8 added option fit=peak PJT
26-jan-98 V2.9 added goodness-of-fit for fit=line PJT
4-feb-98 V2.9a compute r (corr.coeff.) for line fit PJT
14-aug-00 V3.0 added tab= PJT
8-aug-01 V3.1c added area, using natof, error in ellipse PJT
24-feb-03 V3.4: added fit=zero PJT
21-nov-05 V3.4b: added fit=gauss1d,gauss2d PJT
9-dec-09 V4.0: added xcol= and mpfit= PJT
Table of Contents