smooth package:stats R Documentation _T_u_k_e_y'_s (_R_u_n_n_i_n_g _M_e_d_i_a_n) _S_m_o_o_t_h_i_n_g _D_e_s_c_r_i_p_t_i_o_n: Tukey's smoothers, _3RS3R_, _3RSS_, _3R_, etc. _U_s_a_g_e: smooth(x, kind = c("3RS3R", "3RSS", "3RSR", "3R", "3", "S"), twiceit = FALSE, endrule = "Tukey", do.ends = FALSE) _A_r_g_u_m_e_n_t_s: x: a vector or time series kind: a character string indicating the kind of smoother required; defaults to '"3RS3R"'. twiceit: logical, indicating if the result should be 'twiced'. Twicing a smoother S(y) means S(y) + S(y - S(y)), i.e., adding smoothed residuals to the smoothed values. This decreases bias (increasing variance). endrule: a character string indicating the rule for smoothing at the boundary. Either '"Tukey"' (default) or '"copy"'. do.ends: logical, indicating if the 3-splitting of ties should also happen at the boundaries (ends). This is only used for 'kind = "S"'. _D_e_t_a_i_l_s: _'3'_ is Tukey's short notation for running 'median's of length *3*, _'3R'_ stands for *R*epeated _'3'_ until convergence, and _'S'_ for *S*plitting of horizontal stretches of length 2 or 3. Hence, _'3RS3R'_ is a concatenation of '3R', 'S' and '3R', _'3RSS'_ similarly, whereas _'3RSR'_ means first '3R' and then '(S and 3)' *R*epeated until convergence - which can be bad. _V_a_l_u_e: An object of class '"tukeysmooth"' (which has 'print' and 'summary' methods) and is a vector or time series containing the smoothed values with additional attributes. _N_o_t_e: S and S-PLUS use a different (somewhat better) Tukey smoother in 'smooth(*)'. Note that there are other smoothing methods which provide rather better results. These were designed for hand calculations and may be used mainly for didactical purposes. Since R version 1.2, 'smooth' _does_ really implement Tukey's end-point rule correctly (see argument 'endrule'). 'kind = "3RSR"' has been the default till R-1.1, but it can have very bad properties, see the examples. Note that repeated application of 'smooth(*)' _does_ smooth more, for the '"3RS*"' kinds. _R_e_f_e_r_e_n_c_e_s: Tukey, J. W. (1977). _Exploratory Data Analysis_, Reading Massachusetts: Addison-Wesley. _S_e_e _A_l_s_o: 'lowess'; 'loess', 'supsmu' and 'smooth.spline'. _E_x_a_m_p_l_e_s: require(graphics) ## see also demo(smooth) ! x1 <- c(4, 1, 3, 6, 6, 4, 1, 6, 2, 4, 2) # very artificial (x3R <- smooth(x1, "3R")) # 2 iterations of "3" smooth(x3R, kind = "S") sm.3RS <- function(x, ...) smooth(smooth(x, "3R", ...), "S", ...) y <- c(1,1, 19:1) plot(y, main = "misbehaviour of \"3RSR\"", col.main = 3) lines(sm.3RS(y)) lines(smooth(y)) lines(smooth(y, "3RSR"), col = 3, lwd = 2)# the horror x <- c(8:10,10, 0,0, 9,9) plot(x, main = "breakdown of 3R and S and hence 3RSS") matlines(cbind(smooth(x,"3R"),smooth(x,"S"), smooth(x,"3RSS"),smooth(x))) presidents[is.na(presidents)] <- 0 # silly summary(sm3 <- smooth(presidents, "3R")) summary(sm2 <- smooth(presidents,"3RSS")) summary(sm <- smooth(presidents)) all.equal(c(sm2),c(smooth(smooth(sm3, "S"), "S"))) # 3RSS === 3R S S all.equal(c(sm), c(smooth(smooth(sm3, "S"), "3R")))# 3RS3R === 3R S 3R plot(presidents, main = "smooth(presidents0, *) : 3R and default 3RS3R") lines(sm3,col = 3, lwd = 1.5) lines(sm, col = 2, lwd = 1.25)