| NOMBRES | CARNET |
|---|---|
| Gloria Abigail Rivera Cúa | RC14054 |
| Jacqueline Patricia Monico Rogel | MR15093 |
| ——————————– | ————- |
GT:02
Ciclo: II-2021
Fecha: 04 de Diciembre de 2021
Ciudad Universitaria, San Salvador, El Salvador
El contraste de Dickey-Fuller es una prueba de raíz única que detecta estadísticamente la presencia de conducta tendencial estocástica en las series temporales de las variables mediante un contraste de hipótesis. El contraste Dickey-Fuller es comúnmente aplicado en econometría para comprobar la presencia de tendencia sobre las series temporales. La particularidad del contraste Dickey-Fuller es que es la herramienta más fácil de usar comparado con otros contrastes más complejos que también prueban la presencia de tendencia en los datos.
Como en los contrastes de hipótesis anteriores, simplemente establecemos como hipótesis nula la presencia de tendencia estocástica en las observaciones. En el caso de la hipótesis alternativa, establecemos no tendencia estocástica en las observaciones. \[Δyt=αy(t−1)+∈t\]
Si el parámetro alfa es distinto de cero y es negativo, entonces la serie es estacionaria.
Ho:α=0 (∅−1)=0 ∅=1
Dentro de las pruebas que se tiene para probar la existencia de raíz unitaria se tiene la prueba de Dickey Fuller (DF), Dickey Fuller Aumentado (ADF).
Dickey Fuller
Para realizar la prueba de Dickey-Fuller en R se hace uso de la función ur.df() de la librería urca.
set.seed(10)
x = rnorm(100)
w = rnorm(100)
for (i in 2:100) {
x[i] <- x[i - 1] + w[i]
}
#El gráfico de la serie es el siguiente:
plot(x,type="l")Se hará el análisis de raíz unitaria:
library(urca)
df = ur.df(x, type="none", lags = 0)
#Los resultados podrán verse haciendo un summary:
summary(df)##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression none
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.31407 -0.86346 0.07963 0.66540 2.03542
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## z.lag.1 -0.009083 0.031521 -0.288 0.774
##
## Residual standard error: 0.9757 on 98 degrees of freedom
## Multiple R-squared: 0.0008466, Adjusted R-squared: -0.009349
## F-statistic: 0.08304 on 1 and 98 DF, p-value: 0.7738
##
##
## Value of test-statistic is: -0.2882
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau1 -2.6 -1.95 -1.61
El valor calculado de 0.288 es menor en términos absolutos a lo valores de tau, la hipótesis nula es aceptada, por lo tanto, existe raíz unitaria y la serie no es estacionaria. Otra forma es haciendo uso de la función adf.test() de la librería tseries.
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
##
## Augmented Dickey-Fuller Test
##
## data: x
## Dickey-Fuller = -1.9334, Lag order = 0, p-value = 0.6042
## alternative hypothesis: stationary
El p-valor es 0.6042, lo que nos dice que la hipótesis nula es aceptada y por lo tanto la serie no es estacionaria.
En esta prueba se puede excluir la constante e incluir una tendencia lineal.
El contraste es similar al caso de la prueba Dickey-Fuller:
• 𝐻0: 𝛿 = 0 → Existe raíz unitaria, 𝑥𝑡 no es estacionaria.
• 𝐻1: 𝛿 ≠ 0 → No existe raíz unitaria, 𝑥𝑡 es estacionaria.
Si: • 𝜏 -calculado en valor absoluto > 𝜏 -crítico en valor absoluto: Se rechaza 𝐻0.
• 𝜏 -calculado en valor absoluto < 𝜏 -crítico en valor absoluto: Se acepta 𝐻0.
Para hacer la estimación de dicho test en R se usan las mismas funciones que para el Dickey-Fuller simple, pero especificando en el número de rezagos igual a 1. Se puede observar que en ambos casos la hipótesis nula es aceptada y esto da razón de la existencia de raíz unitaria en la serie, por lo tanto, esta es estacionaria.
##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression none
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.25453 -0.90101 0.02681 0.70255 1.97744
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## z.lag.1 -0.01413 0.03282 -0.430 0.668
## z.diff.lag 0.06424 0.10583 0.607 0.545
##
## Residual standard error: 0.983 on 96 degrees of freedom
## Multiple R-squared: 0.00467, Adjusted R-squared: -0.01607
## F-statistic: 0.2252 on 2 and 96 DF, p-value: 0.7988
##
##
## Value of test-statistic is: -0.4304
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau1 -2.6 -1.95 -1.61
Formula del Estadistico: tα=αSE(α)
Con esta especificación de la prueba, el valor del estadístico (-0.4304) es mayor en valor absoluto a valor critico al 10 porciento (-1.61), por lo que ahora la conclusión se modifica y se puede asegurar que las variables están cointegrados.
Primero guardamos los datos proporcionados en un vector para tener las 35 observaciones y se las asignamos a un variable a la cual denominamos variaciones.
variaciones<-c(67, 63,76,66,69,71,72,71,72,72,83,87,76,79,74,81,76,77,68,68,74,68,69,75,80,81,86,86,79,78,77,77,80,76,67)
variaciones_ts<-(variaciones)
plot.ts(variaciones_ts)A partir de la gráfica podemos darnos cuenta que no es estacionaria pues no se ve una tendencia, es decir, en otras palabras las observaciones están muy alejadas las unas de las otras.
A continuación se realiza un pequeño análisis exploratorio para conocer cómo se comportan los datos
Promedio
## [1] 74.88571
## [1] 6.091322
Autocorrelacion parcial
Para intentar solucionar la dispersión de los datos vamos a obtener la diferencia de la serie, para tratar de suavizar ese comportamiento.
se comprueba si es estacionaria o no, para ello se realizara la prueba de Dickey-Fuller aumentada para la hipótesis nula de una raíz unitaria de una serie temporal univariada x(de manera equivalente, x es una serie temporal no estacionaria).
##
## Augmented Dickey-Fuller Test
##
## data: dif_variaciones_ts
## Dickey-Fuller = -2.9232, Lag order = 3, p-value = 0.2153
## alternative hypothesis: stationary
Comentario: Con lo cual podemos deducir que no es estacionaria.
Ahora vamos a encontrar los parámetros que mejor se ajusta a nuestros datos con la función auto.arima().
## Series: variaciones_ts
## ARIMA(1,0,0) with non-zero mean
##
## Coefficients:
## ar1 mean
## 0.5705 74.3293
## s.e. 0.1435 1.9151
##
## sigma^2 estimated as 26.34: log likelihood=-106.07
## AIC=218.15 AICc=218.92 BIC=222.81
Según S. Johansen la mayor parte de las series temporales son no estacionarias y las técnicas convencionales de regresión basadas en datos no estacionarios tienden a producir resultados espurios Sin embargo, las series no estacionarias pueden estar cointegradas si alguna combinación lineal de las series llega a ser estacionaria. Es decir, la serie puede deambular, pero en el largo plazo hay fuerzas económicas que tienden a empujarlas a un equilibrio. Por lo tanto, las series cointegradas no se separarán muy lejos unas de otras debido a que ellas están enlazadas en el largo plazo.
Aplicable a (Vectores autorregresivos). Es una prueba de máxima verosimilitud que requiere grandes volúmenes de datos (100 ó más) Prueba la existencia de múltiples vectores de cointegración entre las variables, mediante la prueba de la Traza y del Eigenvalue máximo. Descansa fuertemente en la relación entre el rango de la matriz y sus raíces características.
Prueba de hipótesis con el p-value y/o (Prob).
En estadística es convencional rechazar la hipótesis nula con un nivel de significación, cuando se rechaza la hipótesis nula se dice que los resultados del estudio son estadísticamente significativos al nivel de significancia α = 0.05. Cómo interpretar los p-values o los valores de las probabilidades:
P<.10 No significativo 0.05<p<0.10 marginalmente significativo 0.01<p<0.01 Significativo 0.001<p<0.01 altamente significativo p<0.01 fuertemente significativo.
Para determinar el número de vectores de cointegración la metodología de Johansen utiliza dos pruebas:
Esta prueba está basada en la razón de máxima verosimilitud
\[ln[LMV(r)/LMV(r+1)]\]
y se efectua secuencialmente para
r=0,1,…,n−1
Esta prueba corrobora la hipótesis nula de que el rango de cointegración es r versus la alterna de que el rango de cointegración es r+1
El estadístico de prueba es
\[ℓ∗r+1− ℓ∗r= − T2ln(1− λ^r+1)\]
Esta prueba se basa en la razón de máxima verosimilitud ln[LMV(r)/LMV(n)] y es efectuada secuencialmente para r=n−1,…,1,0 Esta prueba comprueba la hipótesis nula de que el rango de cointegración es r frente a la alternativa que el rango de cointegración es n El estadístico de prueba es.
\[ℓ∗A − ℓ∗0 = − T2 ∑ni=r+1log(1− λ^)\]
Para ambas pruebas se tienen las siguientes hipótesis:
HO: r=0 No existen vectores de cointegración.
HA: r<=n Existe un vector de cointegración.
Determinar el orden de integración a cada una de las series incluídas en el modelo especificando un Vector AutoRegresivo (VAR) con las series que resulten integradas de orden I(1). Seleccionar las Variables del Modelo y las transformaciones de las variables. Determinar el retardo óptimo del VAR para asegurar que los residuos sean ruido blanco (white noise) Especificar las variables determinísticas (variables dummy, tendencias, etc)
Diagnóstico del VAR estimado
• Aplicar el procedimiento de Máxima Verosimilitud al vector autorregresivo con el fin de determinar el rango (r) de cointegración del sistema: Prueba de la Traza Prueba del Eigenvalue Máximo (valor propio) . Estimar el modelo Vector de Corrección de Errores y tambien determinar la relación causal entre las variables del modelo.
Librerias utilizadas en la prueba.
library( urca) library(tidyverse) library(forecast) library(vars)
Resumen de la prueba (prueba de trazas con intercepción constante):
ca.jo(cbind(a,b), type=“trace”, ecdet = “const”, K = 2, spec =“longrun”)
Los argumentos utilizados son:
X: Matriz de datos a investigar para la cointegración. type: La prueba a realizar, ya sea “eigen” para la prueba de autovalor maximo o “trace” para la prueba de traza . ecdet: Caracter “none” para no interceptar en la cointegración, “const” para término constante en cointegración y “trend” para la variable de tendencia en cointegración K: El orden de retraso de la serie (niveles) en el VAR spec: Determina la especificación del VECM. season: Si se deben incluir variables ficticias estacionales, la frecuencia de los datos debe establecerse en consecuencia, es decir 4 para datos trimestrales. dumvar: Si se deben incluir variables ficticias, se puede proporcionar una matriz con una dimensión de fila igual a x.
Procedimiento Johansen
data <- read_csv(file.choose()) head(data)
GDP <- ts(data\(lnGDP, start = c(2003,1,31), frequency = 4) CPI <- ts(data\)lnCPI, start = c(2003,1,31), frequency = 4) M3 <- ts(data$lnM3, start = c(2003,1,31), frequency = 4)
dset <- cbind(GDP,CPI,M3)
lagselect <- VARselect(dset, lag.max = 7, type = “const”) lagselect$selection
Se usa el comando ca.jo, para ejecutar la prueba.
ctest1t <- ca.jo(dset, type = “trace”, ecdet = “const”, K = 4) summary(ctest1t)
ctest1e <- ca.jo(dset, type = “eigen”, ecdet = “const”, K = 4) summary(ctest1e
El criterio de decisión para rechazar la hipótesis nula en las pruebas consiste el comparar el valor del estadistico de prueba y un valor critico (para este caso un nivel de significancia de 0.05), si el estadistico es mayor se rechaza la hipótesis nula.
library( urca)
library(tidyverse)
library(forecast)
library(vars)
# cargar el conjunto de datos
data<-read.csv("C:/Users/IRMA/Downloads/VECM_LectureNotes.csv")
head(data)## ï..CPI Date GDP lnCPI lnGDP M4 M3 M1
## 1 64.60000 1/31/03 1840079 4.168214 14.42532 10.166667 6.566667 18.966667
## 2 65.10000 5/1/03 1932976 4.175925 14.47457 8.966667 5.633333 12.200000
## 3 65.53333 8/1/03 1909701 4.182559 14.46246 6.933333 4.400000 9.866667
## 4 65.73333 10/31/03 2162922 4.185606 14.58697 5.166667 4.000000 8.700000
## 5 66.50000 1/31/04 1972128 4.197202 14.49462 5.466667 5.300000 10.766667
## 6 67.43333 5/1/04 2077812 4.211139 14.54683 6.200000 5.366667 12.333333
## lnM4 lnM3 lnM1 M2 lnM2 Consumption lnConsumption
## 1 2.319114 1.882006 2.942683 6.733333 1.907070 1429858 14.17309
## 2 2.193514 1.728701 2.501436 5.733333 1.746297 1515315 14.23113
## 3 1.936341 1.481605 2.289162 4.300000 1.458615 1523863 14.23676
## 4 1.642228 1.386294 2.163323 3.933333 1.369487 1697272 14.34453
## 5 1.698669 1.667707 2.376455 5.300000 1.667707 1523683 14.23664
## 6 1.824549 1.680207 2.512306 5.333333 1.673976 1582891 14.27476
# Ejecutar objetos de series de tiempo
GDP<- ts(data$lnGDP,start = c(2003,1,31),frequency = 4)
CPI<-ts(data$lnCPI,start = c(2003,1,31),frequency = 4)
M3<-ts(data$lnM3,start = c(2003,1,31),frequency = 4)
# Unir
dset<-cbind(GDP,CPI,M3)
# criterios de selección de rezagos
lagselect<-VARselect(dset,lag.max = 7,type = "const")
lagselect$selection## AIC(n) HQ(n) SC(n) FPE(n)
## 6 5 4 5
##
## ######################
## # Johansen-Procedure #
## ######################
##
## Test type: trace statistic , without linear trend and constant in cointegration
##
## Eigenvalues (lambda):
## [1] 4.081120e-01 1.697244e-01 5.280501e-02 -4.567134e-16
##
## Values of teststatistic and critical values of test:
##
## test 10pct 5pct 1pct
## r <= 2 | 3.63 7.52 9.24 12.97
## r <= 1 | 16.10 17.85 19.96 24.60
## r = 0 | 51.23 32.00 34.91 41.07
##
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
##
## GDP.l2 CPI.l2 M3.l2 constant
## GDP.l2 1.0000000 1.000000 1.000000000 1.00000000
## CPI.l2 -2.3866909 -1.934175 -1.767050307 -1.00505993
## M3.l2 0.1305845 1.055005 0.006412831 -0.00249415
## constant -3.5668720 -8.794960 -6.951509500 -10.37092377
##
## Weights W:
## (This is the loading matrix)
##
## GDP.l2 CPI.l2 M3.l2 constant
## GDP.d 0.026219246 -5.232771e-03 -0.07141649 -1.180312e-13
## CPI.d 0.006077112 1.171703e-05 0.01098863 3.917668e-14
## M3.d -0.053851872 -2.452665e-01 0.08640129 -3.826038e-13
##
## ######################
## # Johansen-Procedure #
## ######################
##
## Test type: maximal eigenvalue statistic (lambda max) , without linear trend and constant in cointegration
##
## Eigenvalues (lambda):
## [1] 4.081120e-01 1.697244e-01 5.280501e-02 -4.567134e-16
##
## Values of teststatistic and critical values of test:
##
## test 10pct 5pct 1pct
## r <= 2 | 3.63 7.52 9.24 12.97
## r <= 1 | 12.46 13.75 15.67 20.20
## r = 0 | 35.14 19.77 22.00 26.81
##
## Eigenvectors, normalised to first column:
## (These are the cointegration relations)
##
## GDP.l2 CPI.l2 M3.l2 constant
## GDP.l2 1.0000000 1.000000 1.000000000 1.00000000
## CPI.l2 -2.3866909 -1.934175 -1.767050307 -1.00505993
## M3.l2 0.1305845 1.055005 0.006412831 -0.00249415
## constant -3.5668720 -8.794960 -6.951509500 -10.37092377
##
## Weights W:
## (This is the loading matrix)
##
## GDP.l2 CPI.l2 M3.l2 constant
## GDP.d 0.026219246 -5.232771e-03 -0.07141649 -1.180312e-13
## CPI.d 0.006077112 1.171703e-05 0.01098863 3.917668e-14
## M3.d -0.053851872 -2.452665e-01 0.08640129 -3.826038e-13
En la hipotesis nula de r=0 el estadistico de prueba r>(valor critico) que es de 95% , por lo tanto se rechaza la hipotesis nula, y existe 1 vector de cointegración,en la hipotesis nula de r<=2.
Prueba de causalidad de Granger, se usa para examinar si una serie de tiempo puede usarse para pronosticar otra. Aplicable a modelos uniecuacionales (con dos o más variables). Método en dos etapas basado en los residuos estimados Asume a priori que existe un solo vector de cointegración en el modelo. El resultado de este método de cointegración puede cambiar dependiendo de cual variable se seleccione como dependiente.
De acuerdo al Teorema de Representación de Granger, bajo algunas condiciones de regularidad, si las variables contenidas en el vector están cointegradas (poseen una relación de largo plazo), entonces el proceso puede ser expresado como Modelo de Corrección de Errores Vectorial (Vector Error Correction Model (VECM)). Es decir si las series están cointegradas.
La serie de tiempo X no causa que la serie de tiempo Y sea la causa de Granger en sí misma.
La serie de tiempo X causa la serie de tiempo Y a la propia causa de Granger. Conocer el valor de una serie de tiempo X en un desfase dado es valioso para pronosticar el valor de una serie de tiempo Y en un período de tiempo posterior que se conoce como “causas de Granger”.
Cómo realizar una prueba de causalidad de Granger en R La prueba de causalidad de Granger se utiliza para determinar si una serie de tiempo es útil para pronosticar otra.
Esta prueba utiliza las siguientes hipótesis nulas y alternativas:
Hipótesis nula (H 0 ): la serie de tiempo x no causa la serie de tiempo de Granger y Hipótesis alternativa (H A ): Serie de tiempo x Serie de tiempo de causas de Granger y
El término “causas de Granger” significa que conocer el valor de la serie de tiempo x en un cierto retraso es útil para predecir el valor de la serie de tiempo y en un período de tiempo posterior.
Esta prueba produce un estadístico de prueba F con un valor p correspondiente. Si el valor p es menor que un cierto nivel de significancia (es decir, α = .05), entonces podemos rechazar la hipótesis nula y concluir que tenemos evidencia suficiente para decir que las series de tiempo x Granger-causan las series de tiempo y.
Para realizar una prueba de causalidad de Granger en R, podemos usar la función grangertest () del paquete lmtest , que usa la siguiente sintaxis:
grangertest (x, y, orden = 1)
dónde:
x: la primera serie temporal y: la segunda serie temporal orden: el número de retrasos que se utilizarán en la primera serie de tiempo. El valor predeterminado es 1. El siguiente ejemplo paso a paso muestra cómo utilizar esta función en la práctica.
Paso 1: definir la serie de dos tiempos
Para este ejemplo, usaremos el conjunto de datos ChickEgg que viene precargado en el paquete lmtest. Este conjunto de datos contiene valores para la cantidad de huevos fabricados junto con la cantidad de pollos en los EE. UU. Desde 1930 hasta 1983:
cargar la biblioteca de paquetes lmtest (lmtest).
cargar datos del conjunto de datos en este caso de ChickEgg (ChickEgg).
ver las primeras seis filas del encabezado del conjunto de datos (ChickEgg)
Gallina, huevo
[1,] 468491 3581 [2,] 449743 3532 [3,] 436815 3327 [4,] 444523 3255 [5,] 433937 3156 [6,] 389958 3081
Paso 2:Se realiza la prueba de causalidad de Granger A continuación, usaremos la función grangertest () para realizar una prueba de Causalidad de Granger para ver si el número de huevos fabricados es predictivo del número futuro de pollos. Ejecutaremos la prueba usando tres retrasos:
realizar la prueba de causalidad de Granger
grangertest (gallina ~ huevo, orden = 3 , datos = huevo de gallina)
Prueba de causalidad de Granger
Modelo 1: pollo ~ Lags (pollo, 1: 3) + Lags (huevo, 1: 3) Modelo 2: pollo ~ Lags (pollo, 1: 3) Res.Df Df F Pr (> F)
1 44
2 47-3 5,405 0,002966 ** — Signif. códigos: 0 ‘’ 0.001 ’’ 0.01 ’’ 0.05 ‘.’ 0,1 pulg. 1
Este modelo intenta predecir el número de pollos utilizando el número de pollos en los tres años anteriores y el número de huevos en los tres años anteriores como variables predictoras. Modelo 2: Este modelo intenta predecir el número de pollos utilizando solo el número de pollos en los tres años anteriores como variables predictoras. F: Esta es la estadística de prueba F. Resulta ser 5.405. Pr (> F): este es el valor p que corresponde al estadístico de prueba F. Resulta ser .002966.
Dado que el valor p es menor que .05, podemos rechazar la hipótesis nula de la prueba y concluir que conocer el número de huevos es útil para predecir el número futuro de pollos.
Paso 3: Realice la prueba de causalidad de Granger a la inversa Aunque rechazamos la hipótesis nula de la prueba, en realidad es posible que exista un caso de causalidad inversa. Es decir, es posible que la cantidad de pollos esté provocando que la cantidad de huevos cambie.
Para descartar esta posibilidad, necesitamos realizar la prueba de Causalidad de Granger a la inversa, utilizando pollos como variable predictora y huevos como
grangertest inverso (huevo ~ pollo, orden = 3 , datos = ChickEgg)
Prueba de causalidad de Granger
Modelo 1: huevo ~ Lags (huevo, 1: 3) + Lags (pollo, 1: 3) Modelo 2: huevo ~ Lags (huevo, 1: 3) Res.Df Df F Pr (> F) 1 44
2 47-3 0,5916 0,6238
El valor p de la prueba es 0,6238. Dado que esto no es menos de .05, no podemos rechazar la hipótesis nula. Es decir, la cantidad de pollos no predice la cantidad futura de huevos.
Por tanto, podemos concluir que conocer el número de huevos es útil para predecir el número futuro de pollos.
Ejemplo:
## Time Series:
## Start = 1930
## End = 1935
## Frequency = 1
## chicken egg
## 1930 468491 3581
## 1931 449743 3532
## 1932 436815 3327
## 1933 444523 3255
## 1934 433937 3156
## 1935 389958 3081
## Granger causality test
##
## Model 1: chicken ~ Lags(chicken, 1:3) + Lags(egg, 1:3)
## Model 2: chicken ~ Lags(chicken, 1:3)
## Res.Df Df F Pr(>F)
## 1 44
## 2 47 -3 5.405 0.002966 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Granger causality test
##
## Model 1: egg ~ Lags(egg, 1:3) + Lags(chicken, 1:3)
## Model 2: egg ~ Lags(egg, 1:3)
## Res.Df Df F Pr(>F)
## 1 44
## 2 47 -3 0.5916 0.6238
La prueba de causalidad Granger presentada en este caso es el ejemplo de Chickents presenta un valor P de 0.002966 esto es significativo donde Chicken Grainger Causes Eggs es solo un valor P de 0.6238 no significativo. Definitivamente implica una correlación entre variables direccional unidireccional o causalidad de Granger.
Realización del ejemplo de cointegracion del enfoque de S. Johansen, en R: Testing for Cointegration using the Johansen Test, autor: Justin S. Eloriaga
Link que se uso para la realización de la sintaxis de la prueba de Granger:https://www.statology.org/granger-causality-test-in-r/
Autor de la prueba en el ejemplo de Causalidad de Granger:Chaz Clark, año:2019
Analisis Multivariante aplicado con R, autor: Joaquín Aldas, ezequiel Uriel, EDición:2, año:2017
Macroeconomia y análisis de series de tiempo, editado por:Steven N.,Lawrense E, Edición:2, año:2008.