Lezione 8
Processi stocastici (cont.)
Scopo di questa lezione è presentare:
● grandezze medie associate ad un processo
● processi gaussiani; processi stazionari
● autocorrelazione empirica
● fit di una serie storica tramite SDE
● Fokker-Planck
● fit dinamico di una densità
Grandezze medie associate ad un processo
Dato un processoXtt≥0, chiamiamo:
● media del processo la funzione mt = EXt
● varianza del processo la funzione σ2t = VarXt
● autocovarianza del processo la funzione di due variabili t, s ≥ 0 Ct, s = CovXt, Xs.
(Analogamente: autocorrelazione è ρt, s = CorrXt, Xs ecc.) Un processo si dice stazionario in senso debole, o in media, se:
● mt, σ2t sono costanti in t (quindi parleremo di m e σ2 del processo)
● Ct, s dipende solo dalla distanza temporale |t − s|.
In questo caso la struttura di autocovarianza è descritta dalla funzione di una variabile Ct = CovXt, X0 = CovXs+t, Xs.
Nota 1. Le stesse definizioni si dannoa tempo discreto.
Nota 2. Per un processoXnn≥0a tempo discreto ha senso chiedere che sia Cn, m = 0 per ogni n ≠ m. Il white noise ha questa proprietà. A tempo continuo, ha senso imporla solo per processi generalizzati.
Nota 3. Proprietà del tipo
Ct ∼ e−λt
corrispondono ad una “memoria” breve.
Processi gaussiani
Un processoXtt≥0si dice gaussiano se, presi t1, ..., tn ≥ 0 qualsiasi, la v.a.
Xt1, ..., Xtn è gaussiana.
- Le v.a. gaussiane n-dimensionali (lezione 5) sono completamente descritte dal loro vettore dei valori medi m e dalla matrice di covarianza Q.
- La Q del vettoreXt1, ..., Xtn ha componenti
Qij = CovXti, Xtj = Cti, tj.
- Idem per m.
- Quindi un processo gaussiano è completamente descritto dalle funzioni mt, Ct, s.
- Un processo gaussiano stazionario è completamente descritto da m, Ct.
Esempi a tempo discreto
Esempio 1. Il white noise (a tempo discreto) è un processo gaussiano stazionario. Vale
m = 0, Cn = 0 per n > 0, C0 = 1.
Esempio 2. La random walk è un processo gaussiano, non stazionario. Vale
m = 0, σ2n = n.
Esempio 3. Più in generale, la soluzione di un’equazione lineare con WN in input, del tipo
Xn = a1Xn−1 + a2Xn−2 + ... + σWn
è un processo gaussiano (dato iniziale deterministico).
Processi fortemente stazionari
Sono quelli per cui la generica v.a.
Xt1+s, ..., Xtn+s ha distribuzione di probabilità indipendente da s.
Ad esempio,
PXt+s ∈ A|Xs ∈ B
non dipende dal tempo di partenza s, ma solo dal lasso temporale t.
- Fortemente stazionario⇒ debolmente stazionario.
- Debolmente stazionario+ gaussiano ⇒ fortemente stazionario.
- Importanza dei processi fortemente stazionari: se anche ergodici, allora (ad es. a tempo discreto)
limn→∞ 1
n
∑
k=1 n
ϕXk = EϕX
per ogni funzione ϕ con un minimo di regolarità. Le medie su ogni singolo cammino tipico convergono alla media statistica. L’enunciato è un po’ vago ma questa è l’idea.
Autocorrelazione empirica di una serie storica
Il softwareRcalcola la funzioneacf, autocorrelazione empirica di una serie storica x1, ..., xn, usando la formula
1
n−k
∑
in−k=1xixi+k− mn−kmn−k+
σn−kσn−k
+
dove
mn−k = 1 n − k
∑
i=1 n−k
xi, mn−k
+ = 1
n − k
∑
i=1 n−k
xi+k
σn−k = 1 n − k
∑
i=1 n−k
xi2, σn−k
+ = 1
n − k
∑
i=1 n−k
xi+k2 .
A parte i dettagli, si prendono le stringhe
x1, ..., xn−k e xk+1, ..., xn
e si calcola la loro correlazione. Si cattura ad esempio una periodicità approssimata: se un fenomeno ha cadenza annuale, x1, ..., xn−12 e x13, ..., xnsomigliano.
E’ un’approssimazione di corrXk, X0 se il processo è stazionario ergodico.
Fit di una serie storica
Carichiamo suRla traccia del filetraccia.txte visualizziamola con ts.plot(x.emp):
T im e
x.emp
0 2 0 0 4 0 0 6 0 0 8 0 0 1 0 0 0
-3-2-10123
- Vorremmo costruire un modello in grado di produrre sinteticamente tracce simili a questa. Ad esempio, potrebbe essere la traccia dell’intensità del vento in una ragione, che vogliamo mettere come input di un sistema complesso di calcolo degli sforzi a cui sono sottoposte delle strutture (metodo MC).
- E’ un po’ come il problema del fit di una densità a partire da un campione.
- Non vogliamo che il modello produca proprio questa particolare traccia (a meno di errori), ma tracce dello stesso tipo.
Facciamo un istogramma ed un Q-Q plot:
Histogram of x.emp[, 1]
x.emp[, 1]
Frequency
-3 -2 -1 0 1 2 3
010203040
-3 -2 -1 0 1 2 3
-3-2-10123
Normal Q-Q Plot
Theoretical Quantiles
Sample Quantiles
Il risultato è abbastanza gaussiano.
Modello banale
Essendomean(x.emp)=0.0468esd(x.emp)=1.1277, generiamo un campione di lunghezzaL<-length(x.emp). Il risultato è
T i m e
x.sint
0 2 0 0 4 0 0 6 0 0 8 0 0 1 0 0 0
-3-2-10123
A prima vista è simile. Per certi scopi può andar bene. Più in dettaglio, sovrapponiamo i primi 100 valori (in rosso la traccia sintetica):
0 2 0 4 0 6 0 8 0 1 0 0
-6-4-20246
c(1 , 1 0 0 )
c(-6, 6)
black=true, red=syntetic
Vediamo che la traccia rossa è un white noise, fluttua rapidamente, quella nera è più strutturata. Troppi punti insieme schiacciavano la struttura.
Modello a tempo discreto
Vediamo l’autocorrelazione della serie storica:
0 2 0 4 0 6 0 8 0 1 0 0
0.00.20.40.60.81.0
L a g
ACF
S e r ie s x .e m p
La correlazione di un white noise è nulla immediatamente, questa no. Proviamo un modello del tipo (sappiamo che è gaussiano)
Xn = a1Xn−1 + a2Xn−2 + a3Xn−3 + a4Xn−4+ b + σWn. Dobbiamo trovare i coefficienti. Usiamo la regressione multipla
REG <- lm(Y~X1+X2+X3+X4) Giudichiamola col comando
summary(REG)
Dopo un po’ di tentativi si vede che lo stesso risultato si ottiene col modello Xn = a1Xn−1 + σWn
con
a = 0.513, σ = 0.969.
Ecco come appaiono la traccia (nera) ed una sintentica (rossa):
0 2 0 4 0 6 0 8 0 1 0 0
-6-4-20246
c (1 , 1 0 0 )
c(-6, 6)
Il risultato è decisamente migliore.
Previsione col modello precedente
Il modello appena visto può essere usato anche per effettuare previsioni: noti i valori fino ad un certo tempo n − 1, si calcola la previsione al tempo n tramite il modello, senza noise.
Eseguiamo una finzione.
- Supponiamo di possedere la serie storica solo per i primi 500 valori.
- Con essi eseguiamo di nuovo un fit del modello, trovando ora:
a = 0.501, σ = 0.965.
- Usiamo questo modello per prevedere il valore al tempo 501.
- Immaginiamo poi che passi il tempo, diventi noto il valore al tempo 501, ed usandolo prevediamo il valore al tempo 502; e così via.
- tracciamo i due grafici:
T i m e
x.emp[501:L]
0 1 0 0 2 0 0 3 0 0 4 0 0 5 0 0
-3-2-10123
L’effetto a grande scala è abbastanza buono, ma più in dettaglio si vede che il modello è povero:
T i m e
x.emp[501:600]
0 2 0 4 0 6 0 8 0 1 0 0
-2-10123
L’indicazione di questa povertà è nel basso coefficiente R2 (il quadrato della correlazione tra input ed output).
Fit tramite un’equazione differenziale
Si può anche tentare un fit tramite un’equazione differenziale lineare del tipo dXt
dt = −λXt + σ dWdtt
che produce processi gaussiani. Ci aspettiamo però che il risultato sia abbastanza simile al precedente, se si pensa alla discretizzazione di Eulero:
Xtn+1 = Xtn − h ⋅ λXtn + σBtn+1− Btn cioè
Xtn+1 = 1 − h ⋅ λXtn + σWtn+1
avendo posto Wtn+1 = Btn+1 − Btn.
Fit nel caso non gaussiano
Assai più difficile è trovare un modello quando i dati non hanno una statistica gaussiana.
Dagli esempi precedenti sono emersi due elementi chiave di una serie storica: le sue proprietà statistiche, la sua struttura di autocorrelazione.
Se decidiamo di soprassedere su un fit preciso delle proprietà statistiche, si possono usare i metodi lineari precedenti anche nel caso non gaussiano, cercando di catturare al meglio la struttura di autocorrelazione.
Se abbiamo una serie storica stazionaria, con autocorrelazione relativamente semplice a memoria breve (come quella precedente, che va a zero dopo pochi valori), ed invece
vogliamo catturare bene le proprietà statistiche non gaussiane, possiamo usare la teoria
delle equazioni di Fokker-Planck. Per un cenno si vedano le dispense “Appunti teorici sulle equazioni differenziali stocastiche ed equazione di Fokker-Planck”.