dynupdate | R Documentation |
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)
data |
An object of class |
newdata |
A data vector of newly arrived observations. |
holdoutdata |
A data vector of holdout sample to evaluate point forecast accuracy. |
method |
Forecasting methods. The latter four can dynamically update point forecasts. |
fmethod |
Univariate time series forecasting methods used in |
pcdmethod |
Method to use for principal components decomposition. Possibilities are "M", "rapca" and "classical". |
ngrid |
Number of grid points to use in calculations. Set to maximum of 1000 and |
order |
Number of principal components to fit. |
robust_lambda |
Tuning parameter in the two-step robust functional principal component analysis, when |
lambda |
Penalty parameter used in |
value |
When |
interval |
When |
level |
Nominal coverage probability. |
pimethod |
Parametric or nonparametric method to construct prediction intervals. |
B |
Number of bootstrap samples. |
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.
forecasts |
An object of class |
bootsamp |
An object of class |
low |
An object of class |
up |
An object of class |
Han Lin Shang
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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.