Learn R Programming

ftsa (version 4.7)

farforecast: Functional data forecasting through functional principal component autoregression

Description

The coefficients from the fitted object are forecasted using a multivariate time-series forecasting method. The forecast coefficients are then multiplied by the functional principal components to obtain a forecast curve.

Usage

farforecast(object, h = 10, var_type = "const", level = 80, PI = FALSE)

Arguments

object
An object of ftsm.
h
Forecast horizon.
var_type
Type of multivariate time series forecasting method; see VAR for details.
level
Nominal coverage probability of prediction error bands.
PI
When PI = TRUE, a prediction interval will be given along with the point forecast.

Value

point_fore
Point forecast
PI_lb
Lower bound of a prediction interval
PI_ub
Upper bound of a prediction interval

Details

1. Decompose the smooth curves via a functional principal component analysis (FPCA).

2. Fit a multivariate time-series model to the principal component score matrix.

3. Forecast the principal component scores using the fitted multivariate time-series models. The order of VAR is selected optimally via an information criterion.

4. Multiply the forecast principal component scores by estimated principal components to obtain forecasts of $f_{n+h}(x)$.

5. Prediction intervals are constructed by taking quantiles of the one-step-ahead forecast errors.

References

A. Aue, D. D. Norinho and S. Hormann (2015) "On the prediction of stationary functional time series", Journal of the American Statistical Association, 110(509), 378-392.

J. Klepsch, C. Kl\"uppelberg and T. Wei (2016) "Prediction of functional ARMA processes with an application to traffic data", URL: http://arxiv.org/abs/1603.02049.

See Also

forecast.ftsm, forecastfplsr

Examples

Run this code
ElNino_subset = extract(data = ElNino, direction = "time",timeorder = 1967:2006)
ex_PI = farforecast(ftsm(y = ElNino_subset), PI = TRUE)
plot(extract(ex_PI$point_fore, direction = "time", 1), ylim = c(14, 31))
lines(extract(ex_PI$PI_lb, direction = "time", 1), lty = 2, col = 2)
lines(extract(ex_PI$PI_ub, direction = "time", 1), lty = 2, col = 2)

Run the code above in your browser using DataLab