' ====================================================== ' Heteroskedasticity and Autocorrelation Consistent (HAC) Covariances ' ====================================================== ' 1.- Genera una serie e de 200 números aleatorios y luego la transforma en el vector v ' 2.- Con los primeros 100 elementos de v construye v1 y con los restantes v2 ' 3.- Transforma los vectores v1 y v2 en las series ey y ex (Notar que Cov(ex,ey)=0) ' 4.- Genera los procesos autoregresivos: ' yt = 0.8 yt-1 + eyt ' xt = 0.8 xt-1 + ext ' 5.- Estima las ecuaciones: ' equation ols1: yt = a + b xt + ut ' equation ols2: yt = a + b xt + ut (teniendo en cuenta la corrección de Newey-West) ' 6.- Calcula el intervalo de confianza ( b -2 sd(b), b+2 sd(b) ) para cada ecuación ' Los resultados de este cálculo están guardados en la matriz comparar, ' columna 1: límite inferior de ols1, ' columna 2: límite superior de ols1, ' columna 3: 1 si el 0 está en el intervalo y 0 en caso contrario ' columna 4: vacia ' columna 5, 6 y 7: idem 1, 2 y 3 pero para la ols2 ' 7.- Repete el procedimiento n veces y guarda los resultados en las filas de comparar ' 8.- El porcentaje de veces que el cero está en el intervalo lo indican las filas del vector resultado. ' La primer fila corresponde al porcentaje de veces que el cero está en el intervalo en el caso de ' la ecuación 1 y la segunda al de la ecuación 2 que tiene un estimador consistente de la variaza. ' Notice that the sample size T is important ' Simulation parameter !N=1000 'Number of draws !T=500 'Sample size !wind=200 'Window !cl=0.95 'Confidence level !tn=!T+!wind 'rndseed 123 'Seed create u !tn 'Creating workspace vector(!N) ciols= 0 vector(!N) ciolsnw = 0 scalar q=@qnorm((1+!cl)/2) smpl 1 !tn 'Range to work for !i = 1 to !N 'DGP '************************************************** 'Parameters: !cx=0 !phix=0.8 !cy=0 !phiy=0.8 genr y= !cy + nrnd genr x= !cx + nrnd smpl 2 !T genr y= !cy + !phiy*y(-1) + nrnd genr x= !cx + !phix*x(-1) + nrnd smpl !wind+1 !tn 'Model equation ols.ls y c x equation olsnw.ls(N) y c x ciols(!i)=(ols.@coefs(2)-q*ols.@stderrs(2)<0 and ols.@coefs(2)+q*ols.@stderrs(2)>0) ciolsnw(!i)=(olsnw.@coefs(2)-q*olsnw.@stderrs(2)<0 and olsnw.@coefs(2)+q*olsnw.@stderrs(2)>0) next range 1 !N 'Simulation results range smpl 1 !N table(3,3) Results Results(1,1)="OLS" Results(1,2)="OLSNW" Results(3,1)=@mean(ciols) Results(3,2)=@mean(ciolsnw) Results.setlines(2) d Results.display