Locfit 2.0 released November 1, 2006. Some features include:
- Full use of S4-style classes methods (in R and S-Plus).
- Modules enable customization and extension.
- Local quantile estimation (family=quantile()).
Locfit 2.01 (Nov. 30) is some minor bug fixes in the C code, and more development of the
matlab version.
Current distributions are
I don't currently have access to S-Plus and Matlab on windows, so can't distribute binaries
for those systems. If anyone's willing to try compiling, please contact me.
I have compiled the main locfit libraries under cygwin...
LOCFIT
is a software system for fitting curves and surfaces to data,
using the local regression and likelihood methods. The code is mostly
written in C. LOCFIT can be used in several ways:
- As an add-on library for S-Plus or
R, or Matlab.
- As a stand-alone application, through the C-LOCFIT
interface.
- As a linkable library that can be called from other applications.
1. is the usage that I usually recommend.
2. is clunky, and poorly supported. (may or may not work; I probably won't
fix things that don't work).
3. is the most powerful, if you can do some C programming.
The main capabilities of LOCFIT include
Regression Modeling
- Single-predictor and multi-predictor models.
- Local least squares (local polynomial) fitting.
- Robust regression methods.
- Inference: confidence bands, degrees of freedom.
- Weighted data; pooled (binned) data.
- One-sided smoothing; periodic smoothing.
Likelihood Regression Models
- Local likelihood (localized general linear models).
- Local likelihood density estimation.
- Available models include Gaussian, Binomial (logistic), Poisson,
Gamma, Weibull, Geometric, Negative Binomial.
- Choice of link functions.
Censored Survival Data
- Hazard Rate Estimation.
- Conditional Hazard Estimation.
- Regression and GLM's for censored data.
Classification and Discrimination
- Model building using logistic regression or density estimation techniques.
Model Selection
- Cross-validation, AIC, Mallows' Cp for smooth regression
and likelihood models.
- Locally adaptive techniques.
For a quick tour of
LOCFIT's main capabilities, you may like this
introductory paper.
Local Regression, Lowess, Loess, Locfit
Local regression refers to a statistical technique. Lowess, Loess and Locfit
are three separate, independent, implementations of this technique.
Since I often see/hear these confused, here's a little history...
- Local Regression is a method for fitting smooth curves and
surfaces to noisy data, using regression models within sliding windows. In
simple forms, the idea can be found in scientific literature dating back to
the 19th century.
- Lowess is an implementation of local regression. It supports robust
local linear fitting for a single predictor variable, as described in the
seminal work of Cleveland (1979 JASA).
The Lowess code was written in Fortran, and developed by Bill Cleveland
and Rick Becker in the late 1970's and early 1980's. It can be downloaded
from the Golden Oldies
page of netlib.
- Loess is another implementation of Local Regression, based
on the developments in the paper by Cleveland and Devlin (1988 JASA).
It supports univariate and multivariate predictor variables, and local
linear and local quadratic fits.
Loess was written in Fortran and C, largely by Eric Grosse in the late 1980's.
The computational methods are described in the paper by Cleveland
and Grosse (Statistics and Computing, 1991).
The S interface (described in the Chambers & Hastie `White Book') was
mostly written by Irma Terpenning and Ming-Jen Shyu.
Loess source code can be obtained from
netlib.
- Locfit began as an amalgamation of code I wrote for various papers
studying local regression and density estimation in the mid 1990's.
It is another implementation of local regression, and also incorporates local
likelihood techniques, and extensive tools for model building and diagnostics.
The code is written in C, along with R/S-Plus interface and graphics
functions.
Lowess has been included in S (and S-Plus) since the early days, and Loess has
been included since version 3 (about 1992). R uses the original Loess,
and an f2c translation of lowess. Many other software packages claim
to have lowess or loess functions; you should read documentation carefully to
determine whether they are using original lowess/loess code, or whether they
are other implementations of local regression methods.