Below are the solutions to these exercises on time series.
#################### # # # Exercise 1 # # # #################### set.seed(42) rw <- cumsum(rnorm(365, mean = 0.5,sd = 1)) rw<-ts(rw,start=1,end=365,frequency = 1,deltat = 1) plot(rw)

#################### # # # Exercise 2 # # # #################### naive.forecast<-data.frame(time=331:365,forecast=rep(rw[330],35),error=rw[331:365]-rep(rw[330],35)) #################### # # # Exercise 3 # # # #################### library("forecast") rw.mn <-naive(window(rw, start=1,end=330),h=35,level=c(90,95)) plot(rw.mn)

#################### # # # Exercise 4 # # # #################### mean.forecast<-data.frame(time=331:365,forecast=mean(rw),error=rw[331:365]-mean(rw)) mean.115.forecast<-data.frame(time=331:365,forecast=mean(rw[115:330]),error=rw[331:365]-mean(rw[115:330])) mean.329.forecast<-data.frame(time=331:365,forecast=mean(rw[329:330]),error=rw[331:365]-mean(rw[329:330])) #################### # # # Exercise 5 # # # #################### rw.mean<- meanf(window(rw, start=1,end=330),h=35,level=c(90,95)) plot(rw.mean)

#################### # # # Exercise 6 # # # #################### library("smooth") sma(window(rw, start=1,end=330), h=30)

## Time elapsed: 0.22 seconds ## Model estimated: SMA(1) ## Initial values were produced using backcasting. ## 2 parameters were estimated in the process ## Residuals standard deviation: 1.076 ## Cost function type: MSE; Cost function value: 1.15 ## ## Information criteria: ## AIC AICc BIC ## 986.5587 986.5954 994.1569
#################### # # # Exercise 7 # # # #################### ts.plot(window(rw, start=1,end=330)) lines(ma(window(rw, start=1,end=330,center=FALSE),150),col="red") lines(ma(window(rw, start=1,end=330,center=FALSE),5),col="red")

#################### # # # Exercise 8 # # # #################### rw.rwf<-rwf(window(rw, start=1,end=330),h=35,drift=T,level=c(90,95),fan=FALSE,lambda=NULL) plot(rw.rwf)

#################### # # # Exercise 9 # # # #################### rmse.naive<-sqrt(mean((naive.forecast$error)^2)) rmse.mean<-sqrt(mean((mean.forecast$error)^2)) rmse.mean.115<-sqrt(mean((mean.115.forecast$error)^2)) rmse.mean.329<-sqrt(mean((mean.329.forecast$error)^2)) rmse.rwf <- sqrt(mean((rw[331:365]-rw.rwf$mean)^2)) error<-data.frame(names=c("Naive","Mean","Mean 115","Mean 329", "Rwf"), values=c(rmse.naive,rmse.mean,rmse.mean.115,rmse.mean.329,rmse.rwf)) plot(error)

#################### # # # Exercise 10 # # # #################### rmse.naive.331<-sqrt(mean((naive.forecast$error[1:5])^2)) rmse.mean.331<-sqrt(mean((mean.forecast$error[1:5])^2)) rmse.mean.115.331<-sqrt(mean((mean.115.forecast$error[1:5])^2)) rmse.mean.329.331<-sqrt(mean((mean.329.forecast$error[1:5])^2)) rmse.rwf.331 <- sqrt(mean((rw[331:335]-rw.rwf$mean[1:5])^2)) error.331<-data.frame(names=c("Naive","Mean","Mean 115","Mean 329", "Rwf"), values=c(rmse.naive.331,rmse.mean.331,rmse.mean.115.331,rmse.mean.329.331,rmse.rwf.331)) error.331
## names values ## 1 Naive 1.8695980 ## 2 Mean 71.7667711 ## 3 Mean 115 54.3765914 ## 4 Mean 329 2.0678063 ## 5 Rwf 0.5630976
plot(error.331)

rmse.naive.361<-sqrt(mean((naive.forecast$error[31:35])^2)) rmse.mean.361<-sqrt(mean((mean.forecast$error[31:35])^2)) rmse.mean.115.361<-sqrt(mean((mean.115.forecast$error[31:35])^2)) rmse.mean.329.361<-sqrt(mean((mean.329.forecast$error[31:35])^2)) rmse.rwf.361 <- sqrt(mean((rw[361:365]-rw.rwf$mean[31:35])^2)) error.361<-data.frame(names=c("Naive","Mean","Mean 115","Mean 329", "Rwf"), values=c(rmse.naive.361,rmse.mean.361,rmse.mean.115.361,rmse.mean.329.361,rmse.rwf.361)) error.361
## names values ## 1 Naive 11.011158 ## 2 Mean 81.069372 ## 3 Mean 115 63.677963 ## 4 Mean 329 11.226722 ## 5 Rwf 4.692045
plot(error.361)

Leave a Reply