/* Introduction to Time Series Analysis, DG ECFIN Laura Mayoral November 2021 */ /******************SIMULATING VAR PROCESSES************** This file generates a VAR(2) processes ***********************************************************************/ clear all set seed 777 local T = 700 set obs `T' gen time = _n *tsset the data tsset time generate y1 = . generate y2 = . generate eps1 = . generate eps2 = . *Setting parameter values mata: mu = (0.1\0.4) A1 = (0.6,-0.3\0.4,0.2) A2 = (0.2,0.3\-0.1,0.1) Sigma = (1,0.5\0.5,1) end *Create the matrices mu A1 A2 and Sigma, F=[A1 A2// I2 0] mata: K = p = 2 // K = number of variables; p = number of lags F = J(K*p,K*p,0) F[1..2,1..2] = A1 F[1..2,3..4] = A2 F[3..4,1..2] = I(K) X = L = . eigensystem(F,X,L) L' 1 end *All eigenvalues smaller than one, this implies that det(I-F) has all roots outside of the unit circle. Stationary VAR++ *Drawing innovations from a multivariate normal mata: T = strtoreal(st_local("T")) u = rnormal(T,2,0,1)*cholesky(Sigma) epsmat = . st_view(epsmat,.,"eps1 eps2") epsmat[1..T,.] = u end *Getting the observed series mata: Sigma_e = J(K*p,K*p,0) Sigma_e[1..K,1..K] = Sigma Sigma_y = luinv(I((K*p)^2)-F#F)*vec(Sigma_e) Sigma_y = rowshape(Sigma_y,K*p)' theta = luinv(I(K)-A1-A2)*mu Q = cholesky(Sigma_y)*rnormal(K*p,1,0,1) data = . st_view(data,.,"y1 y2") data[1..p,.] = ((Q[3..4],Q[1..2]):+mu)' end forvalues i=3/700 { qui { replace y1 = 0.1 + 0.6*l.y1 - 0.3*l.y2 + 0.2*l2.y1 + 0.3*l2.y2 + eps1 in `i' replace y2 = 0.4 + 0.4*l.y1 + 0.2*l.y2 - 0.1*l2.y1 + 0.1*l2.y2 + eps2 in `i' } } tsline y1 y2, graphregion(color(white)) graph export "/Users/lauramayoral/Dropbox/docum_dropbox/clases/ECFIN_time series/Slides/figures/VAR.pdf", as(pdf) name("Graph")