library(tidyr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(knitr)
library(utils)
library(ggplot2)
library(forecast)
library(readxl)
library(fpp2)
## Loading required package: fma
## Loading required package: expsmooth

2.1

Use the help function to explore what the series gold, woolyrnq and gas represent.

Use autoplot() to plot each of these in separate plots. What is the frequency of each series? Hint: apply the frequency() function. Use which.max() to spot the outlier in the gold series. Which observation was it?

autoplot(gold)+ggtitle("Autoplot of Gold")
## Warning in is.na(main): is.na() applied to non-(list or vector) of type
## 'NULL'

autoplot(woolyrnq)+ggtitle("Autoplot of Woolyrnq")
## Warning in is.na(main): is.na() applied to non-(list or vector) of type
## 'NULL'

autoplot(gas)+ggtitle("Autoplot of Gas")
## Warning in is.na(main): is.na() applied to non-(list or vector) of type
## 'NULL'

paste("Gold Frequency =",frequency(gold))
## [1] "Gold Frequency = 1"
paste("Woolyrnq Frequency =",frequency(woolyrnq))
## [1] "Woolyrnq Frequency = 4"
paste("Gas Frequency =",frequency(gas))
## [1] "Gas Frequency = 12"
paste("Gold Max =",which.max(gold))
## [1] "Gold Max = 770"
paste("Woolyrnq Max =",which.max(woolyrnq))
## [1] "Woolyrnq Max = 21"
paste("Gas Max =",which.max(gas))
## [1] "Gas Max = 475"

2.2

tute1 <- read.csv("tute1.xls", header=TRUE)
head(tute1)
##        X  Sales AdBudget   GDP
## 1 Mar-81 1020.2    659.2 251.8
## 2 Jun-81  889.2    589.0 290.9
## 3 Sep-81  795.0    512.5 290.8
## 4 Dec-81 1003.9    614.1 292.4
## 5 Mar-82 1057.7    647.2 279.1
## 6 Jun-82  944.4    602.0 254.0
mytimeseries <- ts(tute1[,-1], start=1981, frequency=4)
autoplot(mytimeseries, facets=TRUE)
## Warning in is.na(main): is.na() applied to non-(list or vector) of type
## 'NULL'

3.3

Read Retail Data

retaildata <- readxl::read_excel("retail.xlsx", skip=1)
head(retaildata)
## # A tibble: 6 x 190
##   `Series ID`         A3349335T A3349627V A3349338X A3349398A A3349468W
##   <dttm>                  <dbl>     <dbl>     <dbl>     <dbl>     <dbl>
## 1 1982-04-01 00:00:00      303.      41.7      63.9      409.      65.8
## 2 1982-05-01 00:00:00      298.      43.1      64        405.      65.8
## 3 1982-06-01 00:00:00      298       40.3      62.7      401       62.3
## 4 1982-07-01 00:00:00      308.      40.9      65.6      414.      68.2
## 5 1982-08-01 00:00:00      299.      42.1      62.6      404.      66  
## 6 1982-09-01 00:00:00      305.      42        64.4      412.      62.3
## # ... with 184 more variables: A3349336V <dbl>, A3349337W <dbl>,
## #   A3349397X <dbl>, A3349399C <dbl>, A3349874C <dbl>, A3349871W <dbl>,
## #   A3349790V <dbl>, A3349556W <dbl>, A3349791W <dbl>, A3349401C <dbl>,
## #   A3349873A <dbl>, A3349872X <dbl>, A3349709X <dbl>, A3349792X <dbl>,
## #   A3349789K <dbl>, A3349555V <dbl>, A3349565X <dbl>, A3349414R <dbl>,
## #   A3349799R <dbl>, A3349642T <dbl>, A3349413L <dbl>, A3349564W <dbl>,
## #   A3349416V <dbl>, A3349643V <dbl>, A3349483V <dbl>, A3349722T <dbl>,
## #   A3349727C <dbl>, A3349641R <dbl>, A3349639C <dbl>, A3349415T <dbl>,
## #   A3349349F <dbl>, A3349563V <dbl>, A3349350R <dbl>, A3349640L <dbl>,
## #   A3349566A <dbl>, A3349417W <dbl>, A3349352V <dbl>, A3349882C <dbl>,
## #   A3349561R <dbl>, A3349883F <dbl>, A3349721R <dbl>, A3349478A <dbl>,
## #   A3349637X <dbl>, A3349479C <dbl>, A3349797K <dbl>, A3349477X <dbl>,
## #   A3349719C <dbl>, A3349884J <dbl>, A3349562T <dbl>, A3349348C <dbl>,
## #   A3349480L <dbl>, A3349476W <dbl>, A3349881A <dbl>, A3349410F <dbl>,
## #   A3349481R <dbl>, A3349718A <dbl>, A3349411J <dbl>, A3349638A <dbl>,
## #   A3349654A <dbl>, A3349499L <dbl>, A3349902A <dbl>, A3349432V <dbl>,
## #   A3349656F <dbl>, A3349361W <dbl>, A3349501L <dbl>, A3349503T <dbl>,
## #   A3349360V <dbl>, A3349903C <dbl>, A3349905J <dbl>, A3349658K <dbl>,
## #   A3349575C <dbl>, A3349428C <dbl>, A3349500K <dbl>, A3349577J <dbl>,
## #   A3349433W <dbl>, A3349576F <dbl>, A3349574A <dbl>, A3349816F <dbl>,
## #   A3349815C <dbl>, A3349744F <dbl>, A3349823C <dbl>, A3349508C <dbl>,
## #   A3349742A <dbl>, A3349661X <dbl>, A3349660W <dbl>, A3349909T <dbl>,
## #   A3349824F <dbl>, A3349507A <dbl>, A3349580W <dbl>, A3349825J <dbl>,
## #   A3349434X <dbl>, A3349822A <dbl>, A3349821X <dbl>, A3349581X <dbl>,
## #   A3349908R <dbl>, A3349743C <dbl>, A3349910A <dbl>, A3349435A <dbl>,
## #   A3349365F <dbl>, A3349746K <dbl>, ...

Set as Time Series

myts <- ts(retaildata[,"A3349338X"],
  frequency=12, start=c(1982,4))

Autoplot

autoplot(myts)+ggtitle("Autoplot of A3349338X Sales")
## Warning in is.na(main): is.na() applied to non-(list or vector) of type
## 'NULL'

ggseasonplot(myts)+ggtitle("Seasonal Plot of A3349338X Sales")
## Warning in is.na(ylab): is.na() applied to non-(list or vector) of type
## 'NULL'

ggsubseriesplot(myts)+ggtitle("Subseries of A3349338X Sales")

gglagplot(myts)+ggtitle("Lag Plot of A3349338X Sales")
## Warning in is.na(xlab): is.na() applied to non-(list or vector) of type
## 'NULL'
## Warning in is.na(ylab): is.na() applied to non-(list or vector) of type
## 'NULL'

ggAcf(myts)+ggtitle("Autocorrelation Function of A3349338X Sales")

Overall, retail item A3349338X has increased gradually over the last several decades. The item peaked in 2010 but has recently declined since then. There is evident that there is a seasonal trend happening with a sales spiking in December. There are dips in February and June but also sale bumps in march and August as well. Overall, there is a lag pattern is consistent over the years wiht lag 1-4, and 12 having the strongest relationship.

2.6

hsales

#Autoplot
autoplot(hsales)+ggtitle("Autoplot of Monthly sales of new one-family houses sold in the USA since 1973")
## Warning in is.na(main): is.na() applied to non-(list or vector) of type
## 'NULL'

#Seasonal plot
ggseasonplot(hsales)+ggtitle("Seasonal Plot of Monthly sales of new one-family houses sold in the USA since 1973")
## Warning in is.na(ylab): is.na() applied to non-(list or vector) of type
## 'NULL'

#Subseries plot
ggsubseriesplot(hsales)+ggtitle("Subseries Plot of Monthly sales of new one-family houses sold in the USA since 1973")

#Lag plot
gglagplot(hsales)+ggtitle("Lag Plot of Monthly sales of new one-family houses sold in the USA since 1973")
## Warning in is.na(xlab): is.na() applied to non-(list or vector) of type
## 'NULL'
## Warning in is.na(ylab): is.na() applied to non-(list or vector) of type
## 'NULL'

#Autocorrelation plot
ggAcf(hsales)+ggtitle("Autocorrelation Function of Monthly sales of new one-family houses sold in the USA since 1973")

US Deaths

#Autoplot
autoplot(usdeaths)+ggtitle("Autoplot of Monthly accidental deaths in USA.")
## Warning in is.na(main): is.na() applied to non-(list or vector) of type
## 'NULL'

#Seasonal plot
ggseasonplot(usdeaths)+ggtitle("Seasonal Plot of Monthly accidental deaths in USA.")
## Warning in is.na(ylab): is.na() applied to non-(list or vector) of type
## 'NULL'

#Subseries plot
ggsubseriesplot(usdeaths)+ggtitle("Subseries Plot of Monthly accidental deaths in USA.")

#Lag plot
gglagplot(usdeaths)+ggtitle("Lag Plot of Monthly accidental deaths in USA.")
## Warning in is.na(xlab): is.na() applied to non-(list or vector) of type
## 'NULL'
## Warning in is.na(ylab): is.na() applied to non-(list or vector) of type
## 'NULL'

#Autocorrelation plot
ggAcf(usdeaths)+ggtitle("Autocorrelation Function of Monthly accidental deaths in USA.")

Bricksq

#Autoplot
autoplot(bricksq)+ggtitle("Autoplot of Australian quarterly clay brick production: 1956–1994.")
## Warning in is.na(main): is.na() applied to non-(list or vector) of type
## 'NULL'

#Seasonal plot
ggseasonplot(bricksq)+ggtitle("Seasonal Plot of Australian quarterly clay brick production: 1956–1994.")
## Warning in is.na(ylab): is.na() applied to non-(list or vector) of type
## 'NULL'

#Subseries plot
ggsubseriesplot(bricksq)+ggtitle("Subseries Plot of Australian quarterly clay brick production: 1956–1994.")

#Lag plot
gglagplot(bricksq)+ggtitle("Lag Plot of Australian quarterly clay brick production: 1956–1994.")
## Warning in is.na(xlab): is.na() applied to non-(list or vector) of type
## 'NULL'
## Warning in is.na(ylab): is.na() applied to non-(list or vector) of type
## 'NULL'

#Autocorrelation plot
ggAcf(bricksq)+ggtitle("Autocorrelation Function of Australian quarterly clay brick production: 1956–1994.")

head(sunspotarea)
## Time Series:
## Start = 1875 
## End = 1880 
## Frequency = 1 
## [1] 213.13333 109.28333  92.85833  22.21667  36.33333 446.75000
test<- ts(sunspotarea, frequency = 12, start=c(1875,4))
ggseasonplot(test)
## Warning in is.na(ylab): is.na() applied to non-(list or vector) of type
## 'NULL'

sunspotarea

#Convert to time series
sunspotarea1 <- ts(sunspotarea, frequency = 12, start=c(1875,4))
#Autoplot
autoplot(sunspotarea1)+ggtitle("Autoplot of Annual averages of the daily sunspot areas")
## Warning in is.na(main): is.na() applied to non-(list or vector) of type
## 'NULL'

#Seasonal plot
ggseasonplot(sunspotarea1)+ggtitle("Seasonal Plot of Annual averages of the daily sunspot areas")
## Warning in is.na(ylab): is.na() applied to non-(list or vector) of type
## 'NULL'

#Subseries plot
ggsubseriesplot(sunspotarea1)+ggtitle("Subseries Plot of Annual averages of the daily sunspot areas")

#Lag plot
gglagplot(sunspotarea1)+ggtitle("Lag Plot of Annual averages of the daily sunspot areas")
## Warning in is.na(xlab): is.na() applied to non-(list or vector) of type
## 'NULL'
## Warning in is.na(ylab): is.na() applied to non-(list or vector) of type
## 'NULL'

#Autocorrelation plot
ggAcf(sunspotarea1)+ggtitle("Autocorrelation Function of Annual averages of the daily sunspot areas")

Gasoline

#convert to time series
gas <- ts(gas, frequency = 12, start=c(1991,4))
#Autoplot
autoplot(gas)+ggtitle("Autoplot of Weekly Gas Barrels Per Day in Millions")
## Warning in is.na(main): is.na() applied to non-(list or vector) of type
## 'NULL'

#Seasonal plot
ggseasonplot(gas)+ggtitle("Seasonal Plot of Weekly Gas Barrels Per Day in Millions")
## Warning in is.na(ylab): is.na() applied to non-(list or vector) of type
## 'NULL'

#Subseries Plot
ggsubseriesplot(gas)+ggtitle("Subseries Plot of Weekly Gas Barrels Per Day in Millions")

#Lag plot
gglagplot(gas)+ggtitle("Lag Plot of Weekly Gas Barrels Per Day in Millions")
## Warning in is.na(xlab): is.na() applied to non-(list or vector) of type
## 'NULL'
## Warning in is.na(ylab): is.na() applied to non-(list or vector) of type
## 'NULL'

#Autocorrelation plot
ggAcf(gas)+ggtitle("Autocorrelation Function of Weekly Gas Barrels Per Day in Millions")