forecTheta (version 1.0)

crossValidation: Generalised Rolling Origin Evaluation

Description

This function implements the Generalised Rolling Origin Evaluation of Fioruci et al (2015). Its particular cases include the cross validation methods: Rolling Origin Evaluation and Fixed Origin Evaluation of Tashman(2000).

Usage

groe(y, forecFunction=thetaM, g="sAPE", n1=length(y)-10, m=5, 
	        H=length(y)-n1, p=1+floor((length(y)-n1)/m), ...)
	
	rolOrig(y, forecFunction=thetaM, g="sAPE", n1=length(y)-10, ...)
	
	fixOrig(y, forecFunction=thetaM, g="sAPE", n1=length(y)-10, ...)

Arguments

y
Object of time series class or a vector
forecFunction
A forecasting method as one object of the forecast class of forecast package. Default is the function thetaM, which implements the Theta-method.
g
The prediction error type of errorMetric function. The possible values are "sAPE", "APE", "AE" and "SE".
n1
The index of the first origin element.
m
The number of movements of the origin in each update.
H
The number of predictions forward of each origin.
p
The number of origin updates. Default is the maximum.
...
Additional arguments for forecFunction.

Value

  • The sum of the prediction errors.

Details

If m=1 is computed the Rolling Origin Evaluation. If m>=length(y)-n1 is computed the Fixed Origin Evaluation, where h is the required number of forecasting.

References

Fioruci J.A., Pellegrini T.R., Louzada F., Petropoulos F. (2015). The Optimised Theta Method. Free available at http://arxiv.org/abs/1503.03529. Tashman, L.J. (2000). Out-of-sample tests of forecasting accuracy: an analysis and review. International Journal of Forecasting 16 (4), 437--450.

See Also

forecTheta-package, otm, ses

Examples

Run this code
y1 = 2+ 0.15*(1:20) + rnorm(20,2)
y2 = y1[20]+ 0.3*(1:30) + rnorm(30,2)
y =  as.ts(c(y1,y2))

## Rolling Origin Evaluation
rolOrig( y=y, forecFunction = ses, n1=40)
rolOrig( y=y, forecFunction = thetaM, n1=40)
rolOrig( y=y, forecFunction = otm, n1=40, theta=1)
rolOrig( y=y, forecFunction = otm, n1=40, theta=2)
rolOrig( y=y, forecFunction = otm, n1=40, theta=3)

## Fixed Origin Evaluation
fixOrig( y=y, forecFunction = ses, n1=40)
fixOrig( y=y, forecFunction = thetaM, n1=40)
fixOrig( y=y, forecFunction = otm, n1=40, theta=1)
fixOrig( y=y, forecFunction = otm, n1=40, theta=2)
fixOrig( y=y, forecFunction = otm, n1=40, theta=3)

## Generalised Rolling Origin Evaluation with two origin updates.
## Where the first is the 40th element and second is the 45th element
groe( y=y, forecFunction = ses, m=5, n1=40)
groe( y=y, forecFunction = thetaM, m=5, n1=40)
groe( y=y, forecFunction = otm, m=5, n1=40, theta=1)
groe( y=y, forecFunction = otm, m=5, n1=40, theta=2)
groe( y=y, forecFunction = otm, m=5, n1=40, theta=3)

Run the code above in your browser using DataCamp Workspace