Metodi statistici per i mercati finanziari MODULO 1: 25 giugno 2024

Casamassima Raffaella

2024-06-25

Esercizio 1

Il file 250624.txt contiene i valori di due indici finanziari giornalieri con inizio in data 2020-01-01

  1. Caricare i dati e creare una serie giornaliera bivariata \(Y_t\) usando la data di inizio fornita. Stampare l’intestazione di \(Y_t\)
  2. Costruire il seguente indicatore \(x_t = z_{t} - y_{t-1}\). Stampare l’intestazione di \(x_t\). Produrre e commentare il grafico di \(x_t\).
  3. Creare i grafici del correlogramma globale di \(x_t\) per i primi 30 ritardi usando le bande di confidenza sotto l’ipotesi di un processo media mobile. Si commenti il risultato.
  4. Descrivere il test Dickey-Fuller aumentato (ADF).
  5. Calcolare il valore del test e commentare il risultato. Applicare una eventuale trasformazione per rendere stazionaria la serie e ripetere il test per verificare il risultato. Graficare la serie.
  6. Creare i grafici del correlogramma globale e parziale di \(x_t\) per i primi 30 ritardi. Commentare il risultato.

Svolgimento

1.

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
y_t<- y[,1]
z_t<-y[,2]
 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()

nlag <- 30
acf(x ,lag.max=nlag,lwd=6,col=2,ylim=c(-1,1),main='')

pacf(x,lag.max=nlag,lwd=6,col=2,ylim=c(-1,1),main='')

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.

Esercizio 2

Con riferimento alla serie dell’esercizio precedente resa stazionaria:

  1. stimare due modelli: il modello 1, un ARMA\((1,1)\) e il modello 2, un MA\((1)\), entrambi senza media/intercetta. Stampare il sommario e commentare i risultati.
  2. confrontare i modelli sulla base dei criteri AIC e BIC. Commentare i risultati.
  3. testare la significatività dei parametri dei due modelli al livello \(\alpha=0.05\). Specificare il sistema di ipotesi testato, la statistica test e la sua distribuzione di riferimento.
  4. stampare i valori della statistica test e i valori critici al livello richiesto. Definire e calcolare i \(p\)-value associati e commentarli.

Svolgimento (completare)

1.

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 ?

es 2.1
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.55

Equazione del modello MA(1) senza intercetta \[ X_t \theta_? \epsilon_{?} \epsilon_{?} \]

dove \(\{\epsilon_{?}\}\) segue un processo ? con media ? e varianza ?

es 2.2

2.

Usiamo le funzioni AIC e BIC per estrarre i valori corrispondenti

3.

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}_{?}}{?}; \]

4.

Calcoliamo i corrispondenti \(p\)-value

Esercizio 3

Con riferimento all’esercizio precedente:

  1. descrivere gli obiettivi dell’analisi dei residui e della diagnostica.
  2. calcolare e stampare il correlogramma dei residui dei due modelli fino al ritardo 7.
  3. calcolare le bande di rifiuto relative all’ipotesi nulla di assenza di correlazione seriale (white noise) al livello \(\alpha = 0.01\). A tal riguardo, specificare chiaramente sistema di ipotesi testato, la statistica test e la sua distribuzione di riferimento. Indicare i ritardi per cui si rifiuta \(H_0\). Commentare il risultato.
  4. Definire e calcolare la statistica test portmanteau di Ljung-Box al ritardo 7 sui residui dei due modelli. Calcolare i \(p\)-value del test. Commentare il risultato.

Svolgimento (completare)

1.

2.

3.

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} \]

3.

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_{}}{?} \]