vuoi
o PayPal
tutte le volte che vuoi
# Previsioni con il Software R: analisi dell’ inflazione USA
#Installazione dei “Packages” necessari
install.packages("tidyverse")
install.packages("urca")
install.packages("forecast")
install.packages("tseries")
install.packages("TSstudio")
help(TSstudio)
#Caricamento delle librerie necessarie
library(tidyverse)
library(forecast)
library(tseries)
library(urca)
library(TSstudio)
# Caricamento del dataset inflazione – e’ necessario scaricare i dati in formato .csv
da “FRED”
inflation <- read_csv(file.choose())
head(inflation)
nrow(inflation)
#----- trasformiamo I dati in una serie storica
inf <- ts(inflation$Rate, start = c(2000,1,5), frequency = 12)
# Grafico:
autoplot(inf) + ggtitle("Inflation Rate (USA), January 2000 to April 2020") + labs(x =
"Time", y = "Inflation Rate")
ts_plot(inf, line.mode = "lines", title = "Inflation Rate (USA), January 2000 to April
2020")
# Sommario dei dati (summary)
summary(inf)
# Analisi della correlazione: ACF and PACF
ggAcf(inf) + ggtitle("ACF of Inflation")
ggPacf(inf) + ggtitle("PACF of Inflation")
# differenziazione di primo grado della serie
dinf <- diff(inf)
# Grafico della serie differenziata
ggAcf(dinf) + ggtitle("ACF of Inflation (Differenced)")
ggPacf(dinf) + ggtitle("PACF of Inflation (Differenced)")
#Graphing Levels and Differenced
combo <- cbind(inf, dinf)
# Decomposizione della serie storica
autoplot(combo, facets = TRUE) + ggtitle("Inflation (Rate (Philippines), Level and
Difference") + labs(y ="Rate")
# Test di stazionarieta’
ts_decompose(inf, type = "additive", showline = TRUE)
# Test di Dickey Fuller aumentato (ADF Test)
adf.test(inf, k = 2)
adf.test(inf, k = 1)
adf.test(dinf)
# Test di Phillips Perron
pp.test(inf)
pp.test(dinf)
#Using the KPSS Test
kpss.test(inf)
kpss.test(dinf)
# Partizione dei dati e test di previsione ; partizione dei dati in data test E training
data
split_inf <- ts_split(inf, sample.out = 12)
training <- split_inf$train
testing <- split_inf$test
length(training)
length(testing)
# Diagnostica con modello ARIMA – grafico della previsione
arima_diag(training)
# Prova con diversi modelli:
# Modello 1
arima211 <- arima(training, order = c(2,1,1))
autoplot(arima211)
check_res(arima211)
#Modellol 2 - SARIMA
sarima2111 <- arima(training, order = c(2,1,1), seasonal = list(order = c(1,0,0)))
autoplot(sarima2111)
check_res(sarima2111)