whittaker: Whittaker Smoothing

Description Usage Arguments Details Value Note Author(s) References See Also Examples

Description

Smoothing of time series using the Whittaker-Henderson approach.

Usage

1
whittaker(y, lambda = 1600, d = 2)

Arguments

y

signal to be smoothed.

lambda

smoothing parameter (rough 50..1e4 smooth); the default value of 1600 has been recommended in the literature.

d

order of differences in penalty (generally 2)

Details

The Whittaker smoother family was first presented by Whittaker in 1923 for life tables, based on penalized least squares. These ideas were revived by Paul Eilers, Leiden University, in 2003. This approach is also known as Whittaker-Henderson smoothing.

The smoother attempts to both fit a curve that represents the raw data, but is penalized if subsequent points vary too much. Mathematically it is a large, but sparse optimization problem that can be expressed in a few lines of Matlab or R code.

Value

A smoothed time series.

Note

This is a version that avoids package 'SparseM'.

Author(s)

An R version, based on Matlab code by P. Eilers in 2002, has been published by Nicholas Lewin-Koh on the R-help mailing list in Feb. 2004, and in private communication to the author of this package.

References

P. H. C. Eilers (2003). A Perfect Smoother. Analytical Chemistry, Vol. 75, No. 14, pp. 3631–3636.

Wilson, D. I. (2006). The Black Art of Smoothing. Electrical and Automation Technology, June/July issue.

See Also

supsmu, savgol, ptw::whit2

Examples

1
2
3
4
5
6
7
8
9
# **Sinosoid test function**
ts <- sin(2*pi*(1:1000)/200)
t1 <- ts + rnorm(1000)/10
t3 <- whittaker(t1, lambda = 1600)
## Not run: 
plot(1:1000, t1, col = "grey")
lines(1:1000, ts, col="blue")
lines(1:1000, t3, col="red")
## End(Not run)


Search within the pracma package
Search all R packages, documentation and source code

Questions? Problems? Suggestions? or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.