Il file 250624.txt contiene i valori di due indici
finanziari giornalieri con inizio in data 2020-01-01
es 1.1
y<- read.csv('250624.txt',header = TRUE)
n <- nrow(y)
ind.y <- seq(from=as.Date('2020-01-01'),by=1,length.out=n)
y <- zoo(y,order.by=ind.y)
head(y)
#> y z
#> 2020-01-01 -0.02034599 -0.8660413
#> 2020-01-02 0.06253366 -1.9292668
#> 2020-01-03 -0.04615970 -2.2987743
#> 2020-01-04 0.05055887 -2.7153913
#> 2020-01-05 -0.18182760 -2.4402068
#> 2020-01-06 0.08462385 -0.8633387 X <- merge(lag(y_t,-1),z_t,all=FALSE)
head
#> function (x, ...)
#> UseMethod("head")
#> <bytecode: 0x000001f229a16c20>
#> <environment: namespace:utils>
x <- X[,1]-X[,2]
plot(x,col=4,xlab='Tempo',ylab='x_t');grid()es 1.4
Il test Dickey-Fuller aumentato (ADF) è un test statistico utilizzato per verificare se una serie temporale è stazionaria o non stazionaria, cioè se contiene una radice unitaria. E’ composto da diverse componenti: 1. test di ipotesi: Ipotesi Nulla (H₀): La serie ha una radice unitaria (è non stazionaria). Ipotesi Alternativa (H₁): La serie non ha una radice unitaria (è stazionaria). 2. modello di regressione 3. Interpretazione: Si stima il coefficiente gamma, se gamma è significativamente negativo, si rifiuta l’ipotesi nulla e si conclude che la serie è stazionaria. 4. la scelta del numero di lag (p): Il numero di lag viene scelto per eliminare l’autocorrelazione nei residui della regressione, spesso è fatto usando criteri come AIC o BIC. Si possono avere varie versioni del test ADF: con costante ma senza trend, con trend e con costante oppure senza trend e senza costante. Il test ADF è fondamentale nell’analisi delle serie temporali perché aiuta a determinare se la serie necessita di essere differenziata per diventare stazionaria, rendendo i modelli predittivi più affidabili.
Con riferimento alla serie dell’esercizio precedente resa stazionaria:
Equazione del modello ARMA(1,1) senza intercetta \[ X_t \phi_? X_{t-?} \phi_? \theta_{?} \epsilon_{?} \] dove \(\{\epsilon_{?}\}\) segue un processo ? con media ? e varianza ?
mod2 <- arima(x,order=c(0,0,1), include.mean = FALSE)
mod2
#>
#> Call:
#> arima(x = x, order = c(0, 0, 1), include.mean = FALSE)
#>
#> Coefficients:
#> ma1
#> 1.0000
#> s.e. 0.0075
#>
#> sigma^2 estimated as 210.7: log likelihood = -1497.28, aic = 2998.55
print(mod2)
#>
#> Call:
#> arima(x = x, order = c(0, 0, 1), include.mean = FALSE)
#>
#> Coefficients:
#> ma1
#> 1.0000
#> s.e. 0.0075
#>
#> sigma^2 estimated as 210.7: log likelihood = -1497.28, aic = 2998.55Equazione del modello MA(1) senza intercetta \[ X_t \theta_? \epsilon_{?} \epsilon_{?} \]
dove \(\{\epsilon_{?}\}\) segue un processo ? con media ? e varianza ?
Usiamo le funzioni AIC e BIC per estrarre i
valori corrispondenti
Per il modello 1 si testano le seguenti ipotesi
\[ \begin{cases} H_0: \phi_{?}=?\\ H_1: \phi_{?} \neq ? \end{cases} \]
Le statistiche test risultano \[ Z_? = \frac{\hat{\phi}_{?}}{?};\qquad Z_? = \frac{\hat{\theta}_{?}}{?}; \]
Calcoliamo i corrispondenti \(p\)-value
Con riferimento all’esercizio precedente:
Si vuole testare l’ipotesi nulla che ai lag \(k=1,\dots,?\), l’autocorrelazione dei residui sia nulla: \[ \begin{cases} H_0: \rho_{?}=?\\ H_1: \rho_{?} \neq ? \end{cases} \]
L’ipotesi nulla testata è la seguente \[ \begin{cases} H_0: \rho_{1}=\dots=\rho_?=?\\ H_1: ? \end{cases} \]
La statistica risulta …
\[ Q(?)=?(?) \sum_{k=1}^{?}\frac{\hat{\rho}^2_{}}{?} \]