require(forecast)
require(dplyr)
CV19_backup<- read.csv("https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-andamento-nazionale/dpc-covid19-ita-andamento-nazionale.csv")
data<- data.frame(time= 1:length(CV19_backup$data), new_infected = CV19_backup$nuovi_positivi[1:length(CV19_backup$data)] ) #real distribution of new infected
head(data)
## time new_infected
## 1 1 221
## 2 2 93
## 3 3 78
## 4 4 250
## 5 5 238
## 6 6 240
fit_it <- auto.arima(data$new_infected,1, trace = TRUE, approximation = FALSE)
##
## ARIMA(2,1,2) with drift : 3155.699
## ARIMA(0,1,0) with drift : 3205.46
## ARIMA(1,1,0) with drift : 3207.502
## ARIMA(0,1,1) with drift : 3207.5
## ARIMA(0,1,0) : 3203.629
## ARIMA(1,1,2) with drift : 3208.124
## ARIMA(2,1,1) with drift : 3207.11
## ARIMA(3,1,2) with drift : 3160.35
## ARIMA(2,1,3) with drift : 3161.163
## ARIMA(1,1,1) with drift : 3209.272
## ARIMA(1,1,3) with drift : 3209.305
## ARIMA(3,1,1) with drift : 3205.238
## ARIMA(3,1,3) with drift : 3159.12
## ARIMA(2,1,2) : 3154.083
## ARIMA(1,1,2) : 3206.311
## ARIMA(2,1,1) : 3205.309
## ARIMA(3,1,2) : 3158.574
## ARIMA(2,1,3) : 3159.383
## ARIMA(1,1,1) : Inf
## ARIMA(1,1,3) : 3207.475
## ARIMA(3,1,1) : 3203.455
## ARIMA(3,1,3) : Inf
##
## Best model: ARIMA(2,1,2)
fit_it
## Series: data$new_infected
## ARIMA(2,1,2)
##
## Coefficients:
## ar1 ar2 ma1 ma2
## 1.2616 -0.9033 -1.4584 0.9345
## s.e. 0.0329 0.0373 0.0380 0.0280
##
## sigma^2 estimated as 88829: log likelihood=-1571.9
## AIC=3153.8 AICc=3154.08 BIC=3170.8
accuracy(fit_it)
## ME RMSE MAE MPE MAPE MASE
## Training set 12.60391 294.6671 190.7224 -3.261075 20.65697 0.8667059
## ACF1
## Training set 0.002611845
plot(fit_it)

autoplot(fit_it)

plot( forecast(fit_it,36),main = paste("Covid19 IT second wave - ARIMA "))

plot(data$new_infected,col="red",main = paste("Covid19 IT second wave - ARIMA "))
lines(fitted(fit_it),col="Navy")
legend("topright", legend=c("New Infection curve", "ARIMA-fit"), col=c("red", "Navy"), lty=1:2, cex=0.85,box.lty=0)
