############################ # Author: Joshua M. Tebbs # # Date: 20 Dec 2009 # # Update: 25 Jul 2011 # # Purpose: STAT 520 R code # # CHAPTER 5 # ############################ # always load package TSA first!!! library(TSA) # Example 5.2. # Random walk and WN (difference) processes with ACFs # Page 115 wn = rnorm(150,0,1) rw = wn*0 for(i in 1:length(wn)){rw[i]=sum(wn[1:i])} par(mfrow=c(2,2)) plot(rw,ylab="",xlab="Time",type="o") acf(rw,main="Sample ACF") plot(diff(rw),ylab="",xlab="Time",type="o") acf(diff(rw),main="Sample ACF") # Example 5.2. # Ventilation data and first differences # Page 117 ventilation = ts(read.table(file = "http://people.stat.sc.edu/hansont/stat520/ventilation.txt")) plot(ventilation,ylab="Ventilation (L/min)",xlab="Observation time",type="o") acf(ventilation,main="Sample ACF") plot(diff(ventilation),ylab="First differences",xlab="Time",type="o") acf(diff(ventilation),main="Sample ACF: 1st differences") # Example 5.3. # ARI(1,1) simulation # Page 120 par(mfrow=c(2,2)) ari11.sim = arima.sim(list(order = c(1,1,0), ar = c(0.7)), n = 150) plot(ari11.sim,ylab=expression(Y[t]),xlab="Time",type="o") acf(ari11.sim,main="Sample ACF: ARI(1,1)") plot(diff(ari11.sim),ylab=expression(Y[t]-Y[t-1]),xlab="Time",type="o") acf(diff(ari11.sim),main="Sample ACF: 1st differences") # Example 5.3. # IMA(1,1) simulation # Page 122 par(mfrow=c(2,2)) ima11.sim = arima.sim(list(order = c(0,1,1), ma = c(-0.5)), n = 150) plot(ima11.sim,ylab=expression(Y[t]),xlab="Time",type="o") acf(ima11.sim,main="Sample ACF: IMA(1,1)") plot(diff(ima11.sim),ylab=expression(Y[t]-Y[t-1]),xlab="Time",type="o") acf(diff(ima11.sim),main="Sample ACF: 1st differences") # Figure 5.5. # IMA(2,2) simulation # Page 124 par(mfrow=c(3,2)) ima22.sim = arima.sim(list(order = c(0,2,2), ma = c(-0.3,0.3)), n=150) plot(ima22.sim,ylab=expression(Y[t]),xlab="Time",type="o") acf(ima22.sim,main="Sample ACF: IMA(2,2)") plot(diff(ima22.sim),ylab="First differences",xlab="Time",type="o") acf(diff(ima22.sim),main="Sample ACF: 1st differences") plot(diff(diff(ima22.sim)),ylab="2nd differences",xlab="Time",type="o") acf(diff(diff(ima22.sim)),main="Sample ACF: 2nd differences") # Figure 5.6. # ARIMA(1,1,1) simulation # Page 126 par(mfrow=c(2,2)) arima111.sim = arima.sim(list(order = c(1,1,1), ar = c(0.5), ma = c(0.5)), n = 150) plot(arima111.sim,ylab=expression(Y[t]),xlab="Time",type="o") acf(arima111.sim,main="Sample ACF: ARIMA(1,1,1)") plot(diff(arima111.sim),ylab="First differences",xlab="Time",type="o") acf(diff(arima111.sim),main="Sample ACF: 1st differences") # Example 5.4. # Electricity data # Page 130 par(mfrow=c(1,1)) # back to only one panel data(electricity) plot(electricity,ylab="Electricity usage",xlab="Time",type="o") # Page 133 # Profile log-likelihood of lambda (for Box Cox transformation) # This can be computationally intense (time consuming) BoxCox.ar(electricity) # Example 5.4. # Electricity data # Time series plot of the log-transformed data # Page 134 data(electricity) plot(log(electricity),ylab="(Log) electricity usage",xlab="Time",type="o") # Example 5.4. # Electricity data # First differences of log-transformed data and sample ACF # Plots were constructed separately # Page 135 data(electricity) plot(diff(log(electricity)),ylab="First differences of log(Electricity)",xlab="Time",type="o") acf(as.vector(diff(log(electricity))),main="",ylab="ACF of the 1st differences of the logged series",lag.max=36)