# Chap6.R
# Exhibit 6.5
data(ma1.1.s)
win.graph(width=4.875, height=3,pointsize=8)
acf(ma1.1.s,xaxp=c(0,20,10)) # if the arument xaxp is omitted, the
# tick marks will be generated according to the default convention. Run the command ?par to learn more the xaxp argment.
acf(ma1.1.s) # see the new tickmarks
# So how was xaxp determined? First run the command without xaxp to find out how many lags are on the x-axis. Suppose there are 20 lags. Then we specify xaxp=c(0,20,10), i.e. the two extreme tickmarks are 0 and 20, and we want 10 tickmarks in between. How to set the xaxp argument if we want 1 tickmark for each lag?
# Exhibit 6.6
acf(ma1.1.s,ci.type='ma',xaxp=c(0,20,10))
# Exhibit 6.7
data(ma1.2.s)
acf(ma1.2.s,xaxp=c(0,20,10))
# Exhibit 6.8
data(ma2.s)
acf(ma2.s,xaxp=c(0,20,10))
# Exhibit 6.9
acf(ma2.s,ci.type='ma',xaxp=c(0,20,10))
# Exhibit 6.10
data(ar1.s)
acf(ar1.s,xaxp=c(0,20,10))
# Exhibit 6.11
pacf(ar1.s,xaxp=c(0,20,10))
# Exhibit 6.12
data(ar2.s)
acf(ar2.s,xaxp=c(0,20,10))
# Exhibit 6.13
pacf(ar2.s,xaxp=c(0,20,10))
# Exhibit 6.14
data(arma11.s)
plot(arma11.s, type='b',ylab=expression(y[t]))
# Exhibit 6.15
acf(arma11.s,xaxp=c(0,20,10))
# Exhibit 6.16
pacf(arma11.s,xaxp=c(0,20,10))
# Exhibit 6.17
eacf(arma11.s)
# If desirable, a title can be added to the EACF table by the following command.
cat('Exhibit 6.17\n');eacf(arma11.s)
# Exhibit 6.18
data(oil.price)
acf(as.vector(oil.price),main='Sample ACF of the Oil Price Time Series',xaxp=c(0,24,12))
# The as.vector function strips the ts attaribute of oil.price in order to prevent the plotting convention for seasonal time series. The main argument supplies the main heading of the figure.Try the following command to appreciate the effects of applying the as.vector function.
acf(oil.price,main='Sample ACF of the Oil Price Time Series')
# The tickmark 1 on the x-axis now refers to a lag of 1 period with each period containing 12 months, so it is lag 12!
# Exhibit 6.19
acf(diff(as.vector(log(oil.price))),main='Sample ACF of the Difference of the Oil Price Time Series',xaxp=c(0,24,12))
# Exhibit 6.20
data(rwalk)
acf(diff(rwalk,difference=2),ci.type='ma',xaxp=c(0,18,9))
# Exhibit 6.21
acf(diff(rwalk),ci.type='ma',xaxp=c(0,18,9))
library(uroot)
# Carry out the Dickey-Fuller unit root tests, Find out the AR order for the differenced series
ar(diff(rwalk)) # order 8 is indicated by AIC
library(uroot)
ADF.test(rwalk,selectlags=list(mode=c(1,2,3,4,5,6,7,8),Pmax=8),itsd=c(1,0,0))
# which is equivalent to ADF.test(rwalk,selectlags=list(mode=c(1,2,3,4,5,6,7,8)),itsd=c(1,0,0)). The argument mode can be either a numerical vector, or "aic","bic" and "signf". If it is a numerical vector, the test assumes the vector corresponds to the lags of the response that must be included in the test, and the Pmax option is ignored.However, if mode is specified as "aic", the function uses the AIC to select lags up to and including Pmax to be included in the test. Specifying mode to "bic" or "signf" changes the selection criterion to BIC or significance criterion. Note "signf" not "signif" is the valid option.
# In comparison, setting the true order to be zero for the first difference ADF.test(rwalk,selectlags=list(Pmax=0),itsd=c(1,0,0)). Repeat the test with the alternative have an intercept term and a linear trend Run ?uroot to learn more about the selectlags option and the itsd option.
ADF.test(rwalk,selectlags=list(mode=c(1,2,3,4,5,6,7,8),Pmax=8),itsd=c(1,1,0))
# Similarly, a simplified command is ADF.test(rwalk,selectlags=list(mode=c(1,2,3,4,5,6,7,8)),itsd=c(1,1,0)). Repeat the preceding test but now setting the true order of the first difference as zero.
ADF.test(rwalk,selectlags=list(Pmax=0),itsd=c(1,1,0))
# Exhibit 6.22
set.seed(92397)
test=arima.sim(model=list(ar=c(rep(0,11),.8),ma=c(rep(0,11),0.7)),n=120)
res=armasubsets(y=test,nar=14,nma=14,y.name='test',ar.method='ols')
plot(res)
# A title may be added to the plot, by adding the main="..." option in the above plot function. However, the title may crash with other labels. A better approach is to add a title by the following command.
title(main="Exhibit 6.22", line=6)
# The option line=6 means put the title 6 lines from the edge of the plot region. You can experiment with this option to fine tune the placement of the label.
# Exhibit 6.23
data(larain)
win.graph(width=3, height=3,pointsize=8)
qqnorm(log(larain))
qqline(log(larain))
# Exhibit 6.24
win.graph(width=4.875, height=3,pointsize=8)
acf(log(larain),xaxp=c(0,20,10)) # note the main heading now includes the data name.
# Exhibit 6.25
data(color)
acf(color,ci.type='ma')
# Exhibit 6.26
pacf(color)
# Exhibit 6.27
win.graph(width=4, height=4,pointsize=8)
data(hare)
bxh=BoxCox.ar(hare)
bxh$mle # the mle of the power parameter
bxh$ci # corresponding 95% C.I.
# Exhibit 6.28
acf(hare^.5)
# Exhibit 6.29
pacf(hare^.5)
# Exhibit 6.30
eacf(diff(log(oil.price)))
# Exhibit 6.31
res=armasubsets(y=diff(log(oil.price)),nar=7,nma=7,
y.name='test', ar.method='ols')
plot(res)
# Exhibit 6.32
acf(as.vector(diff(log(oil.price))),xaxp=c(0,22,11))
# Exhibit 6.33
pacf(as.vector(diff(log(oil.price))),xaxp=c(0,22,11))
|