Read the data for Italian’s Province:

CV19_pro_backup<- read.csv("https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-province/dpc-covid19-ita-province.csv")

Read the data for Italian’s Regions:

CV19_reg_backup<- read.csv("https://raw.githubusercontent.com/pcm-dpc/COVID-19/master/dati-regioni/dpc-covid19-ita-regioni.csv")

Create a new data set with selected variables:

data_pro<- CV19_pro_backup%>%
  mutate(provincia=denominazione_provincia,regione=denominazione_regione)%>%
  select(data,regione,provincia,totale_casi)
data_pro<- data.frame(time= 1:length(CV19_pro_backup$data), 
                      provincia = CV19_pro_backup$denominazione_provincia,
                      cases = CV19_pro_backup$totale_casi[1:length(CV19_pro_backup$data)] )  

head(data_pro)
##   time                            provincia cases
## 1    1                             L'Aquila     0
## 2    2                               Teramo     0
## 3    3                              Pescara     0
## 4    4                               Chieti     0
## 5    5 In fase di definizione/aggiornamento     0
## 6    6                              Potenza     0
require(stringr)
data_pro_rm<- data_pro %>%
  filter(str_detect(provincia, "Roma"))

head(data_pro_rm)
##   time provincia cases
## 1   38      Roma     0
## 2  166      Roma     3
## 3  294      Roma     3
## 4  422      Roma     3
## 5  550      Roma     3
## 6  678      Roma     6
data_rm<-data_pro_rm%>%
  mutate(times=seq(1,length(cases)), new_cases=c(0,diff(cases)),incidence=round((new_cases/cases)*100,2))%>%
   select(times,provincia,cases,new_cases,incidence,-time)
    

head(data_rm);tail(data_rm)
##   times provincia cases new_cases incidence
## 1     1      Roma     0         0       NaN
## 2     2      Roma     3         3       100
## 3     3      Roma     3         0         0
## 4     4      Roma     3         0         0
## 5     5      Roma     3         0         0
## 6     6      Roma     6         3        50
##     times provincia cases new_cases incidence
## 218   218      Roma 12265       149      1.21
## 219   219      Roma 12456       191      1.53
## 220   220      Roma 12624       168      1.33
## 221   221      Roma 12857       233      1.81
## 222   222      Roma 13050       193      1.48
## 223   223      Roma 13232       182      1.38
par(mfrow=c(1,2))
plot(density(data_rm$new_cases), main="Covid19 New Cases density")
plot(density(data_rm$cases), main="Covid19 Cases density")

require(ggplot2)
require(zoo)


ggplot(data_rm, aes(times, cases)) + 
  geom_point(position=position_jitter(1,3), pch=21, fill="#FF0000AA") +
  geom_line(aes(y=rollmean(cases, 7, na.pad=TRUE))) +
  theme_bw()+labs(x="Time(days)",y="Cases",title="Cumulate cases Covid19 Rome",caption="Data Source: Civil Protection")

ggplot(data_rm, aes(times, new_cases)) + 
  geom_point(position=position_jitter(1,3), pch=21, fill="#FF0000AA") +
  geom_line(aes(y=rollmean(new_cases, 7, na.pad=TRUE))) +
  theme_bw()+labs(x="Time(days)",y="New Cases",title="Covid19 Rome number of New cases",caption="Data Source: Civil Protection")

require(forecast)
fit<- auto.arima(data_rm$new_cases,trace=FALSE)
fit
## Series: data_rm$new_cases 
## ARIMA(0,1,1) 
## 
## Coefficients:
##           ma1
##       -0.4421
## s.e.   0.0626
## 
## sigma^2 estimated as 371.2:  log likelihood=-971.38
## AIC=1946.76   AICc=1946.82   BIC=1953.57
plot(fit)

plot(forecast(fit,h=17.3), main = paste("Covid19 RM second wave - ARIMA ")) #Bandwidth 17.3

accuracy(fit)
##                    ME     RMSE      MAE  MPE MAPE      MASE       ACF1
## Training set 1.518579 19.18096 12.28423 -Inf  Inf 0.9078223 0.01554762
autoplot(fit)

plot(data_rm$new_cases,col="red",main = paste("Covid19 RM second wave - ARIMA  "))
lines(fitted(fit),col="Navy")
legend("topleft", legend=c("Covid19 - Rome New Cases curve", "ARIMA-fit"), col=c("red", "Navy"), lty=1:2, cex=0.85,box.lty=0)