Forecasts future values of a time series (synonym of `TFORECAST`

).

### Options

`PRINT` = string tokens |
What to print (`forecasts` , `limits` , `setransform` , `sfe` ); default `fore,limi` |
---|---|

`CHANNEL` = scalar |
Channel number for output; default `*` i.e. current output channel |

`ORIGIN` = scalar |
Number of known values to be incorporated; default 0 |

`UPDATE` = string token |
Whether to update the forecast origin to the end of the new observations (`yes` , `no` ); default `no` |

`NEWOBSERVATIONS` = variate |
Variate of length ≥ `ORIGIN` providing new values of the time series to be incorporated (must be set if `ORIGIN` > 0) |

`SFE` = variate |
Saves standardized forecast errors; default `*` |

`MAXLEAD` = scalar |
Maximum lead time i.e number of forecasts to be made; default `*` defines the number as the length of `FORECAST` variate |

`FORECAST` = variate |
Variate of length `MAXLEAD` to save forecasts of output series; default `*` |

`SETRANSFORM` = variate |
Saves standard errors of the forecasts (on transformed scale, if defined); default `*` |

`LOWER` = variate |
Saves lower confidence limits; default `*` |

`UPPER` = variate |
Saves upper confidence limits; default `*` |

`PROBABILITY` = scalar |
Probability level for confidence limits; default 0.9 |

`COMPONENTS` = pointer |
Contains variates (of length `ORIGIN` + `MAXLEAD` ) to save components of the forecast |

`SAVE` = identifier |
Save structure to supply fitted model; default `*` i.e. that from last model fitted |

### Parameters

`FUTURE` = variates |
Variates (of length `ORIGIN` + `MAXLEAD` ) containing future values of input series |
---|---|

`METHOD` = string tokens |
How to treat future values of input series (`observations` , `forecasts` ); default `obse` |

### Description

`FORECAST`

was renamed as `TFORECAST`

in Release 14 to emphasize its status as a time-series command. The earlier name (`FORECAST`

) was retained to allow previous programs to continue to run, but this may be removed in a future release.

`FORECAST`

can be used after `ESTIMATE`

to forecast future values of a time series. In many applications of forecasting with univariate ARIMA models, you will need only a simple form of the directive. For example

`FORECAST [MAXLEAD=10]`

will cause Genstat to print forecasts for 10 lead times, that is, the next 10 time points after the end of your data. However, you must already have used `ESTIMATE`

to specify the time series to be forecast, and the model to be used for forecasting. This information is supplied by the `SAVE`

option; if `SAVE`

is not specified, `FORECAST`

uses the information from the most recent `ESTIMATE`

statement. Once you have used `ESTIMATE`

, you can give successive `FORECAST`

statements to incorporate new observations of the time series, and to produce forecasts from the end of the new data.

If the time series is supplied with a known model (that is, one with all its orders and parameters specified) you can use `ESTIMATE`

with option setting `METHOD=initialize`

before you use `FORECAST`

. This will carry out just sufficient calculations, in particular the regeneration of the model residuals, for `FORECAST`

to be used. The model parameters will not be changed – not even the innovation variance. This setting of `METHOD`

restricts the structures, such as parameter standard errors, that can be accessed using `TDISPLAY`

and `TKEEP`

after `ESTIMATE`

. The `SAVE`

structure created by using `ESTIMATE`

with `METHOD=initialize`

thus requires less space than that produced by the other settings.

The `PRINT`

option controls the printed output, and the `CHANNEL`

option allows this to be sent to another output channel.

The `ORIGIN`

option specifies the number of new values to be incorporated before forecasting ahead from that point. Setting this to a positive value *n* indicates that *n *new observations are to be added onto the end of the series. These new observations must be supplied in a variate using the `NEWOBSERVATIONS`

option, which must be of length ≥*n*. The standardized forecast errors for these new observations can be printed or saved in a variate of length *n* using the `SFE`

option.

The `UPDATE`

option specifies whether these new observations are to be incorporated internally onto the end of the time series and the internal pointer moved to the end of the new observations. If `UPDATE=yes`

is used, then `ORIGIN=0`

in future calls to `FORECAST`

will point to the end of the *n* new observations. If the default, `UPDATE=no`

is used, then the internal pointer remains at the end of the original series.

The number of future values to be forecast is set by option `MAXLEAD`

. These new values can be saved in a variate of length `MAXLEAD`

using the `FORECAST`

option.

The `PROBABILITY`

option determines the width of the error limits on the forecast. It defines the probability that the actual value will be contained within the limits at any particular lead time. Note that the limits do not apply simultaneously over all lead times.

The `SETRANSFORM`

option specifies a variate to store the standard errors that Genstat used in calculating the error limits of the forecasts, starting at lead time 1. These are the standard errors of the transformed series, according to the value of the Box-Cox transformation parameter; they are functions of the model only, not of the data.

The `LOWER`

option specifies a variate to store the lower limits of the forecasts. This must be the same length as the `FORECAST`

variate. The `FORECAST`

directive puts the values of the lower limit into the variate, matching the forecasts in the `FORECAST`

variate. The `UPPER`

option similarly allows the upper limits to be saved. Note that the limits are constructed as symmetric percentiles, assuming Normality of the transformed time series. Similarly, the forecast is a median value – not necessarily the mode or the mean, unless the transformation parameter is 1.0.

The `SFE`

option specifies a variate to save the standardized errors of the forecasts. These are the innovation values that are generated as each successive new observation is incorporated, divided by the square root of the TSM innovation variance. They provide a useful check on the continuing adequacy of the model. For example, excessively large values (compared to the standard Normal distribution) may indicate that you should revise the model. The variate must be the same length as the `FORECAST`

variate. The `FORECAST`

directive places values of the errors in the variate, matching the new observations in the `FORECAST`

variate.

The parameters of `FORECAST`

are relevant only when the time-series model incorporates explanatory variables, which requires a `TRANSFERFUNCTION`

statement before the `ESTIMATE`

statement. You use the `FUTURE`

parameter to specify a list of variates, corresponding to the list of variates specified by the `SERIES`

parameter of `TRANSFERFUNCTION`

. These variates must all have the same length. They hold future values of the explanatory variables to be used either for constructing forecasts of the response variable, or for incorporating new observations in order to revise the forecasts. You can use the `METHOD`

parameter when some or all of the future values of the explanatory variables are forecasts obtained using univariate ARIMA models. You can amend the error limits of the forecasts for the response variable to allow for the uncertainty in these future values, but you need to assume that there is no cross-correlation between the errors in these predictions. The list of strings specified by the `METHOD`

parameter indicates for each explanatory variable whether such an allowance should be made. The future values of a series are by default treated as known values if no corresponding ARIMA model is present, or if the transformation parameter of the ARIMA model is not equal to the value used in the regression model for that series. You can change the settings of the `METHOD`

parameter in successive `FORECAST`

statements.

The `COMPONENTS`

option is also relevant only when the time-series model incorporates explanatory variables, and can be used to specify a pointer to variates in which you can save components of future values of the output series. There is a variate for each input component and for the output noise component. These variates correspond exactly to the variates that were specified by the `FUTURE`

parameter for the input series, and by the `FORECAST`

variate for the output series; corresponding lengths must match. The values that the variates hold can therefore be components of the forecasts of the output series, or can be new observations. The can be used to investigate the structure of forecasts.

If the input series ARIMA model and the transfer-function model have differing transformation parameters, then the `METHOD`

option reverts to its default action of treating the values of any future input series as known quantities rather than forecasts.

Options: `PRINT`

, `CHANNEL`

, `ORIGIN`

, `UPDATE`

, `NEWOBSERVATIONS`

, `SFE`

, `MAXLEAD`

, `FORECAST`

, `SETRANSFORM`

, `LOWER`

, `UPPER`

, `PROBABILITY`

, `COMPONENTS`

, `SAVE`

.

Parameters: `FUTURE`

, `METHOD`

.

### See also

Directives: `TFORECAST`

.

Commands for: Time series.

### Example

" Example TFIT-2: Forecast from a fitted model" VARIATE time; VALUES=!(1...120) FILEREAD [NAME='%gendir%/examples/TFIT-1.DAT'] apt " Define a model for the series as estimated in example ESTI-1" TSM [MODELTYPE=arima] airpass; ORDERS=!((0,1,1)2,12);\ PARAMETERS=!(0,0,0.687785,0.374404,0.524588) TFIT [CONSTANT=fix] SERIES=apt; TSM=airpass " Forecast one year ahead" FORECAST [MAXLEAD=12; FORECAST=forecast; UPPER=ulim; LOWER=llim] " Compare to actual values in a graph" VARIATE newtimes; VALUES=!(121...132) UNITS newtimes VARIATE [VALUES=360,342,406,396,420,472,548,559,463,407,362,405] newset TEXT [IPRINT=*] F; !t(12('F')) PEN 1...4; SYMBOL=2('heavyminus'),'circle',0; LABEL=3(*),F;\ COLOUR=2('red'),'black','blue' DGRAPH ulim,llim,newset,forecast; newtimes; PEN=1...4;\ DESCRIPTION='Upper limit','Lower limit','Observed set',\ 'Forecast set'