library(forecast)
library(ggplot2)
library(lubridate)
##
## Attaching package: 'lubridate'
## The following object is masked from 'package:base':
##
## date
library(knitr)
air = read.csv("Air.csv")
rail = read.csv("Rail.csv")
auto = read.csv("Auto.csv")
Plotting pre-event time series:
#Plot the 3 Pre-event time series:
air.ts <- ts(air$Air_RPM_billions, start=c(1990,1), end=c(2001,8), freq=12)
plot(air.ts, xlab="Date", ylab="Air_RPM_billions", ylim=c(25, 70), bty="l")
title("Air")
rail.ts <- ts(rail$Rail_Passenger_Miles_millions, start=c(1990,1), end=c(2001,8), freq=12)
plot(rail.ts, xlab="Date", ylab="Rail_Passenger_Miles_millions", ylim=c(300, 700), bty="l")
title("Rail")
auto.ts <- ts(auto$VMT_billion, start=c(1990,1), end=c(2001,8), freq=12)
plot(auto.ts, xlab="Date", ylab="Vehicle Miles Traveled (billions)", ylim=c(150, 300), bty="l")
title("Auto")
Time Series components:
Air: Has a noticeable upward linear trend with seasonality.
Rail: Has a downward linear trend with seasonality.
Auto: Has an upward linear trend with seasonality.
#Air Linear Trend
Air_RPM_billions_Linear <- tslm(air.ts ~ trend)
plot(air.ts, xlab="Date", ylab="Air_RPM_billions", ylim=c(25, 70), bty="l")
lines(Air_RPM_billions_Linear$fitted, lwd=2)
#Rail Linear Trend
Rail_Passenger_Miles_millions_Linear <- tslm(rail.ts ~ trend)
plot(rail.ts, xlab="Date", ylab="Rail_Passenger_Miles_millions", ylim=c(300, 700), bty="l")
lines(Rail_Passenger_Miles_millions_Linear$fitted, lwd=2)
#Auto Linear Trend
VMT_billion_Linear <- tslm(auto.ts ~ trend)
plot(auto.ts, xlab="Date", ylab="Vehicle Miles Traveled (billions)", ylim=c(150, 300), bty="l")
lines(VMT_billion_Linear$fitted, lwd=2)
Changing scales of the series:
#Changing to log scale
#Air
plot(air.ts, log="y", xlab="Date", ylab="Air_RPM_billions (log scale)", ylim=c(25, 70), bty="l")
#Rail
plot(rail.ts, log="y", xlab="Date", ylab="Rail_Passenger_Miles_millions (log scale)", ylim=c(300, 700), bty="l")
#Auto
plot(auto.ts, log="y", xlab="Date", ylab="Vehicle Miles Traveled (billions) (log scale)", ylim=c(150, 300), bty="l")
Suppressing seasonality by aggregating by year:
#Aggregating by year
#Air
yearly_air <- aggregate(air.ts, nfrequency=1, FUN=sum)
plot(yearly_air, bty="l")
title("Air")
#Rail
yearly_rail <- aggregate(rail.ts, nfrequency=1, FUN=sum)
plot(yearly_rail, bty="l")
title("Rail")
#Auto
yearly_auto <- aggregate(auto.ts, nfrequency=1, FUN=sum)
plot(yearly_auto, bty="l")
title("Auto")
Plotting post-event time series:
#Including Post 9-11
air.ts <- ts(air$Air_RPM_billions, start=c(1990,1), end=c(2004,4), freq=12)
plot(air.ts, xlab="Date", ylab="Air_RPM_billions", ylim=c(25, 70), bty="l")
title("Air")
rail.ts <- ts(rail$Rail_Passenger_Miles_millions, start=c(1990,1), end=c(2004,4), freq=12)
plot(rail.ts, xlab="Date", ylab="Rail_Passenger_Miles_millions", ylim=c(300, 700), bty="l")
title("Rail")
auto.ts <- ts(auto$VMT_billion, start=c(1990,1), end=c(2004,4), freq=12)
plot(auto.ts, xlab="Date", ylab="Vehicle Miles Traveled (billions)", ylim=c(150, 300), bty="l")
title("Auto")
Plotting the last 4 years:
airLast4Years <- window(air.ts, start=1999, end=c(2003, 12))
plot(airLast4Years, ylab="Air_RPM_billions", ylim=c(25, 70), bty="l")
Create time plot of Appliance shipment data:
#Create time plot of data
appliance = read.csv("Appliance Shipment.csv")
#Monthly frequency
appliance.ts <- ts(appliance$Shipments, start=c(1985), end=c(1989), freq=12)
plot(appliance.ts, xlab="Date", ylab="Shipments", ylim=c(3800, 5000), bty="l")
title("Monthly Frequency")
appliance.ts <- ts(appliance$Shipments, start=c(1985), end=c(1989), freq=1)
plot(appliance.ts, xlab="Date", ylab="Shipments", ylim=c(3800, 5000), bty="l")
title("Yearly Frequency")
Components:
A constand trend. At first, I didn’t notice a pattern, but then realized I was just looking year to year, when it actually appears periodic, repeating every year and a half or so. There doesn’t appear to be seasonality as some years start out very low and some very high.
Creating time plot of Shampoo Sales data:
shampoo = read.csv("ShampooSales.csv")
#Monthly frequency
shampoo.ts <- ts(shampoo$Shampoo.Sales, start=c(1995), end=c(1997), freq=12)
plot(shampoo.ts, xlab="Date", ylab="Sales", ylim=c(100, 700), bty="l")
title("Monthly Frequency")
shampoo.ts <- ts(shampoo$Shampoo.Sales, start=c(1995), end=c(1997), freq=1)
plot(shampoo.ts, xlab="Date", ylab="Sales", ylim=c(100, 700), bty="l")
title("Yearly Frequency")
Components:
No apparent pattern in the data or seasonality. Appears random like white noise.