Learn R Programming

FitAR (version 1.94)

predict.FitAR: Predict Subset AR Model

Description

After fitting we predict at origin times n, n+1, ..., n+m, where m is the length of the vector newdata and for lead time series as specified by n.ahead.

Usage

"predict"(object, n.ahead = 1, newdata = numeric(0), ...)

Arguments

object
‘FitAR’ object
n.ahead
lead time
newdata
new time series values
...
optional arguments

Value

A list with components
Forecasts
matrix with m+1 rows and maxLead columns with the forecasts
SDForecasts
matrix with m+1 rows and maxLead columns with the sd of the forecasts

Details

The prediction algorithm described in McLeod, Yu and Zinovi (2008) is used.

References

McLeod AI, Yu H, Zinovi K (2008). Linear Time Series Modeling with R Package. Journal of Statistical Software, 23/5, 1-26.

See Also

TrenchForecast

Examples

Run this code
## Not run: #these examples take about a minute
# #Example 1.  
# #Compare the predictions for the monthly sunspots using the ARz
# #  fitted using the UBIC and BIC.
# #  This computation takes about 3-4 minutes.
# 
# `getRMSE` <-
# function(obj, zTOT, n.ahead = 12, newdata=numeric(0)){
#     ans<-predict(obj, n.ahead=n.ahead, newdata=newdata)
#     ansf<-ans$Forecasts
#     nL<-as.numeric(colnames(ansf))
#     nO<-as.numeric(rownames(ansf))
#     err<-ansf-zTOT[-1+outer(nO,nL,FUN="+")]
#     s<-apply(err, MARGIN=2, FUN=rmse)
#     s
# }
# 
# `rmse` <-
# function(x){
# y<-x[!is.na(x)]
# sqrt(sum(y^2)/length(y))
# }
# 
# zTOT <- sqrt(sunspots)
# nTOT <- length(zTOT)
# nOUT <- 12*3 #using last 3 years for out-of-sample forecasts
# ind<- (1:nTOT)<(nTOT-nOUT+1)
# newdata<-zTOT[!ind]
# z<-zTOT[ind]
# lag.max<-12*11 #using lags up to last 11 years in subset model
# nahead<-4 #forecasts for 1 to 4 months ahead
# pUBIC <- SelectModel(z, ARModel="ARz", lag.max=lag.max, Best=1)
# zUBIC <- FitAR(z, pUBIC, ARModel="ARz")
# pBIC <- SelectModel(z, ARModel="ARz",lag.max=lag.max,Best=1,Criterion="BIC")
# zBIC <- FitAR(z, pBIC, ARModel="ARz")
# fubic<-getRMSE(zUBIC, zTOT, n.ahead=nahead, newdata=newdata)
# fbic<-getRMSE(zBIC, zTOT, n.ahead=nahead, newdata=newdata)
# m<-matrix(c(fubic,fbic), ncol=2)
# dimnames(m)<-list(1:nahead, c("fubic","fbic")) 
# m
# #
# #Example 2.
# #Compute predictions and plot observed - predicted
# z <- sqrt(sunspots)
# pUBIC <- SelectModel(z, ARModel="ARz", lag.max=240, Best=1)
# zUBIC <- FitAR(z, pUBIC, ARModel="ARz")
# out<-predict(zUBIC, n.ahead=24)
# zf<-out$Forecasts
# zsd<-out$SDForecasts
# y<-cts(z, zf)
# plot(window(y,start=1980), type="n", ylab="sqrt sunspot number")
# y1<-window(y, start=1980, end=1983)
# lines.ts(y1,col="blue",type="o", lwd=2, pch=16)
# y2<-window(y, start=c(1983,1))
# lines.ts(y2,col="red",type="o",lwd=2, pch=16)
# legend(1984,12, legend=c("observed", "forecast"),col=c("red","blue"),lwd=c(2,2),pch=c(16,16))
# ## End(Not run)

Run the code above in your browser using DataLab