MatLab per le Serie Storiche

MatLab per le S erie S toriche
Bernardi Mauro
Sapienza, University of Rome
MEMOTEF Department
April 3rd, 2014
1 / 20
Sommario
Simulazione di variabili aleatorie
Simulazione di processi ARMA
La verosimiglianza
Stima di massima verosimiglianza
Previsione
2 / 20
Simulazione di variabili aleatorie
L’ambiente Matlab fornisce un vasto numero di funzioni in grado di
generare valori da alcune tra le pi`
u note funzioni di densit`a di probabilit`a,
discrete, come ad esempio la distribuzione di Bernoulli, la distribuzione
Binomiale o la distribuzione di Poisson, oppure continue come la
distribuzione di Gauss (Normale), o la distribuzione Student–t (Gosset,
W.S.), oppure la distribuzione Chi–quadrato, univariate o multivariate.
Proviamo a simulare alcune variabili casuali. Fissiamo innanzitutto il
numero di reputazioni indipendenti e identicamente distribuite che
vogliamo simulare n = 1000. Simuliamo quindi n = 1000
realizzazioni
dalle seguenti variabili casuali: Normale ε i ∼ N µ, σ2 , Student–t
ε i ∼ T µ, σ2 , ν , Chi–quadrato ε i ∼ χ (α, β) e Gamma ε i ∼ G (α, β).
>>
>>
>>
>>
>>
>>
% definisce il numero di realizzazioni
n=1000;
% Normale
dMu = 0.0;
dSigma2 = 5.0;
vEps_1 = dMu + sqrt(dSigma2) * randn(n, 1);
3 / 20
Metodi di simulazione
Cerchiamo di approfondire come `e stato possibile generare un numero
casuale da una certa distribuzione di probabilit`a. Uno dei metodi pi`
u noti
`e il metodo della funzione di ripartizione inversa che consiste nel simulare
un numero da una distribuzione uniforme u ∼ U[0,1] e nel trasformarlo
utilizzando la funzione di ripartizione inversa, ovvero x = FX−1 (u ), dove
FX (x ) `e la funzione di ripartizione della variabile aleatoria X .
Example
Consideriamo la distribuzione Esponenziale Y ∼ E (λ), con densit`a di
probabilit`a fX (x ) = λe −λx e cdf FX (x ) = 1 − e −λx . La funzione di
ripartizione inversa `e:
x=−
log (1 − u )
log (u )
=−
,
λ
λ
u ∼ U[0,1] .
Ma come facciamo a generare una realizzazione da una variabile casuale
la cui cdf non `e nota in forma esplicita e pertanto non invertibile? Ad
esempio la Gaussiana.
4 / 20
Simulazione da una Gaussiana multivariata
Consideriamo una variabile casuale Gaussiana multivariata di dimensione
d, con media µ e matrici di varianze e covarianze Σ, ovvero
X ∼ Nd (µ, Σ). Un semplice metodo per simulare da questa
distribuzione multivariata consiste nel considerare la trasformazione
seguente
X = µ + ΩZ,
Z ∼ Nd (0, Id )
(1)
e la matrice Ω `e tale per cui ΩΩT = Σ.
5 / 20
Simulazione da una Gaussiana multivariata troncata
Consideriamo una variabile casuale Gaussiana multivariata troncata di
dimensione d, con media µ e matrici di varianze e covarianze Σ, ovvero
X ∼ Nd (µ, Σ) IAx≤b (x), dove il sistema di disequazioni Ax ≤ b
definisce il troncamento della variabile, ovvero la regione di valori
ammissibili per X.
In questo caso il metodo precedente per la simulazione da variabili casuali
Normali multivariate non `e applicabile. Per descrivere il metodo che
possiamo utilizzare nel caso di generazione da Normali troncate
consideriamo un esempio bivaccato.
Example
X1
X2
∼ N2
µ1
µ2
,
σ12
ρσ1 σ2
ρσ1 σ2
σ22
IX1 ≤b1 ,X2 ≤b2 (x1 , x2 )
6 / 20
Simulazione da una Gaussiana multivariata troncata
In generale il teorema della Normal condizionata, ci fornisce la
distribuzione delle variabili casuali X1 | X2 e X2 | X1 che sono
X1 | X2 ∼ N1 µ1|2 , σ12|2
X2 | X1 ∼ N1 µ2|1 , σ22|1
(2)
(3)
con momenti
µ 1|2
σ12|2
ρσ
= µ1 + 1 (X2 − µ2 )
σ
2 2
= σ1 1 − ρ2 .
(4)
(5)
Le distribuzioni condizionate ci forniscono un metodo semplice per
simulare dalla distribuzione congiunta in particolare quando la variabili
sono troncate.
7 / 20
Algoritmo
Inizializziamo il contatore delle simulazioni i = 1, e simuliamo un valore
accettabile dalla variabile casuale X1 . Successivamente, per i = 2, 3, . . .
(i )
(i )
1. simuliamo X2 ∼ N µ2|1 , σ2|1 IX2 ≤b2 (x2 )
(i )
µ 2|1
σ1|2
ρσ (i −1)
− µ1
= µ2 + 2 X1
σ
1 2
= σ2 1 − ρ2
(i )
(i )
2. simuliamo X1 ∼ N µ1|2 , σ1|2 IX1 ≤b1 (x1 )
(i )
µ 1|2
σ1|2
ρσ (i )
= µ1 + 1 X2 − µ2
σ
2 = σ12 1 − ρ2
(6)
che completano uno step dell’algoritmo Gibbs sampler.
8 / 20
Simulare una Normale univariata troncata
Un semplice metodo per simulare una distribuzione Normale troncata
consiste nell’applicare il troncamento alla generazione della distribuzione
Uniforme di partenza, come nell’esempio che segue.
Example
Supponiamo di voler simulare dalla seguente variabile casuale Normale
X ∼ N1 µ, σ2 Ia≤X ≤b (x ). Sar`a sufficiente simulare una variabile
u ∼ U[Φ−1 (a),Φ−1 (b )] e poi applicare il metodo descritto in precedenza.
9 / 20
Simulare un processo AR
Consideriamo il semplice
seguente provesso AR(1), yt = µ + φyt −1 + ε t ,
con ε t ∼ N 0, σε2 , per t = 1, 2, . . .
Per simulare questo processo `e sufficiente definire un punto di partenza
dell’equazione ricorsiva y0 e simulare i disturbi Gaussiani ε t , per
t = 1, 2, . . . , T .
Ad esempio consideriamo µ = 0, φ = 0.8, σε2 = 1 e T = 200.
>>
>>
>>
>>
>>
>>
>>
>>
% definisce il numero di realizzazioni
T=200;
% parametri
dMu = 0.0;
dPhi=0.8;
dSigma2=1.0;
vY=zeros(T, 1);
for it=1:T
vY(it)=dMu+dPhi*vY(it-1)+\sqrt(dSigma2)*randn(1,1);
end;
>> plot(vY, ’r’);
10 / 20
Simulare un processo AR(p)
Consideriamo il semplice seguente provesso AR(p),
con p > 1 finito,
yt = µ + ∑pj=1 φj yt −j + ε t , con ε t ∼ N 0, σε2 , per t = 1, 2, . . .
Per simulare questo processo `e sufficiente definire una serie di punt di
partenza dell’equazione ricorsiva y0 , y−1 , . . . , y−p +1 e simulare i
disturbi Gaussiani ε t , per t = 1, 2, . . . , T .
Ad esempio consideriamo un processo AR(2), quindi p = 2, con µ = 0,
φ1 = 0.8, φ2 = −0.5, σε2 = 1 e T = 200. Per semplicit`a fissiamo le
condizioni iniziali a zero (y0 = 0, y−1 = 0).
11 / 20
Simulare un processo MA(q)
Consideriamo il semplice seguente provesso MA(q),
con q ≥ 1 finito,
yt = µ + ∑pj=1 θj ε t −j + ε t , con ε t ∼ N 0, σε2 , per t = 1, 2, . . .
Per simulare questo processo `e sufficiente simulare ε 0 , ε −1 , . . . , ε −q +1
disturbi iniziali ciascuno da una distribuzione ε h ∼ N1 0, σε2 , per
h = 0, −1, −2 . . . , −q + 1 e poi procedere ricorsivamente come nel caso
del processo AR(p) definito in precedenza. Ad esempio consideriamo un
processo AR(2), quindi p = 2, con µ = 0, φ1 = 0.8, φ2 = −0.5, σε2 = 1
e T = 200. Per semplicit`a fissiamo le condizioni iniziali a zero
(y0 = 0, y−1 = 0).
12 / 20
ACF e PACF
Dato un generico processo stocastico {Xt , t ∈ Z}, la funzione di
autocovarianza al lag h misura la correlazione esistente tra la variabile
casuale Xt e la stessa variabile ritardata di h periodi, con
h = ±0, ±1, ±2, . . . , ovvero
C (Xt , Xt −h )
p
γ (h ) = Corr (Xt , Xt −h ) ≡ √
VXt VXt −h
(7)
mentre la funzione di autocorrelazione parziale misura la correlazione
esistente tra la variabile casuale Xt e la stessa variabile ritardata di h
periodi, al netto dell’effetto delle variabili intermedie
{Xt −1 , Xt −2 , . . . , Xt −h+1 }, ovvero al netto della correlazione di
(Xt , Xt −h ) con le variabili intermedie
P (h ) = Corr (Xt , Xt −h | Xt −1 , Xt −2 , . . . , Xt −h+1 ) .
(8)
13 / 20
Propriet`a della ACF
Dato un generico processo stocastico {Xt , t ∈ Z} stazionario in
covarianza, la funzione di autocovarianza al lag h
γ (h ) = Corr (Xt , Xt −h ) =
Ch
C0
(9)
e gode delle seguenti proprie`a:
14 / 20
Propriet`a della PACF
Dato un generico processo stocastico {Xt , t ∈ Z} stazionario in
covarianza, la funzione di autocorrelazione parziale al lag h si pu`o definire
nel modo seguente:
πh ≡ Corr (ε t , ε t −h )
(10)
dove
εt
ε t −h
= Xt − E (Xt | Xt −1 , Xt −2 , . . . , Xt −h+1 )
= Xt −h − E (Xt −h | Xt −1 , Xt −2 , . . . , Xt −h+1 )
(11)
(12)
e gode delle seguenti propriet`a:
15 / 20
Stima di ACF e PACF
Dato un campione finito di osservazioni x1 , x2 , . . . , xT realizzazioni di un
generico processo stocastico {Xt , t ∈ Z} supposto stazionario in
covarianza, la funzione di autocorrelazione parziale al lag h si pu`o definire
nel modo seguente:
πh ≡ Corr (ε t , ε t −h )
(13)
dove
εt
ε t −h
= Xt − E (Xt | Xt −1 , Xt −2 , . . . , Xt −h+1 )
= Xt −h − E (Xt −h | Xt −1 , Xt −2 , . . . , Xt −h+1 )
(14)
(15)
e gode delle seguenti propriet`a:
16 / 20
La funzione di verosimiglianza di un processo AR(1)
Consideriamo il semplice
seguente provesso AR(1), yt = µ + φyt −1 + ε t ,
con ε t ∼ N 0, σε2 , per t = 1, 2, . . .
La funzione di log–verosimiglianza condizionata del processo pu essere
scritta nel seguente modo:
` (θ, y2:T ) = log f (y1 , y2 , . . . , yT , θ )
(16)
T
=
∑ log ft (yt | yt −1 , θ )
(17)
"
#
T b2 1
εt
2
log σε + ∑
C−
2
2
t =2 σε
(18)
t =2
=
dove θ = µ, φ, σε2 , C = − T2 log (2π ) e b
ε t = (yt − µ − φyt −1 ), per
t = 2, 3, . . . , T .
17 / 20
Maximum likelihood estimation
Consideriamo il semplice seguente provesso autoregressivo
di ordine 1
Gaussiano, Yt = µ + φYt −1 + ε t , con ε t ∼ N 0, σε2 , per t = 1, 2, . . .
La stima di massima verosimiglianza dei parametri θ = µ, φ, σε2 si
ottiene massimizzando la funzione di log–verosimiglianza condizionata
rispetto a θ:
arg max ` (θ, y2 , y3 , . . . , yT ) ,
(19)
θ
dove (y2 , . . . , yT ) `e un campione di realizzazioni del processo AR(1).
18 / 20
Previsione
Example
Consideriamo il seguente processo {Zt , t ≥ 1}
1 + θ1 L + θ2 L2 Zt = et
(20)
con θ1 = −1.8 e θ2 = 0.8, ovvero
Zt = 1.8Zt −1 − 0.8Zt −2 + et .
(21)
La funzione di previsione (Difference Equation Form) al tempo t `e:
= 1.8zt − 0.8zt −1
= 1.8ˆzt (1) − 0.8zt
zˆt (k ) = 1.8ˆzt (k − 1) − 0.8ˆzt (k − 2) ,
zˆt (1)
(22)
zˆt (2)
(23)
∀k = 3, 4, . . . (24)
19 / 20
Intervalli di confidenza della previsione
Consideriamo l’esempio precedente. Vogliamo calcolare la varianza
dell’errore di previsione k–steps ahead
V (k )
= V [zt +k − zˆ (k )]
!
k −1
=
1+
∑ ψj2
σe2 ,
(25)
(26)
j =1
dove σe2 = V (ε t ) e i pesi ψj , j = 1, 2, . . . , k − 1 si ottengono risolvendo
(27)
1 + θ1 L + θ2 L2 (1 + ψ1 L + ψ2 L + . . . ) = 1
e uguagliando i coefficienti di pari grado del polinomio in L otteniamo
ψ0
ψ1
ψk
= 1
= θ1
= −θ1 ψk −1 + θ2 ψk −2
(28)
(29)
∀k = 2, 3, 4, . . .
(30)
20 / 20