Using auto arima for forecasting COVID 19 infection cases in Chelyabinsk till 27 October 2020 and test days (20%) of Data Series

By

Makarovskikh Tatyana Anatolyevna “Макаровских Татьяна Анатольевна”

Abotaleb mostafa “Аботалеб Мостафа”

Department of Electrical Engineering and Computer Science

South ural state university, Chelyabinsk, Russian federation

# Imports
# Imports
library(fpp2)
## Warning: package 'fpp2' was built under R version 4.0.3
## 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
## Warning: package 'ggplot2' was built under R version 4.0.3
## Warning: package 'forecast' was built under R version 4.0.3
## 
library(forecast)
library(ggplot2)
library("readxl")
## Warning: package 'readxl' was built under R version 4.0.3
library(moments)
## Warning: package 'moments' was built under R version 4.0.3
library(forecast)
require(forecast)  
require(tseries)
## Loading required package: tseries
## Warning: package 'tseries' was built under R version 4.0.3
require(markovchain)
## Loading required package: markovchain
## Warning: package 'markovchain' was built under R version 4.0.3
## 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
Full_original_data<-read_excel("F:/Phd/ALL Russia Analysis/covidActualTS.xlsx",sheet = "Chelyabinsk ")
y_lab<- "COVID 19 Infection cases in Chelyabinsk  "   # input name of data
Actual_date_interval <- c("2020/03/12","2020/10/27")
Forecast_date_interval <- c("2020/10/28","2020/11/5")
validation_data_days <-46
frequency<-"days"
# Data Preparation & calculate some of statistics measures
original_data<-Full_original_data$Infected
summary(original_data)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     0.0   898.5  7795.5  7720.8 13666.5 18393.0
sd(original_data)  # calculate standard deviation
## [1] 6300.531
skewness(original_data)  # calculate Cofficient of skewness
## [1] 0.09264073
kurtosis(original_data)   # calculate Cofficient of kurtosis
## [1] 1.462645
rows <- NROW(original_data)
training_data<-original_data[1:(rows-validation_data_days)]
testing_data<-original_data[(rows-validation_data_days+1):rows]
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)) 
validation_dates<-tail(AD,validation_data_days)
validation_data_by_name<-weekdays(validation_dates)
forecasting_data_by_name<-weekdays(FD)
data_series<-ts(training_data)
#plot  COVID 19 infection cases in Chelyabinsk
autoplot(data_series ,xlab=paste ("Time in  ", frequency, sep=" "), ylab = y_lab, main=paste ("Actual Data :", y_lab, sep=" "))

#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  ==>  COVID 19 Infection 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 = 3.6994, Truncation lag parameter = 4, p-value = 0.01
pp.test(data_series)   # applay pp test
## 
##  Phillips-Perron Unit Root Test
## 
## data:  data_series
## Dickey-Fuller Z(alpha) = -3.7369, Truncation lag parameter = 4, p-value
## = 0.9004
## alternative hypothesis: stationary
adf.test(data_series)  # applay adf test
## 
##  Augmented Dickey-Fuller Test
## 
## data:  data_series
## Dickey-Fuller = -2.8579, Lag order = 5, p-value = 0.2175
## 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  ==>  COVID 19 Infection 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 = 1.8662, Truncation lag parameter = 4, p-value = 0.01
pp.test(diff1_x1)     # applay pp test after taking first differences
## 
##  Phillips-Perron Unit Root Test
## 
## data:  diff1_x1
## Dickey-Fuller Z(alpha) = -6.4645, Truncation lag parameter = 4, p-value
## = 0.7449
## alternative hypothesis: stationary
adf.test(diff1_x1)    # applay adf test after taking first differences
## 
##  Augmented Dickey-Fuller Test
## 
## data:  diff1_x1
## Dickey-Fuller = -0.92892, Lag order = 5, p-value = 0.9471
## 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 COVID 19 Infection 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.18591, Truncation lag parameter = 4, 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) = -200.86, Truncation lag parameter = 4, 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 = -7.4821, Lag order = 5, 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)                    : 1536.59
##  ARIMA(0,2,1)                    : 1524.691
##  ARIMA(0,2,2)                    : 1525.319
##  ARIMA(0,2,3)                    : 1522.219
##  ARIMA(0,2,4)                    : 1522.73
##  ARIMA(0,2,5)                    : 1521.775
##  ARIMA(1,2,0)                    : 1526.41
##  ARIMA(1,2,1)                    : 1522.937
##  ARIMA(1,2,2)                    : 1524.647
##  ARIMA(1,2,3)                    : 1523.737
##  ARIMA(1,2,4)                    : 1522.043
##  ARIMA(2,2,0)                    : 1527.929
##  ARIMA(2,2,1)                    : 1524.418
##  ARIMA(2,2,2)                    : 1526.162
##  ARIMA(2,2,3)                    : 1524.482
##  ARIMA(3,2,0)                    : 1528.362
##  ARIMA(3,2,1)                    : 1524.545
##  ARIMA(3,2,2)                    : 1524.763
##  ARIMA(4,2,0)                    : 1519.07
##  ARIMA(4,2,1)                    : 1520.767
##  ARIMA(5,2,0)                    : 1521.09
## 
## 
## 
##  Best model: ARIMA(4,2,0)
model1 # show the result of autoarima 
## Series: data_series 
## ARIMA(4,2,0) 
## 
## Coefficients:
##           ar1      ar2      ar3     ar4
##       -0.2972  -0.1003  -0.1618  -0.244
## s.e.   0.0716   0.0739   0.0735   0.071
## 
## sigma^2 estimated as 238:  log likelihood=-754.36
## AIC=1518.73   AICc=1519.07   BIC=1534.75
#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)
}

source("stringthearima.R")  
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] 4 2 0
#strtoi(bestmodel[3])
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:
##           ar1      ar2      ar3     ar4
##       -0.2972  -0.1003  -0.1618  -0.244
## s.e.   0.0716   0.0739   0.0735   0.071
## 
## sigma^2 estimated as 232.7:  log likelihood = -754.36,  aic = 1518.73
paste("accuracy of autoarima Model For  ==> ",y_lab, sep=" ")
## [1] "accuracy of autoarima Model For  ==>  COVID 19 Infection cases in Chelyabinsk  "
accuracy(x1_model1)  # aacuracy of best model from auto arima
##                     ME     RMSE      MAE       MPE    MAPE      MASE
## Training set 0.6393234 15.17283 9.296751 0.9028434 3.87662 0.1182776
##                     ACF1
## Training set 0.002878065
x1_model1$x          # show result of best model from auto arima 
## NULL
checkresiduals(x1_model1,xlab = paste ("Time in  ", frequency ,y_lab , sep=" "),  col.main="black", col.lab="blue", col.sub="black", cex.main=1, cex.lab=1, cex.sub=1,font.main=4, font.lab=4, ylab=y_lab) 

## 
##  Ljung-Box test
## 
## data:  Residuals from ARIMA(4,2,0)
## Q* = 1.9046, df = 6, p-value = 0.9283
## 
## Model df: 4.   Total lags used: 10
# checkresiduals from best model from using auto arima 
paste("Box-Ljung test , Ljung-Box test For Modelling for   ==> ",y_lab, sep=" ")
## [1] "Box-Ljung test , Ljung-Box test For Modelling for   ==>  COVID 19 Infection 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 = 36.352, df = 20, p-value = 0.01398
library(tseries)
jarque.bera.test(x1_model1$residuals)  # Do test jarque.bera.test 
## 
##  Jarque Bera Test
## 
## data:  x1_model1$residuals
## X-squared = 336.99, df = 2, p-value < 2.2e-16
#Actual Vs Fitted
par(mfrow=c(1,2))
plot(data_series, col='red',lwd=2, main="Actual vs Fitted Plot", xlab='Timein (days)', ylab=y_lab) # plot actual and Fitted model 
lines(fitted(x1_model1), col='blue')

#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  46 days by using bats Model for  ==>  COVID 19 Infection cases in Chelyabinsk  "
MAPE_Mean_All<-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  46  days in bats Model for  ==>  COVID 19 Infection cases in Chelyabinsk  "
paste(MAPE_Mean_All,"%")
## [1] "1.568 % MAPE  46 days COVID 19 Infection 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  46  days in bats Model for  ==>  COVID 19 Infection cases in Chelyabinsk  "
data.frame(date_auto.arima=validation_dates,validation_data_by_name,actual_data=testing_data,forecasting_auto.arima=validation_forecast,MAPE_auto.arima_Model)
##    date_auto.arima validation_data_by_name actual_data forecasting_auto.arima
## 1       2020-09-12                Saturday       14453               14449.21
## 2       2020-09-13                  Sunday       14514               14514.56
## 3       2020-09-14                  Monday       14581               14578.72
## 4       2020-09-15                 Tuesday       14652               14644.08
## 5       2020-09-16               Wednesday       14724               14709.37
## 6       2020-09-17                Thursday       14796               14774.72
## 7       2020-09-18                  Friday       14857               14840.16
## 8       2020-09-19                Saturday       14928               14905.28
## 9       2020-09-20                  Sunday       14997               14970.50
## 10      2020-09-21                  Monday       15065               15035.69
## 11      2020-09-22                 Tuesday       15142               15100.91
## 12      2020-09-23               Wednesday       15220               15166.18
## 13      2020-09-24                Thursday       15295               15231.42
## 14      2020-09-25                  Friday       15367               15296.67
## 15      2020-09-26                Saturday       15424               15361.90
## 16      2020-09-27                  Sunday       15489               15427.12
## 17      2020-09-28                  Monday       15551               15492.36
## 18      2020-09-29                 Tuesday       15619               15557.59
## 19      2020-09-30               Wednesday       15692               15622.83
## 20      2020-10-01                Thursday       15768               15688.07
## 21      2020-10-02                  Friday       15847               15753.30
## 22      2020-10-03                Saturday       15926               15818.54
## 23      2020-10-04                  Sunday       16007               15883.77
## 24      2020-10-05                  Monday       16093               15949.01
## 25      2020-10-06                 Tuesday       16182               16014.24
## 26      2020-10-07               Wednesday       16274               16079.48
## 27      2020-10-08                Thursday       16368               16144.71
## 28      2020-10-09                  Friday       16460               16209.95
## 29      2020-10-10                Saturday       16553               16275.18
## 30      2020-10-11                  Sunday       16649               16340.42
## 31      2020-10-12                  Monday       16743               16405.65
## 32      2020-10-13                 Tuesday       16832               16470.89
## 33      2020-10-14               Wednesday       16924               16536.12
## 34      2020-10-15                Thursday       17021               16601.36
## 35      2020-10-16                  Friday       17123               16666.59
## 36      2020-10-17                Saturday       17223               16731.83
## 37      2020-10-18                  Sunday       17325               16797.06
## 38      2020-10-19                  Monday       17427               16862.30
## 39      2020-10-20                 Tuesday       17526               16927.53
## 40      2020-10-21               Wednesday       17630               16992.77
## 41      2020-10-22                Thursday       17740               17058.00
## 42      2020-10-23                  Friday       17857               17123.24
## 43      2020-10-24                Saturday       17986               17188.47
## 44      2020-10-25                  Sunday       18122               17253.71
## 45      2020-10-26                  Monday       18255               17318.94
## 46      2020-10-27                 Tuesday       18393               17384.18
##    MAPE_auto.arima_Model
## 1                0.026 %
## 2                0.004 %
## 3                0.016 %
## 4                0.054 %
## 5                0.099 %
## 6                0.144 %
## 7                0.113 %
## 8                0.152 %
## 9                0.177 %
## 10               0.195 %
## 11               0.271 %
## 12               0.354 %
## 13               0.416 %
## 14               0.458 %
## 15               0.403 %
## 16               0.399 %
## 17               0.377 %
## 18               0.393 %
## 19               0.441 %
## 20               0.507 %
## 21               0.591 %
## 22               0.675 %
## 23                0.77 %
## 24               0.895 %
## 25               1.037 %
## 26               1.195 %
## 27               1.364 %
## 28               1.519 %
## 29               1.678 %
## 30               1.853 %
## 31               2.015 %
## 32               2.145 %
## 33               2.292 %
## 34               2.465 %
## 35               2.665 %
## 36               2.852 %
## 37               3.047 %
## 38                3.24 %
## 39               3.415 %
## 40               3.614 %
## 41               3.844 %
## 42               4.109 %
## 43               4.434 %
## 44               4.791 %
## 45               5.128 %
## 46               5.485 %
data.frame(FD,forecating_date=forecasting_data_by_name,forecasting_by_auto.arima=tail(forecasting_auto_arima$mean,N_forecasting_days))
##           FD forecating_date forecasting_by_auto.arima
## 1 2020-10-28       Wednesday                  17449.42
## 2 2020-10-29        Thursday                  17514.65
## 3 2020-10-30          Friday                  17579.89
## 4 2020-10-31        Saturday                  17645.12
## 5 2020-11-01          Sunday                  17710.36
## 6 2020-11-02          Monday                  17775.59
## 7 2020-11-03         Tuesday                  17840.83
## 8 2020-11-04       Wednesday                  17906.06
## 9 2020-11-05        Thursday                  17971.30
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=" "),  col.main="black", col.lab="blue", col.sub="black", cex.main=1, cex.lab=1, cex.sub=1,font.main=4, font.lab=4, ylab=y_lab)
graph4

## Error of forecasting
Error_auto.arima<-abs(testing_data-validation_forecast)  # Absolute error of forecast (AEOF)
REOF_A_auto.arima<-abs(((testing_data-validation_forecast)/testing_data)*100)  #Relative error of forecast (divided by actual)(REOF_A)
REOF_F_auto.arima<-abs(((testing_data-validation_forecast)/validation_forecast)*100)  #Relative error of forecast (divided by forecast)(REOF_F)
correlation_auto.arima<-cor(testing_data,validation_forecast, method = c("pearson"))     # correlation coefficient between predicted and actual values 
RMSE_auto.arima<-sqrt(sum((Error_auto.arima^2))/validation_data_days)   #  Root mean square forecast error
MAD_auto.arima<-abs((sum(testing_data-validation_forecast))/validation_data_days)   # average forecast accuracy
AEOF_auto.arima<-c(Error_auto.arima)
REOF_auto.arima1<-c(paste(round(REOF_A_auto.arima,3),"%"))
REOF_auto.arima2<-c(paste(round(REOF_F_auto.arima,3),"%"))
data.frame(correlation_auto.arima,RMSE_auto.arima,MAPE_Mean_All,MAD_auto.arima) # analysis of Error  by using Holt's linear model shows result of correlation ,MSE ,MPER
##   correlation_auto.arima RMSE_auto.arima
## 1              0.9952468        393.4057
##                                                     MAPE_Mean_All
## 1 1.568 % MAPE  46 days COVID 19 Infection cases in Chelyabinsk  
##   MAD_auto.arima
## 1        270.987
data.frame(validation_dates,Validation_day_name=validation_data_by_name,AEOF_auto.arima,REOF_A_auto.arima=REOF_auto.arima1,REOF_F_auto.arima=REOF_auto.arima2)   # Analysis of error shows result AEOF,REOF_A,REOF_F
##    validation_dates Validation_day_name AEOF_auto.arima REOF_A_auto.arima
## 1        2020-09-12            Saturday       3.7892379           0.026 %
## 2        2020-09-13              Sunday       0.5566942           0.004 %
## 3        2020-09-14              Monday       2.2807896           0.016 %
## 4        2020-09-15             Tuesday       7.9205882           0.054 %
## 5        2020-09-16           Wednesday      14.6269250           0.099 %
## 6        2020-09-17            Thursday      21.2752135           0.144 %
## 7        2020-09-18              Friday      16.8391063           0.113 %
## 8        2020-09-19            Saturday      22.7153268           0.152 %
## 9        2020-09-20              Sunday      26.5003477           0.177 %
## 10       2020-09-21              Monday      29.3089476           0.195 %
## 11       2020-09-22             Tuesday      41.0897591           0.271 %
## 12       2020-09-23           Wednesday      53.8150210           0.354 %
## 13       2020-09-24            Thursday      63.5780154           0.416 %
## 14       2020-09-25              Friday      70.3341120           0.458 %
## 15       2020-09-26            Saturday      62.1042372           0.403 %
## 16       2020-09-27              Sunday      61.8783334           0.399 %
## 17       2020-09-28              Monday      58.6417525           0.377 %
## 18       2020-09-29             Tuesday      61.4073600           0.393 %
## 19       2020-09-30           Wednesday      69.1693237           0.441 %
## 20       2020-10-01            Thursday      79.9329091           0.507 %
## 21       2020-10-02              Friday      93.6986290           0.591 %
## 22       2020-10-03            Saturday     107.4636072           0.675 %
## 23       2020-10-04              Sunday     123.2292183            0.77 %
## 24       2020-10-05              Monday     143.9939749           0.895 %
## 25       2020-10-06             Tuesday     167.7585212           1.037 %
## 26       2020-10-07           Wednesday     194.5232942           1.195 %
## 27       2020-10-08            Thursday     223.2880048           1.364 %
## 28       2020-10-09              Friday     250.0529537           1.519 %
## 29       2020-10-10            Saturday     277.8178527           1.678 %
## 30       2020-10-11              Sunday     308.5826973           1.853 %
## 31       2020-10-12              Monday     337.3475398           2.015 %
## 32       2020-10-13             Tuesday     361.1123384           2.145 %
## 33       2020-10-14           Wednesday     387.8771712           2.292 %
## 34       2020-10-15            Thursday     419.6420118           2.465 %
## 35       2020-10-16              Friday     456.4068543           2.665 %
## 36       2020-10-17            Saturday     491.1717006           2.852 %
## 37       2020-10-18              Sunday     527.9365360           3.047 %
## 38       2020-10-19              Monday     564.7013720            3.24 %
## 39       2020-10-20             Tuesday     598.4662079           3.415 %
## 40       2020-10-21           Wednesday     637.2310446           3.614 %
## 41       2020-10-22            Thursday     681.9958836           3.844 %
## 42       2020-10-23              Friday     733.7607217           4.109 %
## 43       2020-10-24            Saturday     797.5255598           4.434 %
## 44       2020-10-25              Sunday     868.2903974           4.791 %
## 45       2020-10-26              Monday     936.0552347           5.128 %
## 46       2020-10-27             Tuesday    1008.8200723           5.485 %
##    REOF_F_auto.arima
## 1            0.026 %
## 2            0.004 %
## 3            0.016 %
## 4            0.054 %
## 5            0.099 %
## 6            0.144 %
## 7            0.113 %
## 8            0.152 %
## 9            0.177 %
## 10           0.195 %
## 11           0.272 %
## 12           0.355 %
## 13           0.417 %
## 14            0.46 %
## 15           0.404 %
## 16           0.401 %
## 17           0.379 %
## 18           0.395 %
## 19           0.443 %
## 20            0.51 %
## 21           0.595 %
## 22           0.679 %
## 23           0.776 %
## 24           0.903 %
## 25           1.048 %
## 26            1.21 %
## 27           1.383 %
## 28           1.543 %
## 29           1.707 %
## 30           1.888 %
## 31           2.056 %
## 32           2.192 %
## 33           2.346 %
## 34           2.528 %
## 35           2.738 %
## 36           2.936 %
## 37           3.143 %
## 38           3.349 %
## 39           3.535 %
## 40            3.75 %
## 41           3.998 %
## 42           4.285 %
## 43            4.64 %
## 44           5.032 %
## 45           5.405 %
## 46           5.803 %