R: Forecasting time series

forecast {forecast} | R Documentation

## Forecasting time series

### Description

`forecast` is a generic function for forecasting from time series or time series models. The function invokes particular methods which depend on the class of the first argument.

### Usage

    forecast(object, ...)

    ## Default S3 method:
    forecast(object, ...)

    ## S3 method for class 'ts'
    forecast(
      object,
      h = ifelse(frequency(object) > 1, 2 * frequency(object), 10),
      level = c(80, 95),
      fan = FALSE,
      robust = FALSE,
      lambda = NULL,
      biasadj = FALSE,
      find.frequency = FALSE,
      allow.multiplicative.trend = FALSE,
      model = NULL,
      ...
    )

### Arguments

`object` | a time series or time series model for which forecasts are required
`...` | Additional arguments affecting the forecasts produced. If `model=NULL`, `forecast.ts` passes these to `ets` or `stlf` depending on the frequency of the time series. If `model` is not `NULL`, the arguments are passed to the relevant modelling function.
`h` | Number of periods for forecasting
`level` | Confidence level for prediction intervals.
`fan` | If TRUE, `level` is set to `seq(51,99,by=3)`. This is suitable for fan plots.
`robust` | If TRUE, the function is robust to missing values and outliers in `object`. This argument is only valid when `object` is of class `ts`.
`lambda` | Box-Cox transformation parameter. If `lambda="auto"`, then a transformation is automatically selected using `BoxCox.lambda`. The transformation is ignored if NULL. Otherwise, data transformed before model is estimated.
`biasadj` | Use adjusted back-transformed mean for Box-Cox transformations. If transformed data is used to produce forecasts and fitted values, a regular back transformation will result in median forecasts. If biasadj is TRUE, an adjustment will be made to produce mean forecasts and fitted values.
`find.frequency` | If TRUE, the function determines the appropriate period, if the data is of unknown period.
`allow.multiplicative.trend` | If TRUE, then ETS models with multiplicative trends are allowed. Otherwise, only additive or no trend ETS models are permitted.
`model` | An object describing a time series model; e.g., one of of class `ets`, `Arima`, `bats`, `tbats`, or `nnetar`.

### Details

For example, the function `forecast.Arima` makes forecasts based on the results produced by `arima`.

If `model=NULL`,the function `forecast.ts` makes forecasts using `ets` models (if the data are non-seasonal or the seasonal period is 12 or less) or `stlf` (if the seasonal period is 13 or more).

If `model` is not `NULL`, `forecast.ts` will apply the `model` to the `object` time series, and then generate forecasts accordingly.

### Value

An object of class "`forecast`".

The function `summary` is used to obtain and print a summary of the results, while the function `plot` produces a plot of the forecasts and prediction intervals.

The generic accessors functions `fitted.values` and `residuals` extract various useful features of the value returned by `forecast$model`.

An object of class `"forecast"` is a list usually containing at least the following elements:

`model` | A list containing information about the fitted model
`method` | The name of the forecasting method as a character string
`mean` | Point forecasts as a time series
`lower` | Lower limits for prediction intervals
`upper` | Upper limits for prediction intervals
`level` | The confidence values associated with the prediction intervals
`x` | The original time series (either `object` itself or the time series used to create the model stored as `object`).
`residuals` | Residuals from the fitted model. For models with additive errors, the residuals will be x minus the fitted values.
`fitted` | Fitted values (one-step forecasts)

### Author(s)

Rob J Hyndman

### See Also

Other functions which return objects of class `"forecast"` are `forecast.ets`, `forecast.Arima`, `forecast.HoltWinters`, `forecast.StructTS`, `meanf`, `rwf`, `splinef`, `thetaf`, `croston`, `ses`, `holt`, `hw`.

### Examples

    WWWusage %>% forecast %>% plot
    fit <- ets(window(WWWusage, end=60))
    fc <- forecast(WWWusage, model=fit)

[Package forecast version 8.12 Index]