Four methods, namely block moving (BM), ordinary least squares (OLS) regression, ridge regression (RR), penalized least squares (PLS) regression, were proposed to address the problem of dynamic updating, when partial data in the most recent curve are observed.
dynupdate(data, newdata = NULL, holdoutdata, method = c("ts", "block",
"ols", "pls", "ridge"), fmethod = c("arima", "ar", "ets", "ets.na",
"rwdrift", "rw"), pcdmethod = c("classical", "M", "rapca"),
ngrid = max(1000, ncol(data$y)), order = 6,
robust_lambda = 2.33, lambda = 0.01, value = FALSE,
interval = FALSE, level = 80,
pimethod = c("parametric", "nonparametric"), B = 1000)
An object of class fts
containing the dynamic updated point forecasts.
An object of class fts
containing the bootstrapped point forecasts, which are updated by the PLS method.
An object of class fts
containing the lower bound of prediction intervals.
An object of class fts
containing the upper bound of prediction intervals.
An object of class sfts
.
A data vector of newly arrived observations.
A data vector of holdout sample to evaluate point forecast accuracy.
Forecasting methods. The latter four can dynamically update point forecasts.
Univariate time series forecasting methods used in method = "ts"
or method = "block"
.
Method to use for principal components decomposition. Possibilities are "M", "rapca" and "classical".
Number of grid points to use in calculations. Set to maximum of 1000 and ncol(data$y)
.
Number of principal components to fit.
Tuning parameter in the two-step robust functional principal component analysis, when pcdmethod = "M"
.
Penalty parameter used in method = "pls"
or method = "ridge"
.
When value = TRUE
, returns forecasts or when value = FALSE
, returns forecast errors.
When interval = TRUE
, produces distributional forecasts.
Nominal coverage probability.
Parametric or nonparametric method to construct prediction intervals.
Number of bootstrap samples.
Han Lin Shang
This function is designed to dynamically update point and interval forecasts, when partial data in the most recent curve are observed.
If method = "classical"
, then standard functional principal component decomposition is used, as described by Ramsay and Dalzell (1991).
If method = "rapca"
, then the robust principal component algorithm of Hubert, Rousseeuw and Verboven (2002) is used.
If method = "M"
, then the hybrid algorithm of Hyndman and Ullah (2005) is used.
J. O. Ramsay and C. J. Dalzell (1991) "Some tools for functional data analysis (with discussion)", Journal of the Royal Statistical Society: Series B, 53(3), 539-572.
M. Hubert and P. J. Rousseeuw and S. Verboven (2002) "A fast robust method for principal components with applications to chemometrics", Chemometrics and Intelligent Laboratory Systems, 60(1-2), 101-111.
R. J. Hyndman and M. S. Ullah (2007) "Robust forecasting of mortality and fertility rates: A functional data approach", Computational Statistics and Data Analysis, 51(10), 4942-4956.
H. Shen and J. Z. Huang (2008) "Interday forecasting and intraday updating of call center arrivals", Manufacturing and Service Operations Management, 10(3), 391-410.
H. Shen (2009) "On modeling and forecasting time series of curves", Technometrics, 51(3), 227-238.
H. L. Shang and R. J. Hyndman (2011) "Nonparametric time series forecasting with dynamic updating", Mathematics and Computers in Simulation, 81(7), 1310-1324.
H. L. Shang (2013) "Functional time series approach for forecasting very short-term electricity demand", Journal of Applied Statistics, 40(1), 152-168.
H. L. Shang (2017) "Forecasting Intraday S&P 500 Index Returns: A Functional Time Series Approach", Journal of Forecasting, 36(7), 741-755.
H. L. Shang (2017) "Functional time series forecasting with dynamic updating: An application to intraday particulate matter concentration", Econometrics and Statistics, 1, 184-200.
ftsm
, forecast.ftsm
, plot.fm
, residuals.fm
, summary.fm
# ElNino is an object of sliced functional time series, constructed from a univariate time series.
# When we observe some newly arrived information in the most recent time period, this function
# allows us to update the point and interval forecasts for the remaining time period.
dynupdate(data = ElNino_ERSST_region_1and2, newdata = ElNino_ERSST_region_1and2$y[1:4,69],
holdoutdata = ElNino_ERSST_region_1and2$y[5:12,57], method = "block", interval = FALSE)
Run the code above in your browser using DataLab