smoothEnds               package:stats               R Documentation

End Points Smoothing (for Running Medians)

Description:

     Smooth end points of a vector 'y' using subsequently smaller
     medians and Tukey's end point rule at the very end. (of odd span),

Usage:

     smoothEnds(y, k = 3)

Arguments:

       y: dependent variable to be smoothed (vector).

       k: width of largest median window; must be odd.

Details:

     'smoothEnds' is used to only do the 'end point smoothing', i.e.,
     change at most the observations closer to the beginning/end than
     half the window 'k'.  The first and last value are computed using
     _Tukey's end point rule_, i.e., 'sm[1] = median(y[1], sm[2],
     3*sm[2] - 2*sm[3])'.

Value:

     vector of smoothed values, the same length as 'y'.

Author(s):

     Martin Maechler

References:

     John W. Tukey (1977) _Exploratory Data Analysis_, Addison.

     Velleman, P.F., and Hoaglin, D.C. (1981) _ABC of EDA
     (Applications, Basics, and Computing of Exploratory Data
     Analysis)_; Duxbury.

See Also:

     'runmed(*, endrule = "median")' which calls 'smoothEnds()'.

Examples:

     require(graphics)

     y <- ys <- (-20:20)^2
     y [c(1,10,21,41)] <-  c(100, 30, 400, 470)
     s7k <- runmed(y,7, endrule = "keep")
     s7. <- runmed(y,7, endrule = "const")
     s7m <- runmed(y,7)
     col3 <- c("midnightblue","blue","steelblue")
     plot(y, main = "Running Medians -- runmed(*, k=7, end.rule = X)")
     lines(ys, col = "light gray")
     matlines(cbind(s7k,s7.,s7m), lwd= 1.5, lty = 1, col = col3)
     legend(1,470, paste("endrule",c("keep","constant","median"),sep=" = "),
            col = col3, lwd = 1.5, lty = 1)

     stopifnot(identical(s7m, smoothEnds(s7k, 7)))

