South ural state university, Chelyabinsk, Russian federation
#Import
library(fpp2)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
## -- Attaching packages ---------------------------------------------- fpp2 2.4 --
## v ggplot2 3.3.2 v fma 2.4
## v forecast 8.13 v expsmooth 2.3
##
library(forecast)
library(ggplot2)
library("readxl")
library(moments)
library(forecast)
require(forecast)
require(tseries)
## Loading required package: tseries
require(markovchain)
## Loading required package: markovchain
## Package: markovchain
## Version: 0.8.5-3
## Date: 2020-12-03
## BugReport: https://github.com/spedygiorgio/markovchain/issues
require(data.table)
## Loading required package: data.table
library(Hmisc)
## Loading required package: lattice
## Loading required package: survival
## Loading required package: Formula
##
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:base':
##
## format.pval, units
library(ascii)
library(pander)
##
## Attaching package: 'pander'
## The following object is masked from 'package:ascii':
##
## Pandoc
##Global vriable##
Full_original_data <- read.csv("data.csv") # path of your data ( time series data)
original_data<-Full_original_data$Deaths
y_lab <- "Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk" # input name of data
Actual_date_interval <- c("2020/03/12","2021/04/09")
Forecast_date_interval <- c("2021/04/10","2021/04/30")
validation_data_days <-27
frequency<-"day"
Number_Neural<-5 # Number of Neural For model NNAR Model
NNAR_Model<- FALSE #create new model (TRUE/FALSE)
frequency<-"days"
Population <-1130319 # population in England for SIR Model
country.name <- "Chelyabinsk"
# Data Preparation & calculate some of statistics measures
summary(original_data) # Summary your time series
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 53.25 124.50 319.09 541.00 1290.00
# calculate standard deviation
data.frame(kurtosis=kurtosis(original_data)) # calculate Cofficient of kurtosis
## kurtosis
## 1 3.007283
data.frame(skewness=skewness(original_data)) # calculate Cofficient of skewness
## skewness
## 1 1.19516
data.frame(Standard.deviation =sd(original_data))
## Standard.deviation
## 1 382.3906
#processing on data (input data)
rows <- NROW(original_data) # calculate number of rows in time series (number of days)
training_data<-original_data[1:(rows-validation_data_days)] # Training data
testing_data<-original_data[(rows-validation_data_days+1):rows] #testing data
AD<-fulldate<-seq(as.Date(Actual_date_interval[1]),as.Date(Actual_date_interval[2]), frequency) #input range for actual date
FD<-seq(as.Date(Forecast_date_interval[1]),as.Date(Forecast_date_interval[2]), frequency) #input range forecasting date
N_forecasting_days<-nrow(data.frame(FD)) #calculate number of days that you want to forecasting
validation_dates<-tail(AD,validation_data_days) # select validation_dates
validation_data_by_name<-weekdays(validation_dates) # put names of validation dates
forecasting_data_by_name<-weekdays(FD) # put names of Forecasting dates
#NNAR Model
if(NNAR_Model==TRUE){
data_series<-ts(training_data)
model_NNAR<-nnetar(data_series, size = Number_Neural)
saveRDS(model_NNAR, file = "model_NNAR.RDS")
my_model <- readRDS("model_NNAR.RDS")
accuracy(model_NNAR) # accuracy on training data #Print Model Parameters
model_NNAR
}
if(NNAR_Model==FALSE){
data_series<-ts(training_data)
#model_NNAR<-nnetar(data_series, size = Number_Numeral)
model_NNAR <- readRDS("model_NNAR.RDS")
accuracy(model_NNAR) # accuracy on training data #Print Model Parameters
model_NNAR
}
## Series: data_series
## Model: NNAR(1,5)
## Call: nnetar(y = data_series, size = Number_Neural)
##
## Average of 20 networks, each of which is
## a 1-5-1 network with 16 weights
## options were - linear output units
##
## sigma^2 estimated as 4.866
# Testing Data Evaluation
forecasting_NNAR <- forecast(model_NNAR, h=N_forecasting_days+validation_data_days)
validation_forecast<-head(forecasting_NNAR$mean,validation_data_days)
MAPE_Per_Day<-round( abs(((testing_data-validation_forecast)/testing_data)*100) ,3)
paste ("MAPE % For ",validation_data_days,frequency,"by using NNAR Model for ==> ",y_lab, sep=" ")
## [1] "MAPE % For 27 days by using NNAR Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
MAPE_Mean_All<-paste(round(mean(MAPE_Per_Day),3),"% MAPE ",validation_data_days,frequency,y_lab,sep=" ")
MAPE_Mean_All_NNAR<-round(mean(MAPE_Per_Day),3)
MAPE_NNAR<-paste(round(MAPE_Per_Day,3),"%")
MAPE_NNAR_Model<-paste(MAPE_Per_Day ,"%")
paste (" MAPE that's Error of Forecasting for ",validation_data_days," days in NNAR Model for ==> ",y_lab, sep=" ")
## [1] " MAPE that's Error of Forecasting for 27 days in NNAR Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
paste(MAPE_Mean_All,"%")
## [1] "4.577 % MAPE 27 days Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk %"
paste ("MAPE that's Error of Forecasting day by day for ",validation_data_days," days in NNAR Model for ==> ",y_lab, sep=" ")
## [1] "MAPE that's Error of Forecasting day by day for 27 days in NNAR Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
print(ascii(data.frame(date_NNAR=validation_dates,validation_data_by_name,actual_data=testing_data,forecasting_NNAR=validation_forecast,MAPE_NNAR_Model)), type = "rest")
##
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | | date_NNAR | validation_data_by_name | actual_data | forecasting_NNAR | MAPE_NNAR_Model |
## +====+============+=========================+=============+==================+=================+
## | 1 | 2021-03-14 | Sunday | 1098.00 | 1095.95 | 0.187 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 2 | 2021-03-15 | Monday | 1108.00 | 1100.70 | 0.659 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 3 | 2021-03-16 | Tuesday | 1117.00 | 1105.26 | 1.051 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 4 | 2021-03-17 | Wednesday | 1125.00 | 1109.62 | 1.367 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 5 | 2021-03-18 | Thursday | 1132.00 | 1113.80 | 1.608 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 6 | 2021-03-19 | Friday | 1141.00 | 1117.78 | 2.035 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 7 | 2021-03-20 | Saturday | 1148.00 | 1121.58 | 2.301 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 8 | 2021-03-21 | Sunday | 1154.00 | 1125.20 | 2.496 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 9 | 2021-03-22 | Monday | 1161.00 | 1128.64 | 2.787 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 10 | 2021-03-23 | Tuesday | 1169.00 | 1131.90 | 3.173 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 11 | 2021-03-24 | Wednesday | 1177.00 | 1135.00 | 3.568 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 12 | 2021-03-25 | Thursday | 1184.00 | 1137.93 | 3.891 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 13 | 2021-03-26 | Friday | 1189.00 | 1140.71 | 4.062 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 14 | 2021-03-27 | Saturday | 1193.00 | 1143.32 | 4.164 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 15 | 2021-03-28 | Sunday | 1200.00 | 1145.80 | 4.517 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 16 | 2021-03-29 | Monday | 1205.00 | 1148.13 | 4.72 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 17 | 2021-03-30 | Tuesday | 1213.00 | 1150.32 | 5.167 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 18 | 2021-03-31 | Wednesday | 1222.00 | 1152.39 | 5.696 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 19 | 2021-04-01 | Thursday | 1228.00 | 1154.33 | 5.999 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 20 | 2021-04-02 | Friday | 1237.00 | 1156.15 | 6.536 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 21 | 2021-04-03 | Saturday | 1244.00 | 1157.87 | 6.924 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 22 | 2021-04-04 | Sunday | 1250.00 | 1159.47 | 7.242 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 23 | 2021-04-05 | Monday | 1258.00 | 1160.97 | 7.713 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 24 | 2021-04-06 | Tuesday | 1267.00 | 1162.38 | 8.257 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 25 | 2021-04-07 | Wednesday | 1275.00 | 1163.70 | 8.729 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 26 | 2021-04-08 | Thursday | 1282.00 | 1164.93 | 9.132 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 27 | 2021-04-09 | Friday | 1290.00 | 1166.09 | 9.606 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
print(ascii(data.frame(FD,forecating_date=forecasting_data_by_name,forecasting_by_NNAR=tail(forecasting_NNAR$mean,N_forecasting_days))), type = "rest")
##
## +----+------------+-----------------+---------------------+
## | | FD | forecating_date | forecasting_by_NNAR |
## +====+============+=================+=====================+
## | 1 | 2021-04-10 | Saturday | 1167.16 |
## +----+------------+-----------------+---------------------+
## | 2 | 2021-04-11 | Sunday | 1168.17 |
## +----+------------+-----------------+---------------------+
## | 3 | 2021-04-12 | Monday | 1169.11 |
## +----+------------+-----------------+---------------------+
## | 4 | 2021-04-13 | Tuesday | 1169.98 |
## +----+------------+-----------------+---------------------+
## | 5 | 2021-04-14 | Wednesday | 1170.80 |
## +----+------------+-----------------+---------------------+
## | 6 | 2021-04-15 | Thursday | 1171.56 |
## +----+------------+-----------------+---------------------+
## | 7 | 2021-04-16 | Friday | 1172.27 |
## +----+------------+-----------------+---------------------+
## | 8 | 2021-04-17 | Saturday | 1172.93 |
## +----+------------+-----------------+---------------------+
## | 9 | 2021-04-18 | Sunday | 1173.54 |
## +----+------------+-----------------+---------------------+
## | 10 | 2021-04-19 | Monday | 1174.11 |
## +----+------------+-----------------+---------------------+
## | 11 | 2021-04-20 | Tuesday | 1174.65 |
## +----+------------+-----------------+---------------------+
## | 12 | 2021-04-21 | Wednesday | 1175.14 |
## +----+------------+-----------------+---------------------+
## | 13 | 2021-04-22 | Thursday | 1175.60 |
## +----+------------+-----------------+---------------------+
## | 14 | 2021-04-23 | Friday | 1176.03 |
## +----+------------+-----------------+---------------------+
## | 15 | 2021-04-24 | Saturday | 1176.43 |
## +----+------------+-----------------+---------------------+
## | 16 | 2021-04-25 | Sunday | 1176.80 |
## +----+------------+-----------------+---------------------+
## | 17 | 2021-04-26 | Monday | 1177.15 |
## +----+------------+-----------------+---------------------+
## | 18 | 2021-04-27 | Tuesday | 1177.47 |
## +----+------------+-----------------+---------------------+
## | 19 | 2021-04-28 | Wednesday | 1177.76 |
## +----+------------+-----------------+---------------------+
## | 20 | 2021-04-29 | Thursday | 1178.04 |
## +----+------------+-----------------+---------------------+
## | 21 | 2021-04-30 | Friday | 1178.30 |
## +----+------------+-----------------+---------------------+
plot(forecasting_NNAR,xlab = paste ("Time in", frequency ,y_lab , sep=" "), ylab=y_lab)
x1_test <- ts(testing_data, start =(rows-validation_data_days+1) )
lines(x1_test, col='red',lwd=2)

graph1<-autoplot(forecasting_NNAR,xlab = paste ("Time in", frequency ,y_lab , sep=" "), ylab=y_lab)
graph1

##bats model
# Data Modeling
data_series<-ts(training_data) # make your data to time series
autoplot(data_series ,xlab=paste ("Time in", frequency, sep=" "), ylab = y_lab, main=paste ("Actual Data :", y_lab, sep=" "))

model_bats<-bats(data_series)
accuracy(model_bats) # accuracy on training data
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 0.08834955 2.116257 1.195905 Inf Inf 0.4011928 -0.003400071
# Print Model Parameters
model_bats
## BATS(1, {0,0}, 1, -)
##
## Call: bats(y = data_series)
##
## Parameters
## Alpha: 1.026564
## Beta: 0.2293626
## Damping Parameter: 1
##
## Seed States:
## [,1]
## [1,] 0.009661861
## [2,] -0.033359084
##
## Sigma: 2.116257
## AIC: 2725.51
#ploting BATS Model
plot(model_bats,xlab = paste ("Time in", frequency ,y_lab , sep=" "))

# Testing Data Evaluation
forecasting_bats <- predict(model_bats, h=N_forecasting_days+validation_data_days)
validation_forecast<-head(forecasting_bats$mean,validation_data_days)
MAPE_Per_Day<-round( abs(((testing_data-validation_forecast)/testing_data)*100) ,3)
paste ("MAPE % For ",validation_data_days,frequency,"by using bats Model for ==> ",y_lab, sep=" ")
## [1] "MAPE % For 27 days by using bats Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
MAPE_Mean_All.bats_Model<-round(mean(MAPE_Per_Day),3)
MAPE_Mean_All.bats<-paste(round(mean(MAPE_Per_Day),3),"% MAPE ",validation_data_days,frequency,y_lab,sep=" ")
MAPE_bats<-paste(round(MAPE_Per_Day,3),"%")
MAPE_bats_Model<-paste(MAPE_Per_Day ,"%")
paste (" MAPE that's Error of Forecasting for ",validation_data_days," days in bats Model for ==> ",y_lab, sep=" ")
## [1] " MAPE that's Error of Forecasting for 27 days in bats Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
paste(MAPE_Mean_All.bats,"%")
## [1] "0.256 % MAPE 27 days Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk %"
paste ("MAPE that's Error of Forecasting day by day for ",validation_data_days," days in bats Model for ==> ",y_lab, sep=" ")
## [1] "MAPE that's Error of Forecasting day by day for 27 days in bats Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
print(ascii(data.frame(date_bats=validation_dates,validation_data_by_name,actual_data=testing_data,forecasting_bats=validation_forecast,MAPE_bats_Model)), type = "rest")
##
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | | date_bats | validation_data_by_name | actual_data | forecasting_bats | MAPE_bats_Model |
## +====+============+=========================+=============+==================+=================+
## | 1 | 2021-03-14 | Sunday | 1098.00 | 1098.42 | 0.038 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 2 | 2021-03-15 | Monday | 1108.00 | 1105.83 | 0.196 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 3 | 2021-03-16 | Tuesday | 1117.00 | 1113.23 | 0.338 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 4 | 2021-03-17 | Wednesday | 1125.00 | 1120.63 | 0.388 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 5 | 2021-03-18 | Thursday | 1132.00 | 1128.04 | 0.35 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 6 | 2021-03-19 | Friday | 1141.00 | 1135.44 | 0.487 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 7 | 2021-03-20 | Saturday | 1148.00 | 1142.84 | 0.449 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 8 | 2021-03-21 | Sunday | 1154.00 | 1150.25 | 0.325 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 9 | 2021-03-22 | Monday | 1161.00 | 1157.65 | 0.288 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 10 | 2021-03-23 | Tuesday | 1169.00 | 1165.05 | 0.338 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 11 | 2021-03-24 | Wednesday | 1177.00 | 1172.46 | 0.386 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 12 | 2021-03-25 | Thursday | 1184.00 | 1179.86 | 0.35 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 13 | 2021-03-26 | Friday | 1189.00 | 1187.26 | 0.146 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 14 | 2021-03-27 | Saturday | 1193.00 | 1194.67 | 0.14 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 15 | 2021-03-28 | Sunday | 1200.00 | 1202.07 | 0.173 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 16 | 2021-03-29 | Monday | 1205.00 | 1209.48 | 0.371 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 17 | 2021-03-30 | Tuesday | 1213.00 | 1216.88 | 0.32 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 18 | 2021-03-31 | Wednesday | 1222.00 | 1224.28 | 0.187 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 19 | 2021-04-01 | Thursday | 1228.00 | 1231.69 | 0.3 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 20 | 2021-04-02 | Friday | 1237.00 | 1239.09 | 0.169 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 21 | 2021-04-03 | Saturday | 1244.00 | 1246.49 | 0.2 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 22 | 2021-04-04 | Sunday | 1250.00 | 1253.90 | 0.312 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 23 | 2021-04-05 | Monday | 1258.00 | 1261.30 | 0.262 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 24 | 2021-04-06 | Tuesday | 1267.00 | 1268.70 | 0.134 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 25 | 2021-04-07 | Wednesday | 1275.00 | 1276.11 | 0.087 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 26 | 2021-04-08 | Thursday | 1282.00 | 1283.51 | 0.118 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 27 | 2021-04-09 | Friday | 1290.00 | 1290.91 | 0.071 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
print(ascii(data.frame(FD,forecating_date=forecasting_data_by_name,forecasting_by_bats=tail(forecasting_bats$mean,N_forecasting_days),lower=tail(forecasting_bats$lower,N_forecasting_days),Upper=tail(forecasting_bats$lower,N_forecasting_days))), type = "rest")
##
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | | FD | forecating_date | forecasting_by_bats | lower.80. | lower.95. | Upper.80. | Upper.95. |
## +====+============+=================+=====================+===========+===========+===========+===========+
## | 1 | 2021-04-10 | Saturday | 1298.32 | 1233.45 | 1199.12 | 1233.45 | 1199.12 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 2 | 2021-04-11 | Sunday | 1305.72 | 1237.78 | 1201.82 | 1237.78 | 1201.82 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 3 | 2021-04-12 | Monday | 1313.13 | 1242.07 | 1204.45 | 1242.07 | 1204.45 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 4 | 2021-04-13 | Tuesday | 1320.53 | 1246.31 | 1207.01 | 1246.31 | 1207.01 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 5 | 2021-04-14 | Wednesday | 1327.93 | 1250.50 | 1209.51 | 1250.50 | 1209.51 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 6 | 2021-04-15 | Thursday | 1335.34 | 1254.65 | 1211.93 | 1254.65 | 1211.93 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 7 | 2021-04-16 | Friday | 1342.74 | 1258.75 | 1214.29 | 1258.75 | 1214.29 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 8 | 2021-04-17 | Saturday | 1350.14 | 1262.81 | 1216.58 | 1262.81 | 1216.58 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 9 | 2021-04-18 | Sunday | 1357.55 | 1266.83 | 1218.80 | 1266.83 | 1218.80 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 10 | 2021-04-19 | Monday | 1364.95 | 1270.80 | 1220.96 | 1270.80 | 1220.96 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 11 | 2021-04-20 | Tuesday | 1372.35 | 1274.73 | 1223.06 | 1274.73 | 1223.06 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 12 | 2021-04-21 | Wednesday | 1379.76 | 1278.62 | 1225.09 | 1278.62 | 1225.09 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 13 | 2021-04-22 | Thursday | 1387.16 | 1282.47 | 1227.06 | 1282.47 | 1227.06 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 14 | 2021-04-23 | Friday | 1394.56 | 1286.28 | 1228.96 | 1286.28 | 1228.96 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 15 | 2021-04-24 | Saturday | 1401.97 | 1290.05 | 1230.81 | 1290.05 | 1230.81 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 16 | 2021-04-25 | Sunday | 1409.37 | 1293.78 | 1232.59 | 1293.78 | 1232.59 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 17 | 2021-04-26 | Monday | 1416.78 | 1297.47 | 1234.32 | 1297.47 | 1234.32 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 18 | 2021-04-27 | Tuesday | 1424.18 | 1301.12 | 1235.98 | 1301.12 | 1235.98 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 19 | 2021-04-28 | Wednesday | 1431.58 | 1304.74 | 1237.59 | 1304.74 | 1237.59 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 20 | 2021-04-29 | Thursday | 1438.99 | 1308.31 | 1239.14 | 1308.31 | 1239.14 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 21 | 2021-04-30 | Friday | 1446.39 | 1311.85 | 1240.63 | 1311.85 | 1240.63 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
plot(forecasting_bats)
x1_test <- ts(testing_data, start =(rows-validation_data_days+1) )
lines(x1_test, col='red',lwd=2)

graph1<-autoplot(forecasting_bats,xlab = paste ("Time in", frequency ,y_lab , sep=" "), ylab=y_lab)
graph1

## TBATS Model
# Data Modeling
data_series<-ts(training_data)
model_TBATS<-forecast:::fitSpecificTBATS(data_series,use.box.cox=FALSE, use.beta=TRUE, seasonal.periods=c(6),use.damping=FALSE,k.vector=c(2))
accuracy(model_TBATS) # accuracy on training data
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 0.08598346 2.099679 1.237532 NaN Inf 0.4151573 -0.001857393
# Print Model Parameters
model_TBATS
## TBATS(1, {0,0}, 1, {<6,2>})
##
## Call: NULL
##
## Parameters
## Alpha: 1.01088
## Beta: 0.2347149
## Damping Parameter: 1
## Gamma-1 Values: -0.0005025608
## Gamma-2 Values: -0.0002537292
##
## Seed States:
## [,1]
## [1,] 0.03609914
## [2,] -0.03699327
## [3,] 0.25624252
## [4,] 0.04886789
## [5,] -0.28178727
## [6,] -0.02136594
##
## Sigma: 2.099679
## AIC: 2731.738
plot(model_TBATS,xlab = paste ("Time in", frequency ,y_lab , sep=" "), ylab=y_lab)

# Testing Data Evaluation
forecasting_tbats <- predict(model_TBATS, h=N_forecasting_days+validation_data_days)
validation_forecast<-head(forecasting_tbats$mean,validation_data_days)
MAPE_Per_Day<-round( abs(((testing_data-validation_forecast)/testing_data)*100) ,3)
paste ("MAPE % For ",validation_data_days,frequency,"by using TBATS Model for ==> ",y_lab, sep=" ")
## [1] "MAPE % For 27 days by using TBATS Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
MAPE_Mean_All.TBATS_Model<-round(mean(MAPE_Per_Day),3)
MAPE_Mean_All.TBATS<-paste(round(mean(MAPE_Per_Day),3),"% MAPE ",validation_data_days,frequency,y_lab,sep=" ")
MAPE_TBATS<-paste(round(MAPE_Per_Day,3),"%")
MAPE_TBATS_Model<-paste(MAPE_Per_Day ,"%")
paste (" MAPE that's Error of Forecasting for ",validation_data_days," days in TBATS Model for ==> ",y_lab, sep=" ")
## [1] " MAPE that's Error of Forecasting for 27 days in TBATS Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
paste(MAPE_Mean_All.TBATS,"%")
## [1] "0.238 % MAPE 27 days Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk %"
paste ("MAPE that's Error of Forecasting day by day for ",validation_data_days," days in TBATS Model for ==> ",y_lab, sep=" ")
## [1] "MAPE that's Error of Forecasting day by day for 27 days in TBATS Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
print(ascii(data.frame(date_TBATS=validation_dates,validation_data_by_name,actual_data=testing_data,forecasting_TBATS=validation_forecast,MAPE_TBATS_Model)), type = "rest")
##
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | | date_TBATS | validation_data_by_name | actual_data | forecasting_TBATS | MAPE_TBATS_Model |
## +====+============+=========================+=============+===================+==================+
## | 1 | 2021-03-14 | Sunday | 1098.00 | 1097.92 | 0.008 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 2 | 2021-03-15 | Monday | 1108.00 | 1105.06 | 0.266 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 3 | 2021-03-16 | Tuesday | 1117.00 | 1112.60 | 0.394 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 4 | 2021-03-17 | Wednesday | 1125.00 | 1120.26 | 0.421 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 5 | 2021-03-18 | Thursday | 1132.00 | 1127.92 | 0.361 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 6 | 2021-03-19 | Friday | 1141.00 | 1135.23 | 0.506 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 7 | 2021-03-20 | Saturday | 1148.00 | 1142.13 | 0.511 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 8 | 2021-03-21 | Sunday | 1154.00 | 1149.27 | 0.409 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 9 | 2021-03-22 | Monday | 1161.00 | 1156.82 | 0.36 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 10 | 2021-03-23 | Tuesday | 1169.00 | 1164.48 | 0.387 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 11 | 2021-03-24 | Wednesday | 1177.00 | 1172.14 | 0.413 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 12 | 2021-03-25 | Thursday | 1184.00 | 1179.45 | 0.385 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 13 | 2021-03-26 | Friday | 1189.00 | 1186.35 | 0.223 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 14 | 2021-03-27 | Saturday | 1193.00 | 1193.49 | 0.041 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 15 | 2021-03-28 | Sunday | 1200.00 | 1201.04 | 0.086 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 16 | 2021-03-29 | Monday | 1205.00 | 1208.69 | 0.307 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 17 | 2021-03-30 | Tuesday | 1213.00 | 1216.35 | 0.277 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 18 | 2021-03-31 | Wednesday | 1222.00 | 1223.66 | 0.136 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 19 | 2021-04-01 | Thursday | 1228.00 | 1230.57 | 0.209 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 20 | 2021-04-02 | Friday | 1237.00 | 1237.71 | 0.057 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 21 | 2021-04-03 | Saturday | 1244.00 | 1245.25 | 0.101 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 22 | 2021-04-04 | Sunday | 1250.00 | 1252.91 | 0.233 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 23 | 2021-04-05 | Monday | 1258.00 | 1260.57 | 0.204 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 24 | 2021-04-06 | Tuesday | 1267.00 | 1267.88 | 0.07 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 25 | 2021-04-07 | Wednesday | 1275.00 | 1274.79 | 0.017 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 26 | 2021-04-08 | Thursday | 1282.00 | 1281.93 | 0.006 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
## | 27 | 2021-04-09 | Friday | 1290.00 | 1289.47 | 0.041 % |
## +----+------------+-------------------------+-------------+-------------------+------------------+
print(ascii(data.frame(FD,forecating_date=forecasting_data_by_name,forecasting_by_TBATS=tail(forecasting_tbats$mean,N_forecasting_days),Lower=tail(forecasting_tbats$lower,N_forecasting_days),Upper=tail(forecasting_tbats$upper,N_forecasting_days))), type = "rest")
##
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | | FD | forecating_date | forecasting_by_TBATS | Lower.80. | Lower.95. | Upper.80. | Upper.95. |
## +====+============+=================+======================+===========+===========+===========+===========+
## | 1 | 2021-04-10 | Saturday | 1297.13 | 1282.84 | 1275.27 | 1311.42 | 1318.99 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 2 | 2021-04-11 | Sunday | 1304.79 | 1290.25 | 1282.55 | 1319.33 | 1327.03 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 3 | 2021-04-12 | Monday | 1312.10 | 1297.31 | 1289.49 | 1326.89 | 1334.71 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 4 | 2021-04-13 | Tuesday | 1319.01 | 1303.98 | 1296.02 | 1334.03 | 1341.99 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 5 | 2021-04-14 | Wednesday | 1326.15 | 1310.88 | 1302.80 | 1341.41 | 1349.49 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 6 | 2021-04-15 | Thursday | 1333.69 | 1318.19 | 1309.99 | 1349.18 | 1357.39 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 7 | 2021-04-16 | Friday | 1341.35 | 1325.62 | 1317.30 | 1357.07 | 1365.40 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 8 | 2021-04-17 | Saturday | 1349.01 | 1333.06 | 1324.61 | 1364.96 | 1373.40 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 9 | 2021-04-18 | Sunday | 1356.32 | 1340.14 | 1331.58 | 1372.49 | 1381.05 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 10 | 2021-04-19 | Monday | 1363.22 | 1346.83 | 1338.15 | 1379.62 | 1388.30 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 11 | 2021-04-20 | Tuesday | 1370.36 | 1353.76 | 1344.96 | 1386.97 | 1395.77 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 12 | 2021-04-21 | Wednesday | 1377.91 | 1361.08 | 1352.18 | 1394.73 | 1403.63 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 13 | 2021-04-22 | Thursday | 1385.57 | 1368.53 | 1359.52 | 1402.60 | 1411.61 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 14 | 2021-04-23 | Friday | 1393.23 | 1375.99 | 1366.86 | 1410.47 | 1419.59 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 15 | 2021-04-24 | Saturday | 1400.54 | 1383.09 | 1373.86 | 1417.98 | 1427.21 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 16 | 2021-04-25 | Sunday | 1407.44 | 1389.80 | 1380.45 | 1425.09 | 1434.43 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 17 | 2021-04-26 | Monday | 1414.58 | 1396.74 | 1387.29 | 1432.43 | 1441.88 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 18 | 2021-04-27 | Tuesday | 1422.12 | 1404.08 | 1394.53 | 1440.17 | 1449.72 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 19 | 2021-04-28 | Wednesday | 1429.78 | 1411.55 | 1401.89 | 1448.02 | 1457.68 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 20 | 2021-04-29 | Thursday | 1437.44 | 1419.01 | 1409.26 | 1455.87 | 1465.63 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 21 | 2021-04-30 | Friday | 1444.75 | 1426.13 | 1416.27 | 1463.37 | 1473.23 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
plot(forecasting_tbats)
x1_test <- ts(testing_data, start =(rows-validation_data_days+1) )
lines(x1_test, col='red',lwd=2)

graph2<-autoplot(forecasting_tbats,xlab = paste ("Time in", frequency ,y_lab , sep=" "), ylab=y_lab)
graph2

## Holt's linear trend
# Data Modeling
data_series<-ts(training_data)
model_holt<-holt(data_series,h=N_forecasting_days+validation_data_days,lambda = "auto")
accuracy(model_holt) # accuracy on training data
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 0.0572963 2.123312 1.216133 NaN Inf 0.4079786 0.03980792
# Print Model Parameters
summary(model_holt$model)
## Holt's method
##
## Call:
## holt(y = data_series, h = N_forecasting_days + validation_data_days,
##
## Call:
## lambda = "auto")
##
## Box-Cox transformation: lambda= 0.8366
##
## Smoothing parameters:
## alpha = 0.9999
## beta = 0.2116
##
## Initial states:
## l = -2.3442
## b = -0.2756
##
## sigma: 0.9179
##
## AIC AICc BIC
## 2110.388 2110.554 2129.915
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE ACF1
## Training set 0.0572963 2.123312 1.216133 NaN Inf 0.4079786 0.03980792
# Testing Data Evaluation
forecasting_holt <- predict(model_holt, h=N_forecasting_days+validation_data_days,lambda = "auto")
validation_forecast<-head(forecasting_holt$mean,validation_data_days)
MAPE_Per_Day<-round( abs(((testing_data-validation_forecast)/testing_data)*100) ,3)
paste ("MAPE % For ",validation_data_days,frequency,"by using holt Model for ==> ",y_lab, sep=" ")
## [1] "MAPE % For 27 days by using holt Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
MAPE_Mean_All.Holt_Model<-round(mean(MAPE_Per_Day),3)
MAPE_Mean_All.Holt<-paste(round(mean(MAPE_Per_Day),3),"% MAPE ",validation_data_days,frequency,y_lab,sep=" ")
MAPE_holt<-paste(round(MAPE_Per_Day,3),"%")
MAPE_holt_Model<-paste(MAPE_Per_Day ,"%")
paste (" MAPE that's Error of Forecasting for ",validation_data_days," days in holt Model for ==> ",y_lab, sep=" ")
## [1] " MAPE that's Error of Forecasting for 27 days in holt Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
paste(MAPE_Mean_All.Holt,"%")
## [1] "0.316 % MAPE 27 days Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk %"
paste ("MAPE that's Error of Forecasting day by day for ",validation_data_days," days in holt Model for ==> ",y_lab, sep=" ")
## [1] "MAPE that's Error of Forecasting day by day for 27 days in holt Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
print(ascii(data.frame(date_holt=validation_dates,validation_data_by_name,actual_data=testing_data,forecasting_holt=validation_forecast,MAPE_holt_Model)), type = "rest")
##
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | | date_holt | validation_data_by_name | actual_data | forecasting_holt | MAPE_holt_Model |
## +====+============+=========================+=============+==================+=================+
## | 1 | 2021-03-14 | Sunday | 1098.00 | 1098.40 | 0.037 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 2 | 2021-03-15 | Monday | 1108.00 | 1105.82 | 0.197 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 3 | 2021-03-16 | Tuesday | 1117.00 | 1113.24 | 0.337 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 4 | 2021-03-17 | Wednesday | 1125.00 | 1120.67 | 0.385 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 5 | 2021-03-18 | Thursday | 1132.00 | 1128.10 | 0.344 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 6 | 2021-03-19 | Friday | 1141.00 | 1135.55 | 0.478 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 7 | 2021-03-20 | Saturday | 1148.00 | 1143.00 | 0.436 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 8 | 2021-03-21 | Sunday | 1154.00 | 1150.46 | 0.307 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 9 | 2021-03-22 | Monday | 1161.00 | 1157.93 | 0.265 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 10 | 2021-03-23 | Tuesday | 1169.00 | 1165.40 | 0.308 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 11 | 2021-03-24 | Wednesday | 1177.00 | 1172.89 | 0.349 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 12 | 2021-03-25 | Thursday | 1184.00 | 1180.38 | 0.306 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 13 | 2021-03-26 | Friday | 1189.00 | 1187.88 | 0.094 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 14 | 2021-03-27 | Saturday | 1193.00 | 1195.39 | 0.2 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 15 | 2021-03-28 | Sunday | 1200.00 | 1202.90 | 0.242 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 16 | 2021-03-29 | Monday | 1205.00 | 1210.43 | 0.45 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 17 | 2021-03-30 | Tuesday | 1213.00 | 1217.96 | 0.409 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 18 | 2021-03-31 | Wednesday | 1222.00 | 1225.50 | 0.286 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 19 | 2021-04-01 | Thursday | 1228.00 | 1233.04 | 0.411 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 20 | 2021-04-02 | Friday | 1237.00 | 1240.59 | 0.291 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 21 | 2021-04-03 | Saturday | 1244.00 | 1248.16 | 0.334 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 22 | 2021-04-04 | Sunday | 1250.00 | 1255.72 | 0.458 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 23 | 2021-04-05 | Monday | 1258.00 | 1263.30 | 0.421 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 24 | 2021-04-06 | Tuesday | 1267.00 | 1270.88 | 0.306 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 25 | 2021-04-07 | Wednesday | 1275.00 | 1278.47 | 0.272 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 26 | 2021-04-08 | Thursday | 1282.00 | 1286.07 | 0.318 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
## | 27 | 2021-04-09 | Friday | 1290.00 | 1293.68 | 0.285 % |
## +----+------------+-------------------------+-------------+------------------+-----------------+
print(ascii(data.frame(FD,forecating_date=forecasting_data_by_name,forecasting_by_holt=tail(forecasting_holt$mean,N_forecasting_days),Lower=tail(forecasting_holt$lower,N_forecasting_days),Upper=tail(forecasting_holt$upper,N_forecasting_days))), type = "rest")
##
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | | FD | forecating_date | forecasting_by_holt | Lower.80. | Lower.95. | Upper.80. | Upper.95. |
## +====+============+=================+=====================+===========+===========+===========+===========+
## | 1 | 2021-04-10 | Saturday | 1301.29 | 1216.95 | 1172.69 | 1386.53 | 1432.00 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 2 | 2021-04-11 | Sunday | 1308.91 | 1220.55 | 1174.18 | 1398.26 | 1445.94 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 3 | 2021-04-12 | Monday | 1316.54 | 1224.08 | 1175.59 | 1410.07 | 1460.00 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 4 | 2021-04-13 | Tuesday | 1324.17 | 1227.56 | 1176.90 | 1421.95 | 1474.17 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 5 | 2021-04-14 | Wednesday | 1331.81 | 1230.97 | 1178.13 | 1433.92 | 1488.46 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 6 | 2021-04-15 | Thursday | 1339.46 | 1234.34 | 1179.27 | 1445.95 | 1502.85 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 7 | 2021-04-16 | Friday | 1347.12 | 1237.65 | 1180.33 | 1458.06 | 1517.36 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 8 | 2021-04-17 | Saturday | 1354.78 | 1240.90 | 1181.30 | 1470.25 | 1531.98 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 9 | 2021-04-18 | Sunday | 1362.45 | 1244.11 | 1182.18 | 1482.50 | 1546.71 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 10 | 2021-04-19 | Monday | 1370.13 | 1247.25 | 1182.99 | 1494.83 | 1561.55 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 11 | 2021-04-20 | Tuesday | 1377.81 | 1250.35 | 1183.71 | 1507.23 | 1576.50 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 12 | 2021-04-21 | Wednesday | 1385.50 | 1253.40 | 1184.36 | 1519.71 | 1591.55 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 13 | 2021-04-22 | Thursday | 1393.20 | 1256.39 | 1184.92 | 1532.25 | 1606.72 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 14 | 2021-04-23 | Friday | 1400.91 | 1259.33 | 1185.41 | 1544.87 | 1621.98 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 15 | 2021-04-24 | Saturday | 1408.62 | 1262.22 | 1185.82 | 1557.55 | 1637.36 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 16 | 2021-04-25 | Sunday | 1416.34 | 1265.07 | 1186.15 | 1570.31 | 1652.84 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 17 | 2021-04-26 | Monday | 1424.07 | 1267.86 | 1186.40 | 1583.13 | 1668.42 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 18 | 2021-04-27 | Tuesday | 1431.80 | 1270.60 | 1186.58 | 1596.02 | 1684.11 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 19 | 2021-04-28 | Wednesday | 1439.54 | 1273.30 | 1186.69 | 1608.98 | 1699.90 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 20 | 2021-04-29 | Thursday | 1447.28 | 1275.95 | 1186.72 | 1622.01 | 1715.79 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 21 | 2021-04-30 | Friday | 1455.04 | 1278.55 | 1186.67 | 1635.11 | 1731.78 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
plot(forecasting_holt)
x1_test <- ts(testing_data, start =(rows-validation_data_days+1) )
lines(x1_test, col='red',lwd=2)

graph3<-autoplot(forecasting_holt,xlab = paste ("Time in", frequency ,y_lab , sep=" "), ylab=y_lab)
graph3

#Auto arima model
##################
require(tseries) # need to install tseries tj test Stationarity in time series
paste ("tests For Check Stationarity in series ==> ",y_lab, sep=" ")
## [1] "tests For Check Stationarity in series ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
kpss.test(data_series) # applay kpss test
## Warning in kpss.test(data_series): p-value smaller than printed p-value
##
## KPSS Test for Level Stationarity
##
## data: data_series
## KPSS Level = 4.7985, Truncation lag parameter = 5, p-value = 0.01
pp.test(data_series) # applay pp test
## Warning in pp.test(data_series): p-value greater than printed p-value
##
## Phillips-Perron Unit Root Test
##
## data: data_series
## Dickey-Fuller Z(alpha) = 1.8708, Truncation lag parameter = 5, p-value
## = 0.99
## alternative hypothesis: stationary
adf.test(data_series) # applay adf test
## Warning in adf.test(data_series): p-value greater than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: data_series
## Dickey-Fuller = -0.007646, Lag order = 7, p-value = 0.99
## alternative hypothesis: stationary
ndiffs(data_series) # Doing first diffrencing on data
## [1] 2
#Taking the first difference
diff1_x1<-diff(data_series)
autoplot(diff1_x1, xlab = paste ("Time in", frequency ,y_lab , sep=" "), ylab=y_lab,main = "1nd differenced series")

##Testing the stationary of the first differenced series
paste ("tests For Check Stationarity in series after taking first differences in ==> ",y_lab, sep=" ")
## [1] "tests For Check Stationarity in series after taking first differences in ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
kpss.test(diff1_x1) # applay kpss test after taking first differences
## Warning in kpss.test(diff1_x1): p-value smaller than printed p-value
##
## KPSS Test for Level Stationarity
##
## data: diff1_x1
## KPSS Level = 4.1708, Truncation lag parameter = 5, p-value = 0.01
pp.test(diff1_x1) # applay pp test after taking first differences
## Warning in pp.test(diff1_x1): p-value smaller than printed p-value
##
## Phillips-Perron Unit Root Test
##
## data: diff1_x1
## Dickey-Fuller Z(alpha) = -190.11, Truncation lag parameter = 5, p-value
## = 0.01
## alternative hypothesis: stationary
adf.test(diff1_x1) # applay adf test after taking first differences
##
## Augmented Dickey-Fuller Test
##
## data: diff1_x1
## Dickey-Fuller = -2.7174, Lag order = 7, p-value = 0.2741
## alternative hypothesis: stationary
#Taking the second difference
diff2_x1=diff(diff1_x1)
autoplot(diff2_x1, xlab = paste ("Time in", frequency ,y_lab , sep=" "), ylab=y_lab ,main = "2nd differenced series")

##Testing the stationary of the first differenced series
paste ("tests For Check Stationarity in series after taking Second differences in",y_lab, sep=" ")
## [1] "tests For Check Stationarity in series after taking Second differences in Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
kpss.test(diff2_x1) # applay kpss test after taking Second differences
## Warning in kpss.test(diff2_x1): p-value greater than printed p-value
##
## KPSS Test for Level Stationarity
##
## data: diff2_x1
## KPSS Level = 0.017285, Truncation lag parameter = 5, p-value = 0.1
pp.test(diff2_x1) # applay pp test after taking Second differences
## Warning in pp.test(diff2_x1): p-value smaller than printed p-value
##
## Phillips-Perron Unit Root Test
##
## data: diff2_x1
## Dickey-Fuller Z(alpha) = -430.75, Truncation lag parameter = 5, p-value
## = 0.01
## alternative hypothesis: stationary
adf.test(diff2_x1) # applay adf test after taking Second differences
## Warning in adf.test(diff2_x1): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: diff2_x1
## Dickey-Fuller = -8.865, Lag order = 7, p-value = 0.01
## alternative hypothesis: stationary
####Fitting an ARIMA Model
#1. Using auto arima function
model1 <- auto.arima(data_series,stepwise=FALSE, approximation=FALSE, trace=T, test = c("kpss", "adf", "pp")) #applaying auto arima
##
## ARIMA(0,2,0) : 1749.092
## ARIMA(0,2,1) : 1590.186
## ARIMA(0,2,2) : 1592.005
## ARIMA(0,2,3) : 1592.883
## ARIMA(0,2,4) : 1593.532
## ARIMA(0,2,5) : 1595.572
## ARIMA(1,2,0) : 1669.178
## ARIMA(1,2,1) : 1592.036
## ARIMA(1,2,2) : 1592.234
## ARIMA(1,2,3) : 1593.848
## ARIMA(1,2,4) : 1595.583
## ARIMA(2,2,0) : 1619.543
## ARIMA(2,2,1) : 1592.929
## ARIMA(2,2,2) : 1593.835
## ARIMA(2,2,3) : 1595.903
## ARIMA(3,2,0) : 1609.165
## ARIMA(3,2,1) : 1593.557
## ARIMA(3,2,2) : 1595.614
## ARIMA(4,2,0) : 1605.885
## ARIMA(4,2,1) : 1595.606
## ARIMA(5,2,0) : 1604.113
##
##
##
## Best model: ARIMA(0,2,1)
model1 # show the result of autoarima
## Series: data_series
## ARIMA(0,2,1)
##
## Coefficients:
## ma1
## -0.7620
## s.e. 0.0353
##
## sigma^2 estimated as 4.518: log likelihood=-793.08
## AIC=1590.15 AICc=1590.19 BIC=1597.95
#Make changes in the source of auto arima to run the best model
arima.string <- function (object, padding = FALSE)
{
order <- object$arma[c(1, 6, 2, 3, 7, 4, 5)]
m <- order[7]
result <- paste("ARIMA(", order[1], ",", order[2], ",",
order[3], ")", sep = "")
if (m > 1 && sum(order[4:6]) > 0) {
result <- paste(result, "(", order[4], ",", order[5],
",", order[6], ")[", m, "]", sep = "")
}
if (padding && m > 1 && sum(order[4:6]) == 0) {
result <- paste(result, " ", sep = "")
if (m <= 9) {
result <- paste(result, " ", sep = "")
}
else if (m <= 99) {
result <- paste(result, " ", sep = "")
}
else {
result <- paste(result, " ", sep = "")
}
}
if (!is.null(object$xreg)) {
if (NCOL(object$xreg) == 1 && is.element("drift", names(object$coef))) {
result <- paste(result, "with drift ")
}
else {
result <- paste("Regression with", result, "errors")
}
}
else {
if (is.element("constant", names(object$coef)) || is.element("intercept",
names(object$coef))) {
result <- paste(result, "with non-zero mean")
}
else if (order[2] == 0 && order[5] == 0) {
result <- paste(result, "with zero mean ")
}
else {
result <- paste(result, " ")
}
}
if (!padding) {
result <- gsub("[ ]*$", "", result)
}
return(result)
}
bestmodel <- arima.string(model1, padding = TRUE)
bestmodel <- substring(bestmodel,7,11)
bestmodel <- gsub(" ", "", bestmodel)
bestmodel <- gsub(")", "", bestmodel)
bestmodel <- strsplit(bestmodel, ",")[[1]]
bestmodel <- c(strtoi(bestmodel[1]),strtoi(bestmodel[2]),strtoi(bestmodel[3]))
bestmodel
## [1] 0 2 1
strtoi(bestmodel[3])
## [1] 1
#2. Using ACF and PACF Function
#par(mfrow=c(1,2)) # Code for making two plot in one graph
acf(diff2_x1,xlab = paste ("Time in", frequency ,y_lab , sep=" ") , ylab=y_lab, main=paste("ACF-2nd differenced series ",y_lab, sep=" ",lag.max=20)) # plot ACF "auto correlation function after taking second diffrences

pacf(diff2_x1,xlab = paste ("Time in", frequency ,y_lab , sep=" "), ylab=y_lab,main=paste("PACF-2nd differenced series ",y_lab, sep=" ",lag.max=20)) # plot PACF " Partial auto correlation function after taking second diffrences

library(forecast) # install library forecast
x1_model1= arima(data_series, order=c(bestmodel)) # Run Best model of auto arima for forecasting
x1_model1 # Show result of best model of auto arima
##
## Call:
## arima(x = data_series, order = c(bestmodel))
##
## Coefficients:
## ma1
## -0.7620
## s.e. 0.0353
##
## sigma^2 estimated as 4.506: log likelihood = -793.08, aic = 1590.15
paste ("accuracy of autoarima Model For ==> ",y_lab, sep=" ")
## [1] "accuracy of autoarima Model For ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
accuracy(x1_model1) # aacuracy of best model from auto arima
## ME RMSE MAE MPE MAPE MASE
## Training set 0.08525018 2.116897 1.198072 0.3986534 2.310343 0.4019198
## ACF1
## Training set 0.01326598
x1_model1$x # show result of best model from auto arima
## NULL
checkresiduals(x1_model1,xlab = paste ("Time in", frequency ,y_lab , sep=" "), ylab=y_lab) # checkresiduals from best model from using auto arima

##
## Ljung-Box test
##
## data: Residuals from ARIMA(0,2,1)
## Q* = 13.971, df = 9, p-value = 0.1233
##
## Model df: 1. Total lags used: 10
paste("Box-Ljung test , Ljung-Box test For Modelling for ==> ",y_lab, sep=" ")
## [1] "Box-Ljung test , Ljung-Box test For Modelling for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
Box.test(x1_model1$residuals^2, lag=20, type="Ljung-Box") # Do test for resdulas by using Box-Ljung test , Ljung-Box test For Modelling
##
## Box-Ljung test
##
## data: x1_model1$residuals^2
## X-squared = 22.165, df = 20, p-value = 0.3316
library(tseries)
jarque.bera.test(x1_model1$residuals) # Do test jarque.bera.test
##
## Jarque Bera Test
##
## data: x1_model1$residuals
## X-squared = 3761.2, df = 2, p-value < 2.2e-16
#Actual Vs Fitted
plot(data_series, col='red',lwd=2, main="Actual vs Fitted Plot", xlab='Time in (days)', ylab=y_lab) # plot actual and Fitted model
lines(fitted(x1_model1), col='black')

#Test data
x1_test <- ts(testing_data, start =(rows-validation_data_days+1) ) # make testing data in time series and start from rows-6
forecasting_auto_arima <- forecast(x1_model1, h=N_forecasting_days+validation_data_days)
validation_forecast<-head(forecasting_auto_arima$mean,validation_data_days)
MAPE_Per_Day<-round(abs(((testing_data-validation_forecast)/testing_data)*100) ,3)
paste ("MAPE % For ",validation_data_days,frequency,"by using bats Model for ==> ",y_lab, sep=" ")
## [1] "MAPE % For 27 days by using bats Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
MAPE_Mean_All.ARIMA_Model<-round(mean(MAPE_Per_Day),3)
MAPE_Mean_All.ARIMA<-paste(round(mean(MAPE_Per_Day),3),"% MAPE ",validation_data_days,frequency,y_lab,sep=" ")
MAPE_auto_arima<-paste(round(MAPE_Per_Day,3),"%")
MAPE_auto.arima_Model<-paste(MAPE_Per_Day ,"%")
paste (" MAPE that's Error of Forecasting for ",validation_data_days," days in bats Model for ==> ",y_lab, sep=" ")
## [1] " MAPE that's Error of Forecasting for 27 days in bats Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
paste(MAPE_Mean_All.ARIMA,"%")
## [1] "0.281 % MAPE 27 days Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk %"
paste ("MAPE that's Error of Forecasting day by day for ",validation_data_days," days in bats Model for ==> ",y_lab, sep=" ")
## [1] "MAPE that's Error of Forecasting day by day for 27 days in bats Model for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
print(ascii(data.frame(date_auto.arima=validation_dates,validation_data_by_name,actual_data=testing_data,forecasting_auto.arima=validation_forecast,MAPE_auto.arima_Model)), type = "rest")
##
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | | date_auto.arima | validation_data_by_name | actual_data | forecasting_auto.arima | MAPE_auto.arima_Model |
## +====+=================+=========================+=============+========================+=======================+
## | 1 | 2021-03-14 | Sunday | 1098.00 | 1098.45 | 0.041 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 2 | 2021-03-15 | Monday | 1108.00 | 1105.89 | 0.19 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 3 | 2021-03-16 | Tuesday | 1117.00 | 1113.34 | 0.328 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 4 | 2021-03-17 | Wednesday | 1125.00 | 1120.79 | 0.374 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 5 | 2021-03-18 | Thursday | 1132.00 | 1128.24 | 0.332 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 6 | 2021-03-19 | Friday | 1141.00 | 1135.68 | 0.466 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 7 | 2021-03-20 | Saturday | 1148.00 | 1143.13 | 0.424 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 8 | 2021-03-21 | Sunday | 1154.00 | 1150.58 | 0.297 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 9 | 2021-03-22 | Monday | 1161.00 | 1158.02 | 0.256 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 10 | 2021-03-23 | Tuesday | 1169.00 | 1165.47 | 0.302 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 11 | 2021-03-24 | Wednesday | 1177.00 | 1172.92 | 0.347 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 12 | 2021-03-25 | Thursday | 1184.00 | 1180.37 | 0.307 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 13 | 2021-03-26 | Friday | 1189.00 | 1187.81 | 0.1 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 14 | 2021-03-27 | Saturday | 1193.00 | 1195.26 | 0.19 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 15 | 2021-03-28 | Sunday | 1200.00 | 1202.71 | 0.226 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 16 | 2021-03-29 | Monday | 1205.00 | 1210.16 | 0.428 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 17 | 2021-03-30 | Tuesday | 1213.00 | 1217.60 | 0.379 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 18 | 2021-03-31 | Wednesday | 1222.00 | 1225.05 | 0.25 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 19 | 2021-04-01 | Thursday | 1228.00 | 1232.50 | 0.366 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 20 | 2021-04-02 | Friday | 1237.00 | 1239.94 | 0.238 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 21 | 2021-04-03 | Saturday | 1244.00 | 1247.39 | 0.273 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 22 | 2021-04-04 | Sunday | 1250.00 | 1254.84 | 0.387 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 23 | 2021-04-05 | Monday | 1258.00 | 1262.29 | 0.341 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 24 | 2021-04-06 | Tuesday | 1267.00 | 1269.73 | 0.216 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 25 | 2021-04-07 | Wednesday | 1275.00 | 1277.18 | 0.171 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 26 | 2021-04-08 | Thursday | 1282.00 | 1284.63 | 0.205 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
## | 27 | 2021-04-09 | Friday | 1290.00 | 1292.07 | 0.161 % |
## +----+-----------------+-------------------------+-------------+------------------------+-----------------------+
print(ascii(data.frame(FD,forecating_date=forecasting_data_by_name,forecasting_by_auto.arima=tail(forecasting_auto_arima$mean,N_forecasting_days),Lower=tail(forecasting_auto_arima$lower,N_forecasting_days),Upper=tail(forecasting_auto_arima$upper,N_forecasting_days))), type = "rest")
##
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | | FD | forecating_date | forecasting_by_auto.arima | Lower.80. | Lower.95. | Upper.80. | Upper.95. |
## +====+============+=================+===========================+===========+===========+===========+===========+
## | 1 | 2021-04-10 | Saturday | 1299.52 | 1232.85 | 1197.56 | 1366.19 | 1401.48 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 2 | 2021-04-11 | Sunday | 1306.97 | 1237.12 | 1200.14 | 1376.82 | 1413.80 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 3 | 2021-04-12 | Monday | 1314.42 | 1241.33 | 1202.64 | 1387.50 | 1426.19 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 4 | 2021-04-13 | Tuesday | 1321.86 | 1245.50 | 1205.07 | 1398.23 | 1438.66 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 5 | 2021-04-14 | Wednesday | 1329.31 | 1249.61 | 1207.43 | 1409.01 | 1451.20 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 6 | 2021-04-15 | Thursday | 1336.76 | 1253.69 | 1209.71 | 1419.83 | 1463.81 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 7 | 2021-04-16 | Friday | 1344.21 | 1257.71 | 1211.92 | 1430.70 | 1476.49 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 8 | 2021-04-17 | Saturday | 1351.65 | 1261.69 | 1214.07 | 1441.61 | 1489.24 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 9 | 2021-04-18 | Sunday | 1359.10 | 1265.63 | 1216.14 | 1452.57 | 1502.06 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 10 | 2021-04-19 | Monday | 1366.55 | 1269.52 | 1218.15 | 1463.58 | 1514.94 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 11 | 2021-04-20 | Tuesday | 1373.99 | 1273.36 | 1220.09 | 1474.63 | 1527.90 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 12 | 2021-04-21 | Wednesday | 1381.44 | 1277.17 | 1221.96 | 1485.72 | 1540.92 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 13 | 2021-04-22 | Thursday | 1388.89 | 1280.93 | 1223.77 | 1496.85 | 1554.00 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 14 | 2021-04-23 | Friday | 1396.34 | 1284.64 | 1225.52 | 1508.03 | 1567.16 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 15 | 2021-04-24 | Saturday | 1403.78 | 1288.32 | 1227.20 | 1519.25 | 1580.37 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 16 | 2021-04-25 | Sunday | 1411.23 | 1291.95 | 1228.81 | 1530.51 | 1593.65 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 17 | 2021-04-26 | Monday | 1418.68 | 1295.55 | 1230.37 | 1541.81 | 1606.99 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 18 | 2021-04-27 | Tuesday | 1426.12 | 1299.10 | 1231.86 | 1553.15 | 1620.39 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 19 | 2021-04-28 | Wednesday | 1433.57 | 1302.61 | 1233.29 | 1564.53 | 1633.86 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 20 | 2021-04-29 | Thursday | 1441.02 | 1306.09 | 1234.66 | 1575.95 | 1647.38 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 21 | 2021-04-30 | Friday | 1448.47 | 1309.52 | 1235.97 | 1587.41 | 1660.97 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
plot(forecasting_auto_arima)
x1_test <- ts(testing_data, start =(rows-validation_data_days+1) )
lines(x1_test, col='red',lwd=2)

graph4<-autoplot(forecasting_auto_arima,xlab = paste ("Time in", frequency ,y_lab , sep=" "), ylab=y_lab)
graph4

MAPE_Mean_All.ARIMA
## [1] "0.281 % MAPE 27 days Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
# Table for MAPE For counry
best_recommended_model <- min(MAPE_Mean_All_NNAR,MAPE_Mean_All.bats_Model,MAPE_Mean_All.TBATS_Model,MAPE_Mean_All.Holt_Model,MAPE_Mean_All.ARIMA_Model)
paste("System Choose Least Error ==> ( MAPE %) of Forecasting by using bats model and BATS Model, Holt's Linear Models , and autoarima for ==> ", y_lab , sep=" ")
## [1] "System Choose Least Error ==> ( MAPE %) of Forecasting by using bats model and BATS Model, Holt's Linear Models , and autoarima for ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
best_recommended_model
## [1] 0.238
x1<-if(best_recommended_model >= MAPE_Mean_All.bats_Model) {paste("BATS Model")}
x2<-if(best_recommended_model >= MAPE_Mean_All.TBATS_Model) {paste("TBATS Model")}
x3<-if(best_recommended_model >= MAPE_Mean_All.Holt_Model) {paste("Holt Model")}
x4<-if(best_recommended_model >= MAPE_Mean_All.ARIMA_Model) {paste("ARIMA Model")}
x5<-if(best_recommended_model >= MAPE_Mean_All_NNAR) {paste("NNAR Model")}
panderOptions('table.split.table', Inf)
paste("Forecasting by using BATS Model ==> ", y_lab , sep=" ")
## [1] "Forecasting by using BATS Model ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
print(ascii(data.frame(FD,forecating_date=forecasting_data_by_name,forecasting_by_bats=tail(forecasting_bats$mean,N_forecasting_days),lower=tail(forecasting_bats$lower,N_forecasting_days),Upper=tail(forecasting_bats$lower,N_forecasting_days))), type = "rest")
##
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | | FD | forecating_date | forecasting_by_bats | lower.80. | lower.95. | Upper.80. | Upper.95. |
## +====+============+=================+=====================+===========+===========+===========+===========+
## | 1 | 2021-04-10 | Saturday | 1298.32 | 1233.45 | 1199.12 | 1233.45 | 1199.12 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 2 | 2021-04-11 | Sunday | 1305.72 | 1237.78 | 1201.82 | 1237.78 | 1201.82 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 3 | 2021-04-12 | Monday | 1313.13 | 1242.07 | 1204.45 | 1242.07 | 1204.45 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 4 | 2021-04-13 | Tuesday | 1320.53 | 1246.31 | 1207.01 | 1246.31 | 1207.01 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 5 | 2021-04-14 | Wednesday | 1327.93 | 1250.50 | 1209.51 | 1250.50 | 1209.51 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 6 | 2021-04-15 | Thursday | 1335.34 | 1254.65 | 1211.93 | 1254.65 | 1211.93 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 7 | 2021-04-16 | Friday | 1342.74 | 1258.75 | 1214.29 | 1258.75 | 1214.29 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 8 | 2021-04-17 | Saturday | 1350.14 | 1262.81 | 1216.58 | 1262.81 | 1216.58 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 9 | 2021-04-18 | Sunday | 1357.55 | 1266.83 | 1218.80 | 1266.83 | 1218.80 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 10 | 2021-04-19 | Monday | 1364.95 | 1270.80 | 1220.96 | 1270.80 | 1220.96 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 11 | 2021-04-20 | Tuesday | 1372.35 | 1274.73 | 1223.06 | 1274.73 | 1223.06 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 12 | 2021-04-21 | Wednesday | 1379.76 | 1278.62 | 1225.09 | 1278.62 | 1225.09 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 13 | 2021-04-22 | Thursday | 1387.16 | 1282.47 | 1227.06 | 1282.47 | 1227.06 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 14 | 2021-04-23 | Friday | 1394.56 | 1286.28 | 1228.96 | 1286.28 | 1228.96 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 15 | 2021-04-24 | Saturday | 1401.97 | 1290.05 | 1230.81 | 1290.05 | 1230.81 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 16 | 2021-04-25 | Sunday | 1409.37 | 1293.78 | 1232.59 | 1293.78 | 1232.59 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 17 | 2021-04-26 | Monday | 1416.78 | 1297.47 | 1234.32 | 1297.47 | 1234.32 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 18 | 2021-04-27 | Tuesday | 1424.18 | 1301.12 | 1235.98 | 1301.12 | 1235.98 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 19 | 2021-04-28 | Wednesday | 1431.58 | 1304.74 | 1237.59 | 1304.74 | 1237.59 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 20 | 2021-04-29 | Thursday | 1438.99 | 1308.31 | 1239.14 | 1308.31 | 1239.14 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 21 | 2021-04-30 | Friday | 1446.39 | 1311.85 | 1240.63 | 1311.85 | 1240.63 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
paste("Forecasting by using TBATS Model ==> ", y_lab , sep=" ")
## [1] "Forecasting by using TBATS Model ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
print(ascii(data.frame(FD,forecating_date=forecasting_data_by_name,forecasting_by_TBATS=tail(forecasting_tbats$mean,N_forecasting_days),Lower=tail(forecasting_tbats$lower,N_forecasting_days),Upper=tail(forecasting_tbats$upper,N_forecasting_days))), type = "rest")
##
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | | FD | forecating_date | forecasting_by_TBATS | Lower.80. | Lower.95. | Upper.80. | Upper.95. |
## +====+============+=================+======================+===========+===========+===========+===========+
## | 1 | 2021-04-10 | Saturday | 1297.13 | 1282.84 | 1275.27 | 1311.42 | 1318.99 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 2 | 2021-04-11 | Sunday | 1304.79 | 1290.25 | 1282.55 | 1319.33 | 1327.03 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 3 | 2021-04-12 | Monday | 1312.10 | 1297.31 | 1289.49 | 1326.89 | 1334.71 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 4 | 2021-04-13 | Tuesday | 1319.01 | 1303.98 | 1296.02 | 1334.03 | 1341.99 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 5 | 2021-04-14 | Wednesday | 1326.15 | 1310.88 | 1302.80 | 1341.41 | 1349.49 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 6 | 2021-04-15 | Thursday | 1333.69 | 1318.19 | 1309.99 | 1349.18 | 1357.39 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 7 | 2021-04-16 | Friday | 1341.35 | 1325.62 | 1317.30 | 1357.07 | 1365.40 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 8 | 2021-04-17 | Saturday | 1349.01 | 1333.06 | 1324.61 | 1364.96 | 1373.40 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 9 | 2021-04-18 | Sunday | 1356.32 | 1340.14 | 1331.58 | 1372.49 | 1381.05 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 10 | 2021-04-19 | Monday | 1363.22 | 1346.83 | 1338.15 | 1379.62 | 1388.30 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 11 | 2021-04-20 | Tuesday | 1370.36 | 1353.76 | 1344.96 | 1386.97 | 1395.77 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 12 | 2021-04-21 | Wednesday | 1377.91 | 1361.08 | 1352.18 | 1394.73 | 1403.63 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 13 | 2021-04-22 | Thursday | 1385.57 | 1368.53 | 1359.52 | 1402.60 | 1411.61 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 14 | 2021-04-23 | Friday | 1393.23 | 1375.99 | 1366.86 | 1410.47 | 1419.59 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 15 | 2021-04-24 | Saturday | 1400.54 | 1383.09 | 1373.86 | 1417.98 | 1427.21 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 16 | 2021-04-25 | Sunday | 1407.44 | 1389.80 | 1380.45 | 1425.09 | 1434.43 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 17 | 2021-04-26 | Monday | 1414.58 | 1396.74 | 1387.29 | 1432.43 | 1441.88 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 18 | 2021-04-27 | Tuesday | 1422.12 | 1404.08 | 1394.53 | 1440.17 | 1449.72 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 19 | 2021-04-28 | Wednesday | 1429.78 | 1411.55 | 1401.89 | 1448.02 | 1457.68 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 20 | 2021-04-29 | Thursday | 1437.44 | 1419.01 | 1409.26 | 1455.87 | 1465.63 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
## | 21 | 2021-04-30 | Friday | 1444.75 | 1426.13 | 1416.27 | 1463.37 | 1473.23 |
## +----+------------+-----------------+----------------------+-----------+-----------+-----------+-----------+
paste("Forecasting by using Holt's Linear Trend Model ==> ", y_lab , sep=" ")
## [1] "Forecasting by using Holt's Linear Trend Model ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
print(ascii(data.frame(FD,forecating_date=forecasting_data_by_name,forecasting_by_holt=tail(forecasting_holt$mean,N_forecasting_days),Lower=tail(forecasting_holt$lower,N_forecasting_days),Upper=tail(forecasting_holt$upper,N_forecasting_days))), type = "rest")
##
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | | FD | forecating_date | forecasting_by_holt | Lower.80. | Lower.95. | Upper.80. | Upper.95. |
## +====+============+=================+=====================+===========+===========+===========+===========+
## | 1 | 2021-04-10 | Saturday | 1301.29 | 1216.95 | 1172.69 | 1386.53 | 1432.00 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 2 | 2021-04-11 | Sunday | 1308.91 | 1220.55 | 1174.18 | 1398.26 | 1445.94 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 3 | 2021-04-12 | Monday | 1316.54 | 1224.08 | 1175.59 | 1410.07 | 1460.00 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 4 | 2021-04-13 | Tuesday | 1324.17 | 1227.56 | 1176.90 | 1421.95 | 1474.17 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 5 | 2021-04-14 | Wednesday | 1331.81 | 1230.97 | 1178.13 | 1433.92 | 1488.46 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 6 | 2021-04-15 | Thursday | 1339.46 | 1234.34 | 1179.27 | 1445.95 | 1502.85 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 7 | 2021-04-16 | Friday | 1347.12 | 1237.65 | 1180.33 | 1458.06 | 1517.36 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 8 | 2021-04-17 | Saturday | 1354.78 | 1240.90 | 1181.30 | 1470.25 | 1531.98 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 9 | 2021-04-18 | Sunday | 1362.45 | 1244.11 | 1182.18 | 1482.50 | 1546.71 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 10 | 2021-04-19 | Monday | 1370.13 | 1247.25 | 1182.99 | 1494.83 | 1561.55 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 11 | 2021-04-20 | Tuesday | 1377.81 | 1250.35 | 1183.71 | 1507.23 | 1576.50 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 12 | 2021-04-21 | Wednesday | 1385.50 | 1253.40 | 1184.36 | 1519.71 | 1591.55 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 13 | 2021-04-22 | Thursday | 1393.20 | 1256.39 | 1184.92 | 1532.25 | 1606.72 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 14 | 2021-04-23 | Friday | 1400.91 | 1259.33 | 1185.41 | 1544.87 | 1621.98 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 15 | 2021-04-24 | Saturday | 1408.62 | 1262.22 | 1185.82 | 1557.55 | 1637.36 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 16 | 2021-04-25 | Sunday | 1416.34 | 1265.07 | 1186.15 | 1570.31 | 1652.84 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 17 | 2021-04-26 | Monday | 1424.07 | 1267.86 | 1186.40 | 1583.13 | 1668.42 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 18 | 2021-04-27 | Tuesday | 1431.80 | 1270.60 | 1186.58 | 1596.02 | 1684.11 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 19 | 2021-04-28 | Wednesday | 1439.54 | 1273.30 | 1186.69 | 1608.98 | 1699.90 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 20 | 2021-04-29 | Thursday | 1447.28 | 1275.95 | 1186.72 | 1622.01 | 1715.79 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
## | 21 | 2021-04-30 | Friday | 1455.04 | 1278.55 | 1186.67 | 1635.11 | 1731.78 |
## +----+------------+-----------------+---------------------+-----------+-----------+-----------+-----------+
paste("Forecasting by using ARIMA Model ==> ", y_lab , sep=" ")
## [1] "Forecasting by using ARIMA Model ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
print(ascii(data.frame(FD,forecating_date=forecasting_data_by_name,forecasting_by_auto.arima=tail(forecasting_auto_arima$mean,N_forecasting_days),Lower=tail(forecasting_auto_arima$lower,N_forecasting_days),Upper=tail(forecasting_auto_arima$upper,N_forecasting_days))), type = "rest")
##
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | | FD | forecating_date | forecasting_by_auto.arima | Lower.80. | Lower.95. | Upper.80. | Upper.95. |
## +====+============+=================+===========================+===========+===========+===========+===========+
## | 1 | 2021-04-10 | Saturday | 1299.52 | 1232.85 | 1197.56 | 1366.19 | 1401.48 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 2 | 2021-04-11 | Sunday | 1306.97 | 1237.12 | 1200.14 | 1376.82 | 1413.80 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 3 | 2021-04-12 | Monday | 1314.42 | 1241.33 | 1202.64 | 1387.50 | 1426.19 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 4 | 2021-04-13 | Tuesday | 1321.86 | 1245.50 | 1205.07 | 1398.23 | 1438.66 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 5 | 2021-04-14 | Wednesday | 1329.31 | 1249.61 | 1207.43 | 1409.01 | 1451.20 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 6 | 2021-04-15 | Thursday | 1336.76 | 1253.69 | 1209.71 | 1419.83 | 1463.81 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 7 | 2021-04-16 | Friday | 1344.21 | 1257.71 | 1211.92 | 1430.70 | 1476.49 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 8 | 2021-04-17 | Saturday | 1351.65 | 1261.69 | 1214.07 | 1441.61 | 1489.24 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 9 | 2021-04-18 | Sunday | 1359.10 | 1265.63 | 1216.14 | 1452.57 | 1502.06 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 10 | 2021-04-19 | Monday | 1366.55 | 1269.52 | 1218.15 | 1463.58 | 1514.94 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 11 | 2021-04-20 | Tuesday | 1373.99 | 1273.36 | 1220.09 | 1474.63 | 1527.90 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 12 | 2021-04-21 | Wednesday | 1381.44 | 1277.17 | 1221.96 | 1485.72 | 1540.92 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 13 | 2021-04-22 | Thursday | 1388.89 | 1280.93 | 1223.77 | 1496.85 | 1554.00 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 14 | 2021-04-23 | Friday | 1396.34 | 1284.64 | 1225.52 | 1508.03 | 1567.16 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 15 | 2021-04-24 | Saturday | 1403.78 | 1288.32 | 1227.20 | 1519.25 | 1580.37 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 16 | 2021-04-25 | Sunday | 1411.23 | 1291.95 | 1228.81 | 1530.51 | 1593.65 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 17 | 2021-04-26 | Monday | 1418.68 | 1295.55 | 1230.37 | 1541.81 | 1606.99 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 18 | 2021-04-27 | Tuesday | 1426.12 | 1299.10 | 1231.86 | 1553.15 | 1620.39 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 19 | 2021-04-28 | Wednesday | 1433.57 | 1302.61 | 1233.29 | 1564.53 | 1633.86 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 20 | 2021-04-29 | Thursday | 1441.02 | 1306.09 | 1234.66 | 1575.95 | 1647.38 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
## | 21 | 2021-04-30 | Friday | 1448.47 | 1309.52 | 1235.97 | 1587.41 | 1660.97 |
## +----+------------+-----------------+---------------------------+-----------+-----------+-----------+-----------+
paste("Forecasting by using NNAR Model ==> ", y_lab , sep=" ")
## [1] "Forecasting by using NNAR Model ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk"
print(ascii(data.frame(FD,forecating_date=forecasting_data_by_name,forecasting_by_NNAR=tail(forecasting_NNAR$mean,N_forecasting_days))), type = "rest")
##
## +----+------------+-----------------+---------------------+
## | | FD | forecating_date | forecasting_by_NNAR |
## +====+============+=================+=====================+
## | 1 | 2021-04-10 | Saturday | 1167.16 |
## +----+------------+-----------------+---------------------+
## | 2 | 2021-04-11 | Sunday | 1168.17 |
## +----+------------+-----------------+---------------------+
## | 3 | 2021-04-12 | Monday | 1169.11 |
## +----+------------+-----------------+---------------------+
## | 4 | 2021-04-13 | Tuesday | 1169.98 |
## +----+------------+-----------------+---------------------+
## | 5 | 2021-04-14 | Wednesday | 1170.80 |
## +----+------------+-----------------+---------------------+
## | 6 | 2021-04-15 | Thursday | 1171.56 |
## +----+------------+-----------------+---------------------+
## | 7 | 2021-04-16 | Friday | 1172.27 |
## +----+------------+-----------------+---------------------+
## | 8 | 2021-04-17 | Saturday | 1172.93 |
## +----+------------+-----------------+---------------------+
## | 9 | 2021-04-18 | Sunday | 1173.54 |
## +----+------------+-----------------+---------------------+
## | 10 | 2021-04-19 | Monday | 1174.11 |
## +----+------------+-----------------+---------------------+
## | 11 | 2021-04-20 | Tuesday | 1174.65 |
## +----+------------+-----------------+---------------------+
## | 12 | 2021-04-21 | Wednesday | 1175.14 |
## +----+------------+-----------------+---------------------+
## | 13 | 2021-04-22 | Thursday | 1175.60 |
## +----+------------+-----------------+---------------------+
## | 14 | 2021-04-23 | Friday | 1176.03 |
## +----+------------+-----------------+---------------------+
## | 15 | 2021-04-24 | Saturday | 1176.43 |
## +----+------------+-----------------+---------------------+
## | 16 | 2021-04-25 | Sunday | 1176.80 |
## +----+------------+-----------------+---------------------+
## | 17 | 2021-04-26 | Monday | 1177.15 |
## +----+------------+-----------------+---------------------+
## | 18 | 2021-04-27 | Tuesday | 1177.47 |
## +----+------------+-----------------+---------------------+
## | 19 | 2021-04-28 | Wednesday | 1177.76 |
## +----+------------+-----------------+---------------------+
## | 20 | 2021-04-29 | Thursday | 1178.04 |
## +----+------------+-----------------+---------------------+
## | 21 | 2021-04-30 | Friday | 1178.30 |
## +----+------------+-----------------+---------------------+
result<-c(x1,x2,x3,x4,x5)
table.error<-data.frame(country.name,NNAR.model=MAPE_Mean_All_NNAR, BATS.Model=MAPE_Mean_All.bats_Model,TBATS.Model=MAPE_Mean_All.TBATS_Model,Holt.Model=MAPE_Mean_All.Holt_Model,ARIMA.Model=MAPE_Mean_All.ARIMA_Model,Best.Model=result)
library(ascii)
print(ascii(table(table.error)), type = "rest")
##
## +---+--------------+------------+------------+-------------+------------+-------------+-------------+------+
## | | country.name | NNAR.model | BATS.Model | TBATS.Model | Holt.Model | ARIMA.Model | Best.Model | Freq |
## +===+==============+============+============+=============+============+=============+=============+======+
## | 1 | Chelyabinsk | 4.577 | 0.256 | 0.238 | 0.316 | 0.281 | TBATS Model | 1.00 |
## +---+--------------+------------+------------+-------------+------------+-------------+-------------+------+
MAPE.Value<-c(MAPE_Mean_All_NNAR,MAPE_Mean_All.bats_Model,MAPE_Mean_All.TBATS_Model,MAPE_Mean_All.Holt_Model,MAPE_Mean_All.ARIMA_Model)
Model<-c("NNAR.model","BATS.Model","TBATS.Model","Holt.Model","ARIMA.Model")
channel_data<-data.frame(Model,MAPE.Value)
# Normally, the entire expression below would be assigned to an object, but we're
# going bare bones here.
ggplot(channel_data, aes(x = Model, y = MAPE.Value)) +
geom_bar(stat = "identity") +
geom_text(aes(label = MAPE.Value)) + # x AND y INHERITED. WE JUST NEED TO SPECIFY "label"
coord_flip() +
scale_y_continuous(expand = c(0, 0))

message("System finished Modelling and Forecasting by using BATS, TBATS, Holt's Linear Trend,ARIMA Model, and SIR Model ==>",y_lab, sep=" ")
## System finished Modelling and Forecasting by using BATS, TBATS, Holt's Linear Trend,ARIMA Model, and SIR Model ==>Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk
message(" Thank you for using our System For Modelling and Forecasting ==> ",y_lab, sep=" ")
## Thank you for using our System For Modelling and Forecasting ==> Forecasting Cumulative Covid 19 Deaths cases in Chelyabinsk