predict.FitAR: Predict Subset AR Model

Description Usage Arguments Details Value Author(s) References See Also Examples

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

1
2
## S3 method for class 'FitAR'
predict(object, n.ahead = 1, newdata = numeric(0), ...)

Arguments

object

‘FitAR’ object

n.ahead

lead time

newdata

new time series values

...

optional arguments

Details

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

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

Author(s)

A.I. McLeod

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
## 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)

FitAR documentation built on May 2, 2019, 3:22 a.m.