Está en la página 1de 20

Econometría clase 12, 2020.

REGRESION EN SERIES DE TIEMPO


INTRODUCCIÓN
Se puede considerar a una tendencia como estocástica cuando muestra cambios inexplicables en
su dirección. En contraste a esto, una tendencia será aleatoria cuando se tiene un modelo con
explicación aceptable de la tendencia de dicha serie.

El comportamiento de una variable esta condicionada a la aleatoriedad que tenga.

Mientras menor aleatoriedad de las variables los ajustes, pronósticos van a tener menor
incertidumbre y serán mas certeros.

Ejemplo: La planificación de la producción de una fábrica depende del pronóstico de las ventas, de
una demanda futura.

MODELOS LINEALES REGRESIÓN EN SERIES DE TIEMPO


•Los modelos lineales van a estar están constituidos por ciertos elementos asociados a su
predictor lineal que apuntan al comportamiento de la variable en tiempos pasados.
Un modelo para una serie de tiempo {𝑥𝑡 :𝑡 = 1,…𝑛} es lineal si se puede expresar como:

Donde 𝑢𝑖,𝑡 es el valor de la i-ésima variable predictora en el tiempo 𝑡, 𝑧𝑡 es el error en el tiempo 𝑡, y


𝛼0 ,𝛼1 ,…,𝛼𝑚 son parámetros del modelo, que pueden ser estimados por mínimos cuadrados. Un
ejemplo del modelo lineal es la función polinomial de 𝑡 de orden 𝑝:

Las variables predictoras pueden ser escritas como:

Realizar pronósticos con tan pocos datos es muy difícil, por eso se deben hacer simulaciones.

SIMULACIÓN
*Apunta a crear datos, a inventar datos; pero que esos datos sigan algún patrón en específico y
comúnmente lo que se hace es simular datos y ajustar a continuación un modelo de regresión que
intente replicar esa simulación y comparar los parámetros

*Si simulamos datos, lo que hacemos es indicarle los parámetros teóricos, que representan de
buena manera el comportamiento de esa variable.

•En regresiones de series de tiempo, es común que la serie de error 𝑧𝑡 esté autocorrelacionada.
En el siguiente código se simulará y se graficará una serie con tendencia de línea recta (50 + 3𝑡)
con errores autocorrelacionados.

*Aquí se crean 2 variables, z y w que siguen una distribución normal, son 100 datos para cada
variable y una desviación estándar de 20. Ambas variables son iguales

*Desde el tiempo 2 al tiempo 100 va a seguir el error autocorrelacionado, el 0,8 se entrega (es con
el cual se comporta el error auto correlacionado).

Intercepto 50 y la pendiente es +3

AJUSTE DEL MODELO


•Los modelos lineales se suelen ajustar usualmente minimizando la suma de los cuadrados del
error

El modelo logra representar de manera adecuada

MODELOS LINEALES CON VARIABLES ESTACIONALES


Ya que las series de tiempo son observaciones medidas de forma secuencial en el tiempo, suelen
presentarse efectos estacionales en los datos.

VARIABLES ADITIVAS DE INDICADORES ESTACIONALES


El indicador estacional de línea recta para una variable tendrá la siguiente forma:

Alfa  asociado al tiempo (tendencia)

st  asociada a la estacionalidad

zt  asciada al ruido

Va haber un beta para cada modelo (dependiendo si es mensual, trimestral o anual va a ser la
cantidad de betas).

ESTIMACIÓN
Los parámetros del modelo en esta ecuación pueden ser estimados por MCO o Mínimos cuadrado
generalizados, tratando al término estacional 𝑠𝑡 como un factor. En R, la función factor() puede ser
aplicada para los índices estacionales extraídos usando la función cycle().

*Función cycle: Extrae la componente estacional de la variable

*La componente estacionalidad (seas) se debe incorporar como un factor. Para que estime cada
beta para cada trimestre, mes o año.

*Que se ponga el 0 significa que es un modelo sin intercepto.

MODELOS NO LINEALES
Por ejemplo, si se conoce que una serie está derivada de un proceso no lineal, puede que esté
basada en una ley determinística en la ciencia, es por eso que será mejor usar esta información en
la formulación del modelo y ajustar un modelo no lineal directamente a los datos.

Ejemplo: Tasa se contagios tiene un comportamiento exponencial

SIMULACIÓN Y ESTIMACIÓN EN R
El modelo puede ser estimado por mínimos cuadrados no lineales, de la siguiente manera:

Ahí comienza el ajuste del modelo

PREDICCIÓN EN R
La función genérica para hacer predicciones en R es predict(). La clave para usar esta función con
un modelo de regresión es asegurarse que la nueva data está debidamente definida y etiquetada
en un data.frame.
PREDICCIÓN EN R

PRONÓSTICOS
Un pronóstico es una predicción para el futuro. En el contexto de regresión de series de tiempo,
un pronóstico implica la extrapolación del modelo ajustado evaluando en él la función para nuevas
series de tiempo. El problema principal con esta aproximación es que las tendencias que se
presentan en las series ajustadas pueden cambiar en el futuro. Por lo tanto, es mejor pensar en un
pronóstico de una regresión como un valor condicional esperado en tendencias pasadas que
continúan en el futuro.

PRONÓSTICO EN R
La función genérica para hacer pronósticos en R es forecast(), mediante esta función se indica el
modelo que mejor se ajusta a los datos observados y los periodos hacia el futuro que necesita
proyectar el comportamiento de la variable.
Linea azul replica el comportamiento hacia el futuro.
EJERCICIO EN R
Para el caso de la regresión de series de tiempo hay dos formas de poder aproximarnos a ella, una
a través de la simulación de datos ficticios que siguen ciertos patrones (Cuando no hay datos
observados) para evaluar.

Para el caso lo que se quiere es simular una variable (x) pero la particularidad es que tiene un error
autocorrelacionado, es decir, el error que presenta la variable en el tiempo presente(t) depende
de un periodo atrás (t-1), entonces el error o ruido la aleatoriedad que presente el mes pasado va
a estar afectando en el mes presente a la variable que estemos modelando.

Una vez simulados esos datos se va a justar un modelo de regresión para comparar los parámetros
, los que se dieron en un principio versus los que da el modelo ajustado.

La función Set.Seed (1) es para fijar una semilla y así la simulación de exactamente los mismos
resultados

LUEGO CREAR DOS VARIABLES:


1.- SE VA A LLAMAR Z

2.- LA OTRA SE VA A LLAMAR W

*Que ambas sigan una distribución normal, son 100 datos con desviación estándar 20 :

Ahí se crean 100 datos, las dos variables son idénticas y eso ocurre porque se le da la igualdad
lineal.
POSTERIORMENTE SE VA A PEDIR ITERAR VALORES QUE PARTAN DESDE 2 AL 100
*Es decir de la observación 2 en adelante

*Que el valor del error al tiempo t dependa de un resago ejemplo (t-1, t-2, t-3)

Z es la variable aleatoria que representa el error estocastico y W también es una variable aleatoria
que representa el error estocastico pero del modelo de error, es decir es el error estocastico del
error.

EL TIEMPO VA A IR DE 1 A 100

LA VARIBLE X SE VA A SIMULAR DE LA SIGUENTE MANERA:

X = 50 (intercepto) + 3 (pendiente) * Time + z (error autocorrelacionado)

*Se hace correr para crear la variable x

LUEGO SE GRAFICA CON UN PLOT

Tiene una variable X simulada, su intercepto es 50, una pendiente +3


Pero la particularidad es que tiene un error autocorrelacionado y eso hace que la variable al
simularla tenga ese comportamiento aleatorio.
Esta grafica se genero a partir de datos inventados

AHORA SE VA AJUSTAR UN MODELO DE REGRESION A ESTOS DATOS Y COMPARAR LOS


PARAMETROS DEL MODELO DE REGRESIÓN CON LOS PARAMETROS DE LA VARIABLE
SIMULADA
Para eso basta con :

La función “lm” (lineal model) es la que se va a utilizar, x es la variable que se quiere ajustar, va a
estar en función del tiempo

Se va a pedir que muestre los coeficientes con “coef”

Se había pedido que tuviera un intercepto de 50 y una pendiente de +3, lo que me dice el modelo
es:

Que el intercepto es 58 y la pendiente es 3,06 ; o sea el modelo, el ajuste representa de manera


bastante bien el comportamiento de la variable simulada. Con esto lo que se ve es como se
acercan los parámetros estimados muestrales a los parámetros poblacionales que dan vida a lo
que se esta mostrando, esa es la idea de la simulación.
SE VA A SIMULAR UNA VARIABLE QUE SIGUE COMPORTAMIENTO NO LINEAL

1.- Se va a fijar una semilla con :

2.- Se va a crear una variable que sigue una distribución normal, con 100 datos y desviación
estándar 10:

3.- Otra variable que va a ser solo una replica:

4.- Este va ser el modelo de autocorrelación :

LUEGO SE VA A GRAFICAR CON EL PLOT:


Se ve un comportamiento exponencial a lo largo del tiempo (Eje x representa el tiempo)

PARA AJUSTAR EL MODELO NO LINEAL

LUEGO SE HACE UN SUMMARY PARA MOSTRAR LOS PARÁMETROS:

Dice que alfa0 es 1,17

Se había dicho que era 1 y estimo 1, 17

Y alfa 1 se había dicho que era 0,05 y estimo 0,048

*POR LO CUAL EL MODELO SE AJUSTA BASTANTE BIEN A LOS DATOS OBSERVADOS Y LA


DIFERENCIA QUE HAY ENTRE EL VALOR ESTIMADO CON EL VALOR OBSERVADO DE LOS
PARAMETROS ES MUY BAJA.

El error estándar de los parámetros es muy bajito y ambos son estadísticamente significativos.

((((EJERCICIOS ANEXOS DE SIMULACION))))


EJERCICIO PARA EL CONTROL Y LA PRUEBA
1.- Importar base de datos desde stata

2.- Darle la estructura de tiempo con “ts”

Empieza el primer trimestre de 1967, termina el segundo trimestre de 2002

La frecuencia es trimestral, y hay 4 en un año.

3.- Hacer un plot  plot(gnp.ts)

Ese es el comportamiento del PNB a precios corrientes, tiene una tendencia al alza muy marcada,
la componente estacional no se logra identificar de manera muy clara

Por eso se DESCOMPONE la serie:

1.-Con la función “decompose”


2.- Plot de la decompose de gnp.ts  MODELO ADITIVO

Lo que se ve ahí es específicamente es las componentes asociadas al PNB (MODELO ADITIVO)

1.- Variable observada

2.- Tendencia

3.- Estacionalidad : Muestra que es un comportamiento no definido, ya que es mas bien uniforme

4.- Aleatoriedad

Plot MODELO MULTIPLICATIVO  plot(decompose(gnp.ts, type = "mult"))

No hay una diferencia muy grande, solo cambia muy levemente la aleatoriedad

No cambia mucho entre un modelo y otro


Nos vamos a fijar en la componente ALEATORIA ya que esta componente es la que va a marcar el
paso en términos de “desde que periodo de tiempo es recomendable utilizar para ajustar el
modelo de regresión”.

Para el caso si ajustaramos un modelo de regresión del 1967 en adelante encontraremos que la
alta aleatoriedad que presenta la variable del 1967 y 1983 aproximadamente va a perjudicar el
ajuste del modelo, no va a ser muy bueno el modelo en términos de ajuste si se considera todo el
periodo y posteriormente los pronósticos van a tener un mayor nivel de incertidumbre.

La incertidumbre de un pronostico se mide a través de su intervalo de confianza, mientras mas


angostos sean los intervalos de confianza más certero va a ser ese pronostico.

UNA FORMA DE COMPARAR DOS MODELOS DE REGRESION ES VIENDO VERIFICANDO LOS


INTERVALOS DE CONFIANZA, EL QUE TENGA MENOR INTERVALO SERÁ EL MEJOR.

PARA EL CASO SE HARÁ CASO A LA RECOMENDACIÓN

PARA EL CONTROL Y PRUEBA


1.- Se va sacar una ventana

gnpt = window(gnp.ts, start = 1990) # se extrae una submuestra para trabajar con una parte de los datos

(es una submuestra)

DEL OBJETO CREADO SE VA SACAR LA COMPONENTE ESTACIONAL Y TIEMPO

 La componente estacional se va a sacar con LA FUNCION ”CYCLE”


 La componente tiempo se va a extraer de la función “time”

# para extraer los terminos estacionales y el termino del tiempo para dicha serie

Seas <- cycle(gnpt) # para el termino estacional

Time <- time(gnpt) # para el termino del tiempo

*Al hacerlos correr se van a crear los nuevos objetos

2.-AHORA SE REGRESIONARA EL MODELO

temp.lm <- lm(gnpt ~ 0 + Time + factor(Seas))


3.- UNA VEZ AJUSTADO EL MODELO SE VEN LOS COEFICIENTES

 coef(temp.lm)

Ese es el alfa asociado al tiempo, y hay 4 betas

Representan el primer, segundo, tercer y cuarto trimestre respectivamente, no son interpretables


en tipo numérico

Solo se aprecian diferencias en magnitudes.

El primer beta es 528.322 en valor absoluto, beta2 es 528.333, beta 3 528366 y beta4 528.348 eso
quiere decir que son prácticamente similares y eso es una muestra inequicova de que la variable
no presenta variables estacionales

Si la estacionalidad estuvieran marcados, los parámetros(beta) de los trimestres serían diferentes.


PARA LA PREDICCION SE HARA LO SIGUIENTE:

# Prediccion (ajuste del modelo)

new.t <- time(ts(start = 1990, end = c(2002, 2), fr = 4))

gnp.ts = ts(gnp96$gnp96, start = c(1967,1), end = c(2002,2),

frequency = 4)

gnpt = window(gnp.ts, start = 1990)

Seas <- cycle(gnpt)

Time <- time(gnpt)

temp.lm <- lm(gnpt ~ 0 + Time + factor(Seas))

pron = ts(predict(temp.lm, new.t), st = 1990, fr = 4)

ts.plot(gnp.ts, pron, lty = 1:2)

Acá esta la variable del PNB observada, y la punteada es el modelo ajustado

*Para el caso el ajuste es muy malo, hay regiones de subestimación y sobreestimación. Eso se
debe al periodo de tiempo que se esta ocupando en el modelo, probablemente se debe ocupar un
periodo mas acotado para mejorarlo.
Se pueden cambiar las fechas a 1995, esto pasaría

Ahí se observa una mejoría, aunque la ultima parte no la logra representar de manera muy clara.
Eso se debe a que no tiene una componente estacional muy marcada, muy característica

Entonces lo que esta condicionando el análisis es la componente de tiempo, ya que no es muy


representativa

Si se ajusta el modelo a toda la seríe sería peor

PARA EL CASO SE VA MANTENER DESDE EL 90 EN ADELANTE PARA CONTINUAR CON EL ANALISIS

A partir de ese ajuste se hará el pronostico


FUNCION FORECAST DE PROYECCION

library(forecast)
mod = tslm(gnpt ~ trend + season)
fc = forecast(mod, h = 8)
fc
plot(fc, type = "l")

Función tslm  se incorpora dentro del modelo la estacionalidad

AHORA SE AJUSTARÁ UN MODELO CON LA FUNCION LM


mod = tslm(gnpt ~ trend + season)
H = 8  son los semestres proyectados

Point forecast  es el valor proyectado

El valor proyectado para el tercer trimestre del 2002 es de 9681 unidades monetarias con un
intervalo de confianza que va entre 9400 y 9900, es decir, el promedio es 9600 pero puede
fluctuar entre 9400 y 9900 a un 80% de confianza

O puede fluctuar entre un 9200 y 10100 a un nivel de confianza de 95%


Mientras mas alto el nivel de confianza, mas se le exige a los resultados que se postulan
PARA EL VALOR PROYECTADO

Para el segundo trimestre de 2004 es de 10183, pero va a fluctuar entre 9907 (intervalo inferior) y
10460 (intervalo superior), para el caso del limite al 95% va entre 9755 y 10612.

El plot proyecta hasta el segundo trimestre del 2004


El valor proyectado para el tercer trimestre del 2002
El color mas lila es el intervalos de confianza de 80% y el gris que contiene al de 80% vendría
siendo el de 95%

También podría gustarte