# R code for HW 6 # Problem 1: library(TSA); data(JJ) #(a) plot(JJ,type='o') plot(log(JJ),type='o') #(b) plot(diff(log(JJ)),type='o') #(c) acf(diff(log(JJ))) # (d) plot(diff(diff(log(JJ)),4),type='o') # (e) acf(diff(diff(log(JJ)),4)) pacf(diff(diff(log(JJ)),4)) # (f) m1.jj=arima(log(JJ),order=c(0,1,1),seasonal=list(order=c(0,1,1),period=4)) m1.jj #(g) tsdiag(m1.jj) #(h) predict(m1.jj,n.ahead=8) plot(m1.jj,n.ahead=8,col='red',xlab='Year',type='o', ylab=expression(Earnings), main=expression(Forecasts~~'for'~~the~~JJ~~Model)) ## Problem 2: # (a) data(boardings) log.boardings = boardings[,1] plot(log.boardings,ylab='Log(boardings)',xlab='Year', ) points(y=log.boardings,x=time(boardings),pch=as.vector(season(boardings))) # (b) acf(log.boardings) # (c) m1.bd=arima(log.boardings,order=c(0,0,3),seasonal=list(order=c(1,0,0),period=12)) m1.bd # (d) m1.bd1=arima(log.boardings,order=c(0,0,4),seasonal=list(order=c(1,0,0),period=12)) m1.bd1 ## Problem 3 data(bluebirdlite) log.sales=bluebirdlite[,1] price=bluebirdlite[,2] chip.m1=lm(log.sales~price,data=bluebirdlite) summary(chip.m1) prewhiten(log.sales,price) # shows lag=0 cross-correlation # ACF tails off: acf(residuals(chip.m1),ci.type='ma') # PACF cuts off after lag 4: pacf(residuals(chip.m1)) # Suggests AR(4) ? # EACF suggests ARMA(1,1)? eacf(residuals(chip.m1)) chip.m2=arima(log.sales,order=c(1,0,1),xreg=data.frame(price)) chip.m2 chip.m3=arima(log.sales,order=c(4,0,0),xreg=data.frame(price)) chip.m3 # Overfit: chip.m4=arima(log.sales,order=c(4,0,1),xreg=data.frame(price)) chip.m4 # Worse! Stay with ARMA(4,0). # model diagnostics can be done by running the tsdiag command. tsdiag(chip.m3) # looks good. ## Problem 4: data(deere1) m1.deere = arima(deere1,order=c(2,0,0)) m1.deere tsdiag(m1.deere) detectAO(m1.deere) detectIO(m1.deere) m2.deere = arima(deere1,order=c(2,0,0), io=c(27)) m2.deere tsdiag(m2.deere)