Development of the Advanced Algorithm for Forecasting Covid-19 Cases Based on Time Series and Neural Network Models

Daily Covid 19 Infections cases In Russian federation (forecasting Third-wave) by using NNAR
Makarovskikh Tatyana Anatolyevna “Макаровских Татьяна Анатольевна”
Abotaleb mostafa“Аботалеб Мостафа”
Faculty of Electrical Engineering and Computer Science
Department of system programming
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)
##Global vriable##
Full_original_data <- read.csv("data.csv") # path of your data ( time series data)
original_data<-Full_original_data$cases
y_lab <- "Forecast Third wave infection cases in Russia"   # input name of data
Actual_date_interval <- c("2020/03/01","2021/06/30")
Forecast_date_interval <- c("2021/07/01","2021/07/30")
validation_data_days <-120
frequency<-"days"
Number_Neural<-15 # Number of Neural For model NNAR Model
NNAR_Model<- FALSE     #create new model (TRUE/FALSE)  #create new model (TRUE/FALSE)
frequency<-"days"
# Data Preparation & calculate some of statistics measures
summary(original_data) # Summary your time series
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##       0    5159    8706   10119   14207   29935
# calculate standard deviation 
data.frame(kurtosis=kurtosis(original_data))   # calculate Cofficient of kurtosis
##   kurtosis
## 1 2.770659
data.frame(skewness=skewness(original_data))  # calculate Cofficient of skewness
##    skewness
## 1 0.7578623
data.frame(Standard.deviation =sd(original_data))
##   Standard.deviation
## 1            7986.47
#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(22,15) 
## Call:   nnetar(y = data_series, size = Number_Neural)
## 
## Average of 20 networks, each of which is
## a 22-15-1 network with 361 weights
## options were - linear output units 
## 
## sigma^2 estimated as 52109
# 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  120 days by using NNAR Model for  ==>  Forecast Third wave infection cases in Russia"
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  120  days in NNAR Model for  ==>  Forecast Third wave infection cases in Russia"
paste(MAPE_Mean_All,"%")
## [1] "19.635 % MAPE  120 days Forecast Third wave infection cases in Russia %"
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  120  days in NNAR Model for  ==>  Forecast Third wave infection cases in Russia"
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-03 | Wednesday               | 10535.00    | 10218.84         | 3.001 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 2   | 2021-03-04 | Thursday                | 11385.00    | 10307.84         | 9.461 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 3   | 2021-03-05 | Friday                  | 11024.00    | 10339.70         | 6.207 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 4   | 2021-03-06 | Saturday                | 11022.00    | 10138.96         | 8.012 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 5   | 2021-03-07 | Sunday                  | 10595.00    | 10198.57         | 3.742 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 6   | 2021-03-08 | Monday                  | 10253.00    | 9793.81          | 4.479 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 7   | 2021-03-09 | Tuesday                 | 9445.00     | 9613.03          | 1.779 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 8   | 2021-03-10 | Wednesday               | 9079.00     | 9720.10          | 7.061 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 9   | 2021-03-11 | Thursday                | 9270.00     | 9511.82          | 2.609 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 10  | 2021-03-12 | Friday                  | 9794.00     | 9486.25          | 3.142 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 11  | 2021-03-13 | Saturday                | 9908.00     | 9369.62          | 5.434 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 12  | 2021-03-14 | Sunday                  | 10083.00    | 9221.09          | 8.548 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 13  | 2021-03-15 | Monday                  | 9437.00     | 9177.46          | 2.75 %          |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 14  | 2021-03-16 | Tuesday                 | 9393.00     | 8811.25          | 6.193 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 15  | 2021-03-17 | Wednesday               | 8998.00     | 8568.81          | 4.77 %          |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 16  | 2021-03-18 | Thursday                | 9803.00     | 8481.34          | 13.482 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 17  | 2021-03-19 | Friday                  | 9699.00     | 8486.72          | 12.499 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 18  | 2021-03-20 | Saturday                | 9632.00     | 8468.30          | 12.082 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 19  | 2021-03-21 | Sunday                  | 9299.00     | 8445.10          | 9.183 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 20  | 2021-03-22 | Monday                  | 9284.00     | 8077.78          | 12.992 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 21  | 2021-03-23 | Tuesday                 | 8457.00     | 7849.34          | 7.185 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 22  | 2021-03-24 | Wednesday               | 8861.00     | 7683.30          | 13.291 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 23  | 2021-03-25 | Thursday                | 9221.00     | 7549.36          | 18.129 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 24  | 2021-03-26 | Friday                  | 9167.00     | 7490.86          | 18.285 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 25  | 2021-03-27 | Saturday                | 8885.00     | 7408.56          | 16.617 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 26  | 2021-03-28 | Sunday                  | 9088.00     | 7281.34          | 19.88 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 27  | 2021-03-29 | Monday                  | 8711.00     | 7176.49          | 17.616 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 28  | 2021-03-30 | Tuesday                 | 8277.00     | 7004.29          | 15.376 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 29  | 2021-03-31 | Wednesday               | 8275.00     | 6879.21          | 16.868 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 30  | 2021-04-01 | Thursday                | 9169.00     | 6782.53          | 26.028 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 31  | 2021-04-02 | Friday                  | 8792.00     | 6754.85          | 23.171 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 32  | 2021-04-03 | Saturday                | 9021.00     | 6723.51          | 25.468 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 33  | 2021-04-04 | Sunday                  | 8817.00     | 6681.05          | 24.225 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 34  | 2021-04-05 | Monday                  | 8646.00     | 6558.04          | 24.149 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 35  | 2021-04-06 | Tuesday                 | 8328.00     | 6448.15          | 22.573 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 36  | 2021-04-07 | Wednesday               | 8294.00     | 6379.02          | 23.089 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 37  | 2021-04-08 | Thursday                | 8672.00     | 6391.06          | 26.302 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 38  | 2021-04-09 | Friday                  | 9150.00     | 6412.84          | 29.914 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 39  | 2021-04-10 | Saturday                | 8704.00     | 6413.67          | 26.314 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 40  | 2021-04-11 | Sunday                  | 8702.00     | 6367.33          | 26.829 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 41  | 2021-04-12 | Monday                  | 8320.00     | 6282.47          | 24.49 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 42  | 2021-04-13 | Tuesday                 | 8173.00     | 6227.57          | 23.803 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 43  | 2021-04-14 | Wednesday               | 8326.00     | 6192.36          | 25.626 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 44  | 2021-04-15 | Thursday                | 8944.00     | 6175.72          | 30.951 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 45  | 2021-04-16 | Friday                  | 8995.00     | 6191.83          | 31.164 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 46  | 2021-04-17 | Saturday                | 9321.00     | 6190.75          | 33.583 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 47  | 2021-04-18 | Sunday                  | 8632.00     | 6164.36          | 28.587 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 48  | 2021-04-19 | Monday                  | 8589.00     | 6117.09          | 28.78 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 49  | 2021-04-20 | Tuesday                 | 8164.00     | 6048.52          | 25.912 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 50  | 2021-04-21 | Wednesday               | 8271.00     | 6010.67          | 27.328 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 51  | 2021-04-22 | Thursday                | 8996.00     | 6005.80          | 33.239 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 52  | 2021-04-23 | Friday                  | 8840.00     | 6020.96          | 31.89 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 53  | 2021-04-24 | Saturday                | 8828.00     | 6019.12          | 31.818 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 54  | 2021-04-25 | Sunday                  | 8780.00     | 6002.89          | 31.63 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 55  | 2021-04-26 | Monday                  | 8803.00     | 5960.92          | 32.285 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 56  | 2021-04-27 | Tuesday                 | 8053.00     | 5933.61          | 26.318 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 57  | 2021-04-28 | Wednesday               | 7848.00     | 5927.05          | 24.477 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 58  | 2021-04-29 | Thursday                | 9284.00     | 5946.42          | 35.95 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 59  | 2021-04-30 | Friday                  | 8731.00     | 5965.89          | 31.67 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 60  | 2021-05-01 | Saturday                | 9270.00     | 5984.71          | 35.44 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 61  | 2021-05-02 | Sunday                  | 8697.00     | 5987.40          | 31.156 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 62  | 2021-05-03 | Monday                  | 8489.00     | 5982.72          | 29.524 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 63  | 2021-05-04 | Tuesday                 | 7770.00     | 5989.35          | 22.917 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 64  | 2021-05-05 | Wednesday               | 7975.00     | 6010.23          | 24.637 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 65  | 2021-05-06 | Thursday                | 7639.00     | 6047.33          | 20.836 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 66  | 2021-05-07 | Friday                  | 8386.00     | 6100.82          | 27.25 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 67  | 2021-05-08 | Saturday                | 8329.00     | 6144.02          | 26.233 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 68  | 2021-05-09 | Sunday                  | 8419.00     | 6178.81          | 26.609 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 69  | 2021-05-10 | Monday                  | 8465.00     | 6212.75          | 26.607 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 70  | 2021-05-11 | Tuesday                 | 8115.00     | 6254.55          | 22.926 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 71  | 2021-05-12 | Wednesday               | 8217.00     | 6321.86          | 23.064 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 72  | 2021-05-13 | Thursday                | 8380.00     | 6411.02          | 23.496 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 73  | 2021-05-14 | Friday                  | 9462.00     | 6511.90          | 31.178 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 74  | 2021-05-15 | Saturday                | 8790.00     | 6614.51          | 24.75 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 75  | 2021-05-16 | Sunday                  | 8554.00     | 6727.26          | 21.355 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 76  | 2021-05-17 | Monday                  | 9328.00     | 6850.75          | 26.557 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 77  | 2021-05-18 | Tuesday                 | 8183.00     | 7004.95          | 14.396 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 78  | 2021-05-19 | Wednesday               | 7920.00     | 7195.23          | 9.151 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 79  | 2021-05-20 | Thursday                | 9232.00     | 7424.40          | 19.58 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 80  | 2021-05-21 | Friday                  | 8937.00     | 7687.36          | 13.983 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 81  | 2021-05-22 | Saturday                | 8709.00     | 7988.76          | 8.27 %          |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 82  | 2021-05-23 | Sunday                  | 8951.00     | 8323.81          | 7.007 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 83  | 2021-05-24 | Monday                  | 8406.00     | 8698.66          | 3.482 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 84  | 2021-05-25 | Tuesday                 | 7884.00     | 9113.14          | 15.59 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 85  | 2021-05-26 | Wednesday               | 8373.00     | 9552.38          | 14.086 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 86  | 2021-05-27 | Thursday                | 9039.00     | 9996.46          | 10.593 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 87  | 2021-05-28 | Friday                  | 9252.00     | 10426.87         | 12.699 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 88  | 2021-05-29 | Saturday                | 9289.00     | 10830.37         | 16.594 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 89  | 2021-05-30 | Sunday                  | 9694.00     | 11208.60         | 15.624 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 90  | 2021-05-31 | Monday                  | 8475.00     | 11565.86         | 36.47 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 91  | 2021-06-01 | Tuesday                 | 9500.00     | 11908.47         | 25.352 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 92  | 2021-06-02 | Wednesday               | 8832.00     | 12244.22         | 38.635 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 93  | 2021-06-03 | Thursday                | 8933.00     | 12580.96         | 40.837 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 94  | 2021-06-04 | Friday                  | 8947.00     | 12921.68         | 44.425 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 95  | 2021-06-05 | Saturday                | 9145.00     | 13265.70         | 45.06 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 96  | 2021-06-06 | Sunday                  | 9163.00     | 13612.21         | 48.556 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 97  | 2021-06-07 | Monday                  | 9429.00     | 13963.70         | 48.093 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 98  | 2021-06-08 | Tuesday                 | 9977.00     | 14321.30         | 43.543 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 99  | 2021-06-09 | Wednesday               | 10407.00    | 14676.47         | 41.025 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 100 | 2021-06-10 | Thursday                | 11699.00    | 15018.05         | 28.37 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 101 | 2021-06-11 | Friday                  | 12505.00    | 15335.72         | 22.637 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 102 | 2021-06-12 | Saturday                | 13510.00    | 15624.55         | 15.652 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 103 | 2021-06-13 | Sunday                  | 14723.00    | 15886.95         | 7.906 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 104 | 2021-06-14 | Monday                  | 13721.00    | 16130.67         | 17.562 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 105 | 2021-06-15 | Tuesday                 | 14185.00    | 16361.80         | 15.346 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 106 | 2021-06-16 | Wednesday               | 13397.00    | 16583.69         | 23.787 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 107 | 2021-06-17 | Thursday                | 14057.00    | 16798.33         | 19.502 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 108 | 2021-06-18 | Friday                  | 17262.00    | 17005.59         | 1.485 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 109 | 2021-06-19 | Saturday                | 17906.00    | 17205.30         | 3.913 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 110 | 2021-06-20 | Sunday                  | 17611.00    | 17403.32         | 1.179 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 111 | 2021-06-21 | Monday                  | 17378.00    | 17609.06         | 1.33 %          |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 112 | 2021-06-22 | Tuesday                 | 16715.00    | 17832.56         | 6.686 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 113 | 2021-06-23 | Wednesday               | 17594.00    | 18081.44         | 2.77 %          |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 114 | 2021-06-24 | Thursday                | 20182.00    | 18357.64         | 9.04 %          |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 115 | 2021-06-25 | Friday                  | 20393.00    | 18656.39         | 8.516 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 116 | 2021-06-26 | Saturday                | 21665.00    | 18970.34         | 12.438 %        |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 117 | 2021-06-27 | Sunday                  | 20538.00    | 19293.12         | 6.061 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 118 | 2021-06-28 | Monday                  | 21650.00    | 19621.41         | 9.37 %          |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 119 | 2021-06-29 | Tuesday                 | 20616.00    | 19954.32         | 3.21 %          |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
## | 120 | 2021-06-30 | Wednesday               | 21042.00    | 20291.35         | 3.567 %         |
## +-----+------------+-------------------------+-------------+------------------+-----------------+
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-07-01 | Thursday        | 20630.50            |
## +----+------------+-----------------+---------------------+
## | 2  | 2021-07-02 | Friday          | 20965.60            |
## +----+------------+-----------------+---------------------+
## | 3  | 2021-07-03 | Saturday        | 21289.07            |
## +----+------------+-----------------+---------------------+
## | 4  | 2021-07-04 | Sunday          | 21599.84            |
## +----+------------+-----------------+---------------------+
## | 5  | 2021-07-05 | Monday          | 21904.95            |
## +----+------------+-----------------+---------------------+
## | 6  | 2021-07-06 | Tuesday         | 22214.06            |
## +----+------------+-----------------+---------------------+
## | 7  | 2021-07-07 | Wednesday       | 22533.43            |
## +----+------------+-----------------+---------------------+
## | 8  | 2021-07-08 | Thursday        | 22861.95            |
## +----+------------+-----------------+---------------------+
## | 9  | 2021-07-09 | Friday          | 23191.05            |
## +----+------------+-----------------+---------------------+
## | 10 | 2021-07-10 | Saturday        | 23512.16            |
## +----+------------+-----------------+---------------------+
## | 11 | 2021-07-11 | Sunday          | 23825.86            |
## +----+------------+-----------------+---------------------+
## | 12 | 2021-07-12 | Monday          | 24140.57            |
## +----+------------+-----------------+---------------------+
## | 13 | 2021-07-13 | Tuesday         | 24464.52            |
## +----+------------+-----------------+---------------------+
## | 14 | 2021-07-14 | Wednesday       | 24799.52            |
## +----+------------+-----------------+---------------------+
## | 15 | 2021-07-15 | Thursday        | 25139.12            |
## +----+------------+-----------------+---------------------+
## | 16 | 2021-07-16 | Friday          | 25471.46            |
## +----+------------+-----------------+---------------------+
## | 17 | 2021-07-17 | Saturday        | 25787.36            |
## +----+------------+-----------------+---------------------+
## | 18 | 2021-07-18 | Sunday          | 26087.25            |
## +----+------------+-----------------+---------------------+
## | 19 | 2021-07-19 | Monday          | 26379.92            |
## +----+------------+-----------------+---------------------+
## | 20 | 2021-07-20 | Tuesday         | 26674.22            |
## +----+------------+-----------------+---------------------+
## | 21 | 2021-07-21 | Wednesday       | 26971.73            |
## +----+------------+-----------------+---------------------+
## | 22 | 2021-07-22 | Thursday        | 27265.11            |
## +----+------------+-----------------+---------------------+
## | 23 | 2021-07-23 | Friday          | 27542.22            |
## +----+------------+-----------------+---------------------+
## | 24 | 2021-07-24 | Saturday        | 27795.18            |
## +----+------------+-----------------+---------------------+
## | 25 | 2021-07-25 | Sunday          | 28027.34            |
## +----+------------+-----------------+---------------------+
## | 26 | 2021-07-26 | Monday          | 28250.29            |
## +----+------------+-----------------+---------------------+
## | 27 | 2021-07-27 | Tuesday         | 28474.09            |
## +----+------------+-----------------+---------------------+
## | 28 | 2021-07-28 | Wednesday       | 28699.47            |
## +----+------------+-----------------+---------------------+
## | 29 | 2021-07-29 | Thursday        | 28917.89            |
## +----+------------+-----------------+---------------------+
## | 30 | 2021-07-30 | Friday          | 29118.27            |
## +----+------------+-----------------+---------------------+
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+scale_y_continuous(labels = scales::comma)+
  forecast::autolayer(forecasting_NNAR$mean, series="NNAR Model",size = 0.7) +
  guides(colour=guide_legend(title="Forecasts"),fill = "black")+
  theme(legend.position="bottom")+
  theme(legend.background = element_rect(fill="white",
                                         size=0.7, linetype="solid", 
                                         colour ="gray"))