ftsa (version 5.5)

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", Pmax_value, level = 80, PI = FALSE)

Arguments

object

An object of fds.

h

Forecast horizon.

var_type

Type of multivariate time series forecasting method; see VAR for details.

Pmax_value

Maximum order of VAR model considered.

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 (2017) "Prediction of functional ARMA processes with an application to traffic data", Econometrics and Statistics, 1, 128-149.

See Also

forecast.ftsm, forecastfplsr

Examples

Run this code
# NOT RUN {
sqrt_pm10 = sqrt(pm_10_GR$y)
x = seq(0,23.5, by=.5)
uni_forecast_sqrt_pm10 = forecast(ftsm(fts(x, sqrt_pm10)), h = 10, method = "arima")
multi_forecast_sqrt_pm10 = farforecast(object = fts(x,sqrt_pm10), h = 10, Pmax_value = 3)
par(mfrow = c(1,2))
plot(uni_forecast_sqrt_pm10, ylim = c(5.2,8.5))
plot(multi_forecast_sqrt_pm10, ylim = c(5.2,8.5))
# }

Run the code above in your browser using DataLab