Generación de Series Temporales

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

financeandeconometrics.wordpress.

com

GENERACIÓN DE SERIES TEMPORALES


Docente: Rafael Bustamante

1. Ruido Blanco
Creamos un nuevo programa donde escribimos:

create u 1 200
series WN1 = rnd
series WN2 = nrnd
series WN3 = 2 + @sqr(3)*nrnd

El comando “rnd” genera números aleatorios en el intervalo [0,1] con


distribución uniforme. El comando “nrnd” genera números aleatorios con
distribución normal con media zero y varianza uno.

Por lo tanto: WN1 U(0,1),WN2 N(0,1) y WN3 N(2,3) .

AR(1): Para generar un proceso AR(1) vamos a crear un nuevo programa


y escribiremos lo siguiente:

create u 1 200
scalar rho = 0.5
smpl @first @first
series ar1 = 0
smpl @first+1 @last
series ar1 = rho*ar1(-1)+ nrnd

El comando “scalar” genera un escalar de nombre rho y valor 0.5. Para el


proceso AR(1) el valor de rho debe asignarse en el intervalo (-1,1) para que
el proceso sea estacionario y causal.
El comando “smpl” es para indicar que vamos a trabajar son una muestra
en lugar del rango del workfile. En esta línea le estamos indicando a
EViews que trabaje únicamente con el primer elemento de las series.

El comando series, genera la series “ar1”. Como estamos indicando ar1=0


y además estamos trabajando con la muestra del primer elemento, “series
ar1 = 0” genera una serie de ceros de un elemento.

La siguiente línea le indica a EViews que tome una muestra desde el


segundo elemento hasta el ´ultimo. Por ´ultimo, genera la serie ar1
multiplicando al valor de ar1 del periodo anterior (que para el primer
periodo lo hemos generado igual a cero) por una constante rho que puede
tomar valores entre -1 y 1 (en este caso 0.5) y sumándole un número
aleatorio con distribución N(0, 1). Para generar un “random walk” asignar
a rho el valor 1.

AR (2)
create u 1 200
smpl @first @first+1
series ar2 = 0
smpl @first+2 @last
series ar2 = 0.2*ar2(-1)+0.5*ar2(-2)+ nrnd

La única diferencia con el programa anterior es que ahora necesitamos


asignar dos valores iguales a cero. Procesos de media móvil

create u 1 200
series u = 10 + @sqr(3)*nrnd
series ma1 = u + 0.5*u(-1)
series ma2 = u + 0.5*u(-1) - 0.9*u(-2)

La serie u es un proceso de ruido blanco. Mientras que ma1 y ma2 son


procesos MA(1) y MA(2).
Proceso ARMA(1,1)

create u 1 200
series u2 = nrnd
series ma11 = u2 + 0.5*u2(-1)
smpl @first @first
series arma11 = 0
smpl @first+1 @last
series arma11 = 0.5*arma11(-1) + ma11
smpl @first @last

Proceso ARMA(2,2)
create u 1 200
series u3 = nrnd
series ma22 = u3 + 0.5*u3(-1) + 0.4*u3(-2)
smpl @first @first+1
series arma22 = 0
smpl @first+2 @last
series arma22 = 0.5*arma22(-1) + 0.2*arma22(-2)+ ma22
smpl @first @last

Generación de un Sistema de Variables Cointegradas


create u 1 100
scalar rho = 0.6
scalar beta = 5
series z = 0 series x = 0
smpl @first+1 @last
series z = rho* z(-1) + nrnd
series x = x(-1) + nrnd
series y = beta*x + z

Este programa genera un sistema de variables que están cointegradas con


vector de cointegración (1, −β). La forma en que lo genera es la siguiente:

1. Genera una serie z que es AR(1).


2. Genera una serie x que es un random walk.
3. Genera una serie y = βx + z

Simulaciones
create u 1 1000
scalar rho = 0.1
vector(1000) t = 0
for !i = 1 to 1000
smpl @first @first
series y = 0
smpl @first+1 @last
series y = rho*y(-1)+ nrnd
equation eq1.ls y c y(-1)
t(!i)=eq1.@tstats(2)
next
smpl @first @last mtos(t,tstat)

La forma en que este programa funciona es la siguiente:


1. Genera un proceso AR(1) y t = y t-1 +e t .
2. Estima por OLS: y t = + y t-1 +e t
3. Calcula el estadístico t del coeficiente estimado b y lo guarda en el vector
“t”.
4. Repite el proceso 1000 veces.
5. Muestra los resultados en la serie “tstat”.

Regresión Espuria: Variables Estacionarias


create u 1 200
scalar n = 1000
matrix(n,7) comparar=0
vector(n) r1=0 vector(n) r2=0
for !j = 1 to n
smpl 1 200
series e = nrnd
stom(e,v)
vector(100) v1=0
vector(100) v2=0
for !i = 1 to 100
v1(!i)=v(!i)
v2(!i)=v(100+!i)
next
mtos(v1,ey)
mtos(v2,ex)
smpl 1 2
series y = 0
series x = 0
smpl 2 100
series y = 0.8*y(-1) + ey
series x = 0.8*x(-1) + ex
equation ols1.ls y c x
comparar(!j,1) = ols1.@coefs(2) - 2*ols1.@stderrs(2)
comparar(!j,2) = ols1.@coefs(2) + 2*ols1.@stderrs(2)
comparar(!j,3) =(-
comparar(!j,1)*comparar(!j,2)/abs(comparar(!j,1)*comparar(!j,2))+1)/2
r1(!j)=comparar(!j,3)
equation ols2.ls(n) y c x
comparar(!j,5) = ols2.@coefs(2) - 2*ols2.@stderrs(2)
comparar(!j,6) = ols2.@coefs(2) + 2*ols2.@stderrs(2)
comparar(!j,7)=(-
comparar(!j,5)*comparar(!j,6)/abs(comparar(!j,5)*comparar(!j,6))+1)/2
r2(!j)=comparar(!j,7)
next
scalar s1 = @sum(r1)/n
scalar s2 = @sum(r2)/n
vector(2) resultado=0
resultado(1)=s1
resultado(2)=s2

La forma en que este programa trabaja es la siguiente:


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 autorregresivos: yt  0,8 yt 1  eyt
xt  0,8 yt 1  ext
5. Estima las ecuaciones:
Ecuación ols1: yt  a  bxt  ut
Ecuación ols2: yt  a  bxt  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.

1 si 0 está en el intervalo
0 en caso contrario
Columna 4: vacía
Columna 5, 6 y 7: ídem 1, 2 y 3 pero para la ols2.
7. Repite 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.

9. La primera 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 varianza.
Regresión Espuria: Variables no Estacionarias
create u 1 200
series e = nrnd stom(e,v)
vector(100) v1 = 0
vector(100) v2 = 0
for !i = 1 to 100
v1(!i) = v(!i)
v2(!i) = v(100+!i)
next
mtos(v1,ey)
mtos(v2,ex)
smpl 1 2
series y = 0
series x = 0
series y1 = 0
series x1 = 0
smpl 2 100
series y = y(-1)+ ey
series x = x(-1) + ex
series y1 = 2 + y1(-1) + ey
series x1 = 2 + x1(-1) + ex
equation ols.ls y c x
equation ols1.ls y1 c x1

La forma en que este programa trabaja es la siguiente:

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 , e y )  0) .
4. Genera los procesos
a) yt  yt 1  e yt (random walk sin drift)
b) xt  xt 1  ext (random walk sin drift)
c) yt  2+ yt 1  e yt (random walk con drift)
d) xt  2+ xt 1  ext (random walk con drift)
5. Estima las ecuaciones:
a) ecuación ols: yt  a  bxt  ut
b) ecuación ols1: y1t  a  bxt  u1t

También podría gustarte