Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
174 views10 pages

Time Series Assignment

Download as docx, pdf, or txt
Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1/ 10

library(readr)

library(fpp)

library(astsa)

library(DT)

library(dygraphs)

library(psd)

library(TSA)

# ------------------TIME SERIES FORECASTING GROUP ASSIGNMENT----------------------#

# Working Directory

setwd("D:/Group Assignment")

# Load beer production dataset

TSData <- read.csv('beer.csv')

# Data Exploration and Visualization

str(TSData)

summary(TSData)

head(TSData)

tail(TSData)
sum(is.na(TSData)) # no null data

# To predict the next 2 years beer sales, it is required to convert beer data

# Converting beer data into ts object(time series)

TS_Beer <- ts(TSData, start = 2000, frequency = 4, end=2018)

is.ts(TS_Beer)

summary(TS_Beer)

str(TS_Beer)

#-----------------------Beer Sales in past 18 years------------------------#

ts.plot(beer_ts, col="red" ,main="Beer Sales in past 18 years",

xlab="Years (2000 - 2018)", ylab="Sales in (000)$", type="b")

# ---------------------Sampling Times of Time Series-----------------------#

deltat(TS_Beer)

frequency(TS_Beer)
cycle(TS_Beer)

Annual_Beer <- aggregate(TS_Beer)

str(Annual_Beer)

summary(Annual_Beer)

#-------------------Annual consumption of beer Year Over Year------------------#

plot(Annual_Beer,col="blue", main="Annual consumption of beer YOY")

avg_beer <- aggregate(TS_Beer,FUN=mean)

summary(avg_beer)

str(avg_beer)

# -----------------Average consumption of beer Year Over Year------------------#

plot(avg_beer,col="red", main="Average consumption of beer YOY")


# --------------------- Quarterly based sub-series plot ----------------------#

ggsubseriesplot(TS_Beer,facets=TRUE, main=" Quarterly based sub-series plot ")

# ------------------ Boxplot between quarters and years-----------------------#

boxplot(TS_Beer~cycle(TS_Beer), main="Variation between quarters and years")

# -------------------------Lagplot of Beer data------------------------------#

gglagplot(TS_Beer)

# ------------------------Seasonal plot of Beer Sales------------------------#

ggseasonplot(TS_Beer,facets=TRUE,polar = TRUE)

# --------------------------Autocorrelation Analysis ------------------------#

acf(TS_Beer)
pacf(TS_Beer)

# ----------------- stationary or non-stationary Check------------------#

# Augmented Dickey-Fuller Test

adf.test(TS_Beer)

# Kwiatkowski-Phillips-Schmidt-Shin Test

kpss.test(TS_Beer)

# ---------------------------seasonality check ----------------------------#

periodogram(TS_Beer)

# To Detrend the pattern and removing seasonality

diff_beer <- diff(TS_Beer,lag=frequency(TS_Beer))

kpss.test(diff_beer)
#------------To check variance of stability----------------------#

BoxCox.lambda(diff_beer)

# ----------------Detrend and Deseasonality-----------------------#

plot(diff_beer, col="Blue", main="Detrend and Deseasonality")

# ---------------Check for autocorrelation ---------------------#

acf(diff_beer)

pacf(diff_beer)

# -----------------Visualizing the trend----------------------#

Beer_Trend = ma(TS_Beer,order = 4,centre = T)

plot(TS_Beer, col="blue", main ="Quartely Beer Sales")

lines(Beer_Trend, col="red")

# Beer trend line


plot(Beer_Trend,col="red",main="Trend Line in Beer Sales series")

# Detrend beer time series

detrend_beer = TS_Beer - Beer_Trend

plot(detrend_beer, col="blue", main = "Time Series after removing the Trend Component")

# Stable data

matrix_beer = t(matrix(data = detrend_beer, nrow = 4))

matrix_beer

# Seasonality in beer

seasonal_beer = colMeans(matrix_beer, na.rm = T)

seasonal_beer

seasonal = rep(seasonal_beer,18)

plot.ts(seasonal, col="green", main="Seasonal Component of Time Series")


# Randomization in beer

random_beer = detrend_beer-seasonal

plot(random_beer,col="violet", main = "Random Noise")

# Reconstruct the original time series

reconstruct = Beer_Trend + seasonal + random_beer

plot(reconstruct,col="Blue", main = "Getting the original time series")

#----------------------Compare with original time series---------------------------#

# Decompose the beer_ts time series

decompose_beer <- decompose(TS_Beer)

plot(decompose_beer)
# Seasonal decomposition

sd_fitness <- stl(TS_Beer, s.window="period")

plot(sd_fitness)

#------------------------MODELLING TECHNIQUES--------------------------------#

# Winter Holt’s method

autoplot(diff_beer)

hw_beer <- hw(TS_Beer,seasonal = "additive")

summary(hw_beer)

autoplot(forecast(hw_beer,n.ahead=8))

# Decomposing the HW forecast)

states=hw_beer$model$states[,1:3]
colnames(states)= cbind('level','trend','seasonality')

plot(states,col="blue",main = "Decomposing the forecast")

# Residual Check

checkresiduals(hw_beer)

# Exponential Smoothing (ETS) Method

ETS_beer <- ets(TS_Beer)

ETS_beer

# ------------------FORCASTING FOR THE NEXT 2 YEARS ------------------#

ETS_beer %>% forecast(h=8) %>% autoplot()

You might also like