HoltWinters(x, alpha = NULL, beta = NULL, gamma = NULL, seasonal = c("additive", "multiplicative"), start.periods = 2, l.start = NULL, b.start = NULL, s.start = NULL, optim.start = c(alpha = 0.3, beta = 0.1, gamma = 0.1), optim.control = list())tsFALSE, the function will do exponential smoothing.FALSE, an non-seasonal model is fitted."additive"
    (the default) or "multiplicative" seasonal model. The first
    few characters are sufficient. (Only takes effect if
    gamma is non-zero).alpha,
    beta, and gamma containing the starting values for the
    optimizer. Only the values needed must be specified.  Ignored in the
    one-parameter case.optim if this is used.  Ignored in the
    one-parameter case."HoltWinters", a list with components:
  a, b, s1, ..., sp
    containing the estimated values for the level, trend and seasonal
    componentsseasonal parameter  The multiplicative Holt-Winters prediction function (for time series
  with period length p) is
  $$\hat Y[t+h] = (a[t] + h b[t]) \times s[t - p + 1 + (h - 1) \bmod p].$$
  where $a[t]$, $b[t]$ and $s[t]$ are given by
  $$a[t] = \alpha (Y[t] / s[t-p])  + (1-\alpha) (a[t-1] + b[t-1])$$
  $$b[t] = \beta (a[t] - a[t-1]) + (1-\beta) b[t-1]$$
  $$s[t] = \gamma (Y[t] / a[t])   + (1-\gamma) s[t-p]$$
  The data in x are required to be non-zero for a multiplicative
  model, but it makes most sense if they are all positive.
  The function tries to find the optimal values of $\alpha$ and/or
  $\beta$ and/or $\gamma$ by minimizing the squared one-step
  prediction error if they are NULL (the default). optimize
  will be used for the single-parameter case, and optim otherwise.
  For seasonal models, start values for a, b and s
  are inferred by performing a simple decomposition in trend and
  seasonal component using moving averages (see function
  decompose) on the start.periods first periods (a simple
  linear regression on the trend component is used for starting level
  and trend). For level/trend-models (no seasonal component), start
  values for a and b are x[2] and x[2] -
  x[1], respectively. For level-only models (ordinary exponential
  smoothing), the start value for a is x[1].
P. R. Winters (1960) Forecasting sales by exponentially weighted moving averages, Management Science 6, 324--342.
predict.HoltWinters, optim.
require(graphics)
## Seasonal Holt-Winters
(m <- HoltWinters(co2))
plot(m)
plot(fitted(m))
(m <- HoltWinters(AirPassengers, seasonal = "mult"))
plot(m)
## Non-Seasonal Holt-Winters
x <- uspop + rnorm(uspop, sd = 5)
m <- HoltWinters(x, gamma = FALSE)
plot(m)
## Exponential Smoothing
m2 <- HoltWinters(x, gamma = FALSE, beta = FALSE)
lines(fitted(m2)[,1], col = 3)
Run the code above in your browser using DataLab