Software for Locally-Weighted Regression 18 August 1992
William S. Cleveland
Eric Grosse
Ming-Jen Shyu
Locally-weighted regression, or loess, is a procedure for estimating a
regression surface by a multivariate smoothing procedure: fitting a
linear or quadratic function of the independent variables in a moving
fashion that is analogous to how a moving average is computed for a
time series. Compared to classical approaches - fitting global
parametric functions - loess substantially increases the domain of
surfaces that can be estimated without distortion. Also, a pleasant
fact about loess is that analogues of the statistical procedures used
in parametric function fitting - for example, ANOVA and t intervals -
involve statistics whose distributions are well approximated by
familiar distributions.
The follwing files are included in this distribution.
README the instruction file you are reading now
S.h header file
air.c C source for air data example
changes history of changes to loess
depend.ps PostScript figure of how routines are related
ethanol.c C source for ethanol data example
galaxy.c C source for galaxy data example
gas.c C source for gas data example
loess.c C source (high-level loess routines)
loess.h header file for loess_struct and predict_struct
loess.m manual page for user-callable loess routines
loessc.c C source (low-level loess routines)
loessf.f FORTRAN source (low-level loess & predict routines)
loessf.m documentation for FORTRAN source
madeup.c C source for madeup data example
makefile makefile to compile the example codes
misc.c C source (anova, pointwise, and other support routines)
predict.c C source (high-level predict routines)
predict.m manual page for user-callable predict routines
struct.m manual page for loess_struct, pred_struct
supp.f supplemental Fortran loess drivers
After unpacking these files, just type "make" and if all goes well
you should see output like:
loess(&gas):
Number of Observations: 22
Equivalent Number of Parameters: 5.5
Residual Standard Error: 0.3404
loess(&gas_null):
Number of Observations: 22
Equivalent Number of Parameters: 3.5
Residual Standard Error: 0.5197
predict(gas_fit_E, m, &gas, &gas_pred):
1.19641 5.06875 0.523682
pointwise(&gas_pred, m, coverage, &gas_ci):
1.98562 4.10981 5.48023 5.56651 3.52761 1.71062 1.47205
1.19641 3.6795 5.05571 5.13526 3.14366 1.19693 0.523682
0.407208 3.24919 4.63119 4.70401 2.7597 0.683247 -0.424684
anova(&gas_null, &gas, &gas_anova):
2.5531 15.663 10.1397 0.000860102
To run other examples, simply type "make galaxy", or "make ethanol", etc.
If your loader complains about "-llinpack -lblas" in the makefile, change
it to whatever your system prefers for accessing Linpack and the Blas.
If necessary, these Fortran subroutines can be obtained by
mail netlib@netlib.bell-labs.com
send dnrm2 dsvdc dqrdc ddot dqrsl idamax from linpack core.
A 50 page user guide, in PostScript form, is available by anonymous ftp.
ftp netlib.bell-labs.com
login: anonymous
password: <your email address>
binary
cd /netlib/a
get cloess.ps.Z
quit
uncompress cloess.ps
This guide describes crucial steps in the proper analysis of data using
loess. Please read it.
Bug reports are appreciated. Send electronic mail to
ehg@netlib.bell-labs.com
including the words "this is not spam" in the Subject line
or send paper mail to
Eric Grosse
Bell Labs 2T-502
Murray Hill NJ 07974
for problems with the Fortran inner core of the algorithm.
The C drivers were written by Ming-Jen Shyu, who left Bell Labs. Eric will
fix problems with them when he can.
Remember that this is experimental software distributed free of charge
and comes with no warranty! Exercise professional caution.
Happy Smoothing!
/*
* The authors of this software are Cleveland, Grosse, and Shyu.
* Copyright (c) 1989, 1992 by AT&T.
* Permission to use, copy, modify, and distribute this software for any
* purpose without fee is hereby granted, provided that this entire notice
* is included in all copies of any software which is or includes a copy
* or modification of this software and in all copies of the supporting
* documentation for such software.
* THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
* WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY
* REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
* OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
*/