Package tspi. August 7, 2017

Similar documents
This is an electronic reprint of the original article. This reprint may differ from the original in pagination and typographic detail.

Package Tcomp. June 6, 2018

Package TSPred. April 5, 2017

Package thief. R topics documented: January 24, Version 0.3 Title Temporal Hierarchical Forecasting

Package leiv. R topics documented: February 20, Version Type Package

Package polypoly. R topics documented: May 27, 2017

Package horseshoe. November 8, 2016

Package bigtime. November 9, 2017

Package TSF. July 15, 2017

Package ShrinkCovMat

Package nardl. R topics documented: May 7, Type Package

Package gsarima. February 20, 2015

Package ARCensReg. September 11, 2016

Package reinforcedpred

Package MultisiteMediation

Package RTransferEntropy

Unobserved. Components and. Time Series. Econometrics. Edited by. Siem Jan Koopman. and Neil Shephard OXFORD UNIVERSITY PRESS

Package gtheory. October 30, 2016

Package BayesNI. February 19, 2015

Package invgamma. May 7, 2017

Package gk. R topics documented: February 4, Type Package Title g-and-k and g-and-h Distribution Functions Version 0.5.

Package varband. November 7, 2016

Package sym.arma. September 30, 2018

Package mcmcse. July 4, 2017

Package jmcm. November 25, 2017

Package esreg. August 22, 2017

Package WaveletArima

arxiv: v1 [stat.co] 11 Dec 2012

INTRODUCTION TO TIME SERIES ANALYSIS. The Simple Moving Average Model

Package noncompliance

Package monmlp. R topics documented: December 5, Type Package

Package Delaporte. August 13, 2017

Package esaddle. R topics documented: January 9, 2017

Package nowcasting. April 25, Type Package

Package EMVS. April 24, 2018

Package effectfusion

Package blme. August 29, 2016

Package scpdsi. November 18, 2018

Package RI2by2. October 21, 2016

Package robustrao. August 14, 2017

Package MicroMacroMultilevel

Package MAPA. R topics documented: January 5, Type Package Title Multiple Aggregation Prediction Algorithm Version 2.0.4

Package xdcclarge. R topics documented: July 12, Type Package

Package gma. September 19, 2017

Package BNN. February 2, 2018

Package TimeSeries.OBeu

Package ForecastCombinations

Package NlinTS. September 10, 2018

Package face. January 19, 2018

Package ForwardSearch

FORECASTING SUGARCANE PRODUCTION IN INDIA WITH ARIMA MODEL

Package SK. May 16, 2018

Package cvequality. March 31, 2018

Package cartogram. June 21, 2018

Unit root problem, solution of difference equations Simple deterministic model, question of unit root

Package elhmc. R topics documented: July 4, Type Package

Package REGARMA. R topics documented: October 1, Type Package. Title Regularized estimation of Lasso, adaptive lasso, elastic net and REGARMA

Package SpatPCA. R topics documented: February 20, Type Package

Package depth.plot. December 20, 2015

Package matrixnormal

Package platetools. R topics documented: June 25, Title Tools and Plots for Multi-Well Plates Version 0.1.1

Package rdefra. March 20, 2017

Package LPTime. March 3, 2015

Package solrad. November 5, 2018

Package HIMA. November 8, 2017

Package factorqr. R topics documented: February 19, 2015

Package dhsic. R topics documented: July 27, 2017

Package FinCovRegularization

Package darts. February 19, 2015

Package bayeslm. R topics documented: June 18, Type Package

Package weightquant. R topics documented: December 30, Type Package

0.1 ARIMA: ARIMA Models for Time Series Data

Package mmm. R topics documented: February 20, Type Package

Package SimCorMultRes

Package rarhsmm. March 20, 2018

Package pearson7. June 22, 2016

Package sscor. January 28, 2016

Package multivariance

Package sbgcop. May 29, 2018

Package ltsbase. R topics documented: February 20, 2015

Package sindyr. September 10, 2018

Package Grace. R topics documented: April 9, Type Package

Do we need Experts for Time Series Forecasting?

{ } Stochastic processes. Models for time series. Specification of a process. Specification of a process. , X t3. ,...X tn }

Package R1magic. August 29, 2016

Package causalweight

Package testassay. November 29, 2016

Package OGI. December 20, 2017

Package NonpModelCheck

Package msu. September 30, 2017

Package CorrMixed. R topics documented: August 4, Type Package

Package riv. R topics documented: May 24, Title Robust Instrumental Variables Estimator. Version Date

Package chemcal. July 17, 2018

Package Select. May 11, 2018

BJEST. Function: Usage:

The cts Package. June 23, 2006

Package SEMModComp. R topics documented: February 19, Type Package Title Model Comparisons for SEM Version 1.0 Date Author Roy Levy

Package RcppSMC. March 18, 2018

Package drgee. November 8, 2016

Package ADPF. September 13, 2017

Transcription:

Package tspi August 7, 2017 Title Improved Prediction Intervals for ARIMA Processes and Structural Time Series Version 1.0.2 Date 2017-08-07 Author Jouni Helske Maintainer Jouni Helske <jouni.helske@iki.fi> Imports KFAS Suggests testthat Prediction intervals for ARIMA and structural time series models using importance sampling approach with uninformative priors for model parameters, leading to more accurate coverage probabilities in frequentist sense. Instead of sampling the future observations and hidden states of the state space representation of the model, only model parameters are sampled, and the method is based solving the equations corresponding to the conditional coverage probability of the prediction intervals. This makes method relatively fast compared to for example MCMC methods, and standard errors of prediction limits can also be computed straightforwardly. License GPL-3 NeedsCompilation yes Encoding UTF-8 BugReports https://github.com/helske/tspi/issues RoxygenNote 5.0.1 Repository CRAN Date/Publication 2017-08-07 10:31:21 UTC R topics documented: acv_arma.......................................... 2 arima_pi........................................... 3 avg_coverage_arima.................................... 4 avg_coverage_struct.................................... 5 1

2 acv_arma dacv_arma.......................................... 7 information_arma...................................... 8 jeffreys........................................... 8 struct_pi........................................... 9 tspi............................................. 11 Index 12 acv_arma Compute a theoretical autocovariance function of ARMA process Function acv_arma computes a theoretical autocovariance function of ARMA process. acv_arma(phi, theta, n) phi theta n vector containing the AR parameters vector containing the MA parameters length of the time series vector of length n containing the autocovariances dacv_arma. Examples ## Example from Brockwell & Davis (1991, page 92-94) ## also in help page of ARMAacf (from stats) n <- 0:9 answer <- 2^(-n) * (32/3 + 8 * n) /(32/3) acv <- acv_arma(c(1.0, -0.25), 1.0, 10) all.equal(acv/acv[1], answer)

arima_pi 3 arima_pi Prediction Intervals for ARIMA Processes with Exogenous Variables Using Importance Sampling Function arima_pi computes prediction intervals for ARIMA processes with exogenous variables using importance sampling. For regression coefficients, diffuse (uninformative) prior is used, whereas multiple options for prior distributions for ARMA coefficients are supported. arima_pi(x, order, xreg = NULL, n_ahead = 1, level = 0.95, median = TRUE, se_limits = TRUE, prior = "uniform", custom_prior, custom_prior_args = NULL, nsim = 1000, invertibility = FALSE, last_only = FALSE, return_weights = FALSE,...) x order xreg n_ahead level median se_limits prior vector containing the time series vector of length 3 with values p,d,q corresponding to the number of AR parameters, degree of differencing and number of MA parameters. matrix or data frame containing the exogenous variables (not including the intercept which is always included for non-differenced series) length of the forecast horizon. desired frequentist coverage probability of the prediction intervals. compute the median of the prediction interval. compute the standard errors of the prediction interval limits. prior to be used in importance sampling for AR and MA parameters. Defaults to uniform prior. Several Jeffreys priors are also available (see jeffreys for details). If "custom", a user-defined custom prior is used (see next arguments). All priors assume that the ARMA parameters lie in stationarity/invertibility region. custom_prior function for computing custom prior. First argument must be a vector containing the AR and MA parameters (in that order). custom_prior_args list containing additional arguments to custom_prior. nsim number of simulations used in importance sampling. Default is 1000. invertibility last_only Logical, should the priors include invertibility constraint? Default is FALSE. compute the prediction intervals only for the last prediction step. return_weights Return (scaled) weights used in importance sampling.... additional arguments for arima.

4 avg_coverage_arima a list containing the prediction intervals. @references 1. Helske, J. and Nyblom, J. (2015). Improved frequentist prediction intervals for autoregressive models by simulation. In Siem Jan Koopman and Neil Shephard, editors, Unobserved Components and Time Series Econometrics. Oxford University Press. http://urn.fi/urn:nbn: fi:jyu-201603141839 2. Helske, J. and Nyblom, J. (2014). Improved frequentist prediction intervals for ARMA models by simulation. In Johan Knif and Bernd Pape, editors, Contributions to Mathematics, Statistics, Econometrics, and Finance: essays in honour of professor Seppo Pynnönen, number 296 in Acta Wasaensia, pages 71 86. University of Vaasa. http://urn.fi/urn:nbn: fi:jyu-201603141836 tspi, struct_pi Examples set.seed(123) x <- arima.sim(n = 30, model = list(ar = 0.9)) pred_arima <- predict(arima(x, order = c(1,0,0)), n.ahead = 10, se.fit = TRUE) pred_arima <- cbind(pred = pred_arima$pred, lwr = pred_arima$pred - qnorm(0.975)*pred_arima$se, upr = pred_arima$pred + qnorm(0.975)*pred_arima$se) pred <- arima_pi(x, order = c(1,0,0), n_ahead = 10) ts.plot(ts.union(x,pred_arima, pred[,1:3]), col = c(1,2,2,2,3,3,3), lty = c(1,1,2,2,1,2,2)) avg_coverage_arima Compute the average coverage of the prediction intervals computed by naive plug-in method and arima_pi Computes expected coverage probabilities of the prediction intervals of ARMA process by simulating time series from the known model. avg_coverage_arima(phi = NULL, theta = NULL, d = 0, n, n_ahead = 1, nsim2, nsim = 100, level = 0.95, prior = "uniform", return_all_coverages = FALSE,...)

avg_coverage_struct 5 phi theta d n n_ahead nsim2 nsim level prior vector containing the AR parameters vector containing the MA parameters degree of differencing length of the time series length of the forecast horizon number of simulations used in computing the expected coverage number of simulations used in importance sampling desired coverage probability of the prediction intervals prior to be used in importance sampling. Multiple choices are allowed. return_all_coverages return raw results i.e. coverages for each simulations. When FALSE (default), summary statistics are returned.... additional arguments to arima_pi. a list containing the coverage probabilities arima_pi. Examples ## Not run: set.seed(123) # takes a while, notice se, increase nsim2 to get more accurate results avg_coverage_arima(phi = 0.9, n = 50, n_ahead = 10, nsim2 = 100) avg_coverage_arima(phi = 0.9, theta = -0.6, n = 50, n_ahead = 10, nsim2 = 100) ## End(Not run) avg_coverage_struct Compute the average coverage of the prediction intervals computed by struct_pi and plug-in method

6 avg_coverage_struct Computes expected coverage probabilities of the prediction intervals of structural time series model. Note that for the plug-in method only standard deviations are assumed to be identical to their estimates, but the initial values for the states are still treated as diffuse. Because of this, plug-in method often performs relatively well in case of structural time series models compared to similar type of ARIMA models (local level and local linear trend models are closely related to ARIMA(0,1,1) and ARIMA(0,2,2) models), and in some cases even outperforms the importance sampling approach with uniform prior (see examples). This is not suprising, as local level and local linear trend models are closely related to ARIMA(0,1,1) and ARIMA(0,2,2) models, and the effect of uncertainty in MA components is not as significant as the uncertainty of AR components avg_coverage_struct(type = c("level", "trend", "BSM"), sds, frequency = 1, n, n_ahead = 1, nsim2, nsim = 100, level = 0.95, prior = "uniform", return_all_coverages = FALSE,...) type sds frequency n n_ahead nsim2 nsim level prior Type of model. See struct_pi. vector containing the standard deviations of the model (observation error, level, slope, and seasonal). frequency of the series, needed for seasonal component. length of the time series length of the forecast horizon number of simulations used in computing the expected coverage number of simulations used in importance sampling desired coverage probability of the prediction intervals prior to be used in importance sampling. return_all_coverages return raw results i.e. coverages for each simulations. When FALSE (default), summary statistics are returned.... additional arguments to struct_pi. a list containing the coverage probabilities struct_pi.

dacv_arma 7 Examples ## Not run: set.seed(123) # takes a while, notice se, increase nsim2 to get more accurate results avg_coverage_struct(type = "level", sds = c(1, 0.1), n = 50, n_ahead = 10, nsim2 = 100) avg_coverage_struct(type = "BSM", sds = c(1, 1, 0.1, 10), frequency = 4, n = 50, n_ahead = 10, nsim2 = 100) ## End(Not run) dacv_arma Compute the partial derivatives of theoretical autocovariance function of ARMA process Function dacv_arma computes the partial derivatives of theoretical autocovariance function of ARMA process dacv_arma(phi, theta, n) phi theta n vector containing the AR parameters vector containing the MA parameters length of the time series matrix containing the partial derivatives autocovariances, each column corresponding to one parameter of vector (phi,theta) (in that order) acv_arma.

8 jeffreys information_arma Large Sample Approximation of Information Matrix for ARMA process Fortran implementation of InformationMatrixARMA function of FitARMA package, except that the function uses the same ARMA model definition as arima, where both the AR and MA parts of the model are on the right side of the equation, i.e. MA coefficients differ in sign compared to InformationMatrixARMA. information_arma(phi = NULL, theta = NULL) phi theta Autoregressive coefficients. Moving average coefficients. Large sample approximation of information matrix for ARMA process. References 1. Box, G. and Jenkins, G. (1970). Time Series Analysis: Forecasting and Control. San Francisco: Holden-Day. 2. McLeod, A. I. and Zhang, Y., (2007). Faster ARMA maximum likelihood estimation Computational Statistics & Data Analysis 52(4) URL http://dx.doi.org/10.1016/j.csda.2007.07.020 jeffreys Compute different types of importance weights based on Jeffreys s prior These functions compute different types of importance weights based on Jeffreys s priors used in arima_pi.

struct_pi 9 approx_joint_jeffreys(psi, xreg = NULL, p, q, n) approx_marginal_jeffreys(psi, p, q) exact_joint_jeffreys(psi, xreg = NULL, p, q, n) exact_marginal_jeffreys(psi, p, q, n) psi xreg p q n vector containing the ar and ma parameters (in that order). matrix or data frame containing the exogenous variables (not including the intercept which is always included for non-differenced series) number of ar parameters number of ma parameters length of the time series arima_pi. struct_pi Prediction Intervals for Structural Time Series with Exogenous Variables Using Importance Sampling Function struct_pi computes prediction intervals for structural time series with exogenous variables using importance sampling. struct_pi(x, type = c("level", "trend", "BSM"), xreg = NULL, n_ahead = 1, level = 0.95, median = TRUE, se_limits = TRUE, prior = "uniform", custom_prior, custom_prior_args = NULL, nsim = 1000, inits = NULL, last_only = FALSE, return_weights = FALSE) x type vector containing the time series type of model. Possible options are "level", "trend" and "BSM", corresponding to local level, local linear trend, and local linear trend model with seasonal component.

10 struct_pi xreg n_ahead level median se_limits prior matrix or data frame containing the exogenous variables (not including the intercept which is always included for non-differenced series) length of the forecast horizon. desired frequentist coverage probability of the prediction intervals. compute the median of the prediction interval. compute the standard errors of the prediction interval limits. prior to be used in importance sampling for log-sd parameters. Defaults to uniform prior on logarithm of standard deviations (with constraints that all variances are smaller than 1e7). If "custom", a user-defined custom prior is used (see next arguments). custom_prior function for computing custom prior. First argument must be a vector containing the log-variance parameters (observation error, level, slope, and seasonal). custom_prior_args list containing additional arguments to custom_prior. nsim number of simulations used in importance sampling. Default is 1000. inits last_only initial values for log-sds compute the prediction intervals only for the last prediction step. return_weights Return (scaled) weights used in importance sampling. a list containing the prediction intervals. tspi, arima_pi @references 1. Helske, J. (2015). Prediction and interpolation of time series by state space models. University of Jyväskylä. PhD thesis, Report 152. http://urn.fi/urn:nbn:fi:jyu-201603111829 Examples pred_structts <- predict(structts(nile, type ="level"), n.ahead = 10, se.fit = TRUE) pred_structts <- cbind(pred = pred_structts$pred, lwr = pred_structts$pred - qnorm(0.975)*pred_structts$se, upr = pred_structts$pred + qnorm(0.975)*pred_structts$se) set.seed(123) pred <- struct_pi(nile, type = "level", n_ahead = 10) ts.plot(ts.union(nile,pred_structts, pred[,1:3]), col = c(1,2,2,2,3,3,3), lty = c(1,1,2,2,1,2,2))

tspi 11 tspi Improved Prediction Intervals for ARIMA Processes and Structural Time Series Package tspi computes prediction intervals for ARIMA and structural time series models by using importance sampling approach with uninformative priors for model parameters, leading to more accurate coverage probabilities in frequentist sense. Instead of sampling the future observations and hidden states of the state space representation of the model, only model parameters are sampled, and the method is based solving the equations corresponding to the conditional coverage probability of the prediction intervals. This makes method relatively fast compared to for example MCMC methods, and standard errors of prediction limits can also be computed straightforwardly. References 1. Helske, J. and Nyblom, J. (2013). Improved frequentist prediction intervals for autoregressive models by simulation. In Siem Jan Koopman and Neil Shephard, editors, Unobserved Components and Time Series Econometrics. Oxford University Press. In press. 2. Helske, J. and Nyblom, J. (2014). Improved frequentist prediction intervals for ARMA models by simulation. In Johan Knif and Bernd Pape, editors, Contributions to Mathematics, Statistics, Econometrics, and Finance: essays in honour of professor Seppo Pynnönen, number 296 in Acta Wasaensia, pages 71 86. University of Vaasa. 3. Helske, J. (2015). Prediction and interpolation of time series by state space models. University of Jyväskylä. PhD thesis, Report 152.

Index acv_arma, 2, 7 approx_joint_jeffreys (jeffreys), 8 approx_marginal_jeffreys (jeffreys), 8 arima, 3 arima_pi, 3, 4, 5, 8 10 avg_coverage_arima, 4 avg_coverage_struct, 5 dacv_arma, 2, 7 exact_joint_jeffreys (jeffreys), 8 exact_marginal_jeffreys (jeffreys), 8 information_arma, 8 jeffreys, 3, 8 struct_pi, 4 6, 9 tspi, 4, 10, 11 tspi-package (tspi), 11 12