name: xaringan-title class: inverse, left, bottom background-image: url(pictures/picuniform.jpg) background-size: cover # **Econometría II** ---- ## **<br/> ARMAX** ### Carlos A. Yanes Guerra ### 2023-II --- class: inverse, middle, center # Preguntas de las sesiones anteriores? --- layout: true # Modelo ARCH --- -- <cy-blockquote> Por sus siglas hace referencia a **Autoregressive conditional heteroskedasticity**, modelos que involucran en una *estimación* comportamientos *volátiles* y que merecen ser tenidos en cuenta. La naturaleza de este tipo de series se encuentran en las .hi[financieras] y las .hi[macroeconómicas]. </cy-blockquote> -- <img src="Clase06_files/figure-html/unnamed-chunk-1-1.svg" style="display: block; margin: auto;" /> --- -- Los modelos ARCH van en la medida al análisis de los retornos financieros que tienen las acciones o bonos públicos y privados. -- ### A tener en cuenta --
.hi-purple[Heterocedasticidad] Ahora no es solo un problema de .hi[corte transversal]. Tambien hay que mirarlo acá en series de tiempo. --
Para que mis residuos sean **homocedasticos**: -- `$$\sigma^{2}_{\epsilon}=\sigma^{2}_{1}=\sigma^{2}_{2}=\sigma^{2}_{3}$$` --
En este caso puede existir **cierta** .hi[autocorrelación] en la varianza de la serie. --
La volatilidad puede ser capturada como: -- `$$\begin{aligned} Y_{t}=&\beta_{0} + \beta_{1}X_{t}+ \epsilon_{t}\\ \sigma^{2}_{t}=&Var (\epsilon_{t}|\epsilon_{t-\rho})\\ \sigma^{2}_{t}=& E(Y_{t}-\beta_{0}-\beta_{1}X_{t}) \end{aligned}$$` --- -- .attn[La idea:] --
Modelar `\(\sigma^{2}_{t}\)` ya sea como un proceso AR o MA. --
Recuerde que la **volatilidad** puede no ser constante. Ej: Periodos de .b[alta] volatilidad como de .hi[baja]. --
La volatilidad no es directamente observable. (Su naturaleza es latente). --
Los efectos de nueva información: Una .b[alta] volatilidad es observada antes de que se hagan .hi[anuncios]. --- layout: false class: inverse, middle, center # Hasta aquí.... esto de univariados --- layout: true # Modelos ARMAX --- --
A pesar de haber sido desarrollados hace tiempo, siguen siendo útiles. --
Igualmente presentan limitaciones hacia acciones de largo plazo y necesitan los datos ser actualizados. --
Elaborar pronósticos con la metodología ARIMAX también es un "Arte". --
No se puede decir que el mejor modelo que se establece, es o ha sido el **mejor**. --
Las .hi-purple[variables económicas] son procesos aleatorios y por ello tienen una distribución de probabilidad generalmente desconocida a la que también se le llama el .hi[proceso generador de datos] (PGD) de la variable. --- -- <cy-blockquote>Teniendo como referencia los modelos univariados, podemos entonces involucrar de manera exogena, la participación de un componente **exogeno** que acompaña nuestro modelo</cy-blockquote> --
Nuestro modelo ahora se transfigura a: -- `$$y_t=\color{red}{c}+\color{purple}{v(\beta)x_t}+ e_t$$` -- Dicho de otra manera: -- `$$y_t=C_0+\sum \limits_{i=1}^p \phi_i y_{t-1}+\color{purple}{\sum \limits_{k=1}^r \beta_k x_{t}}+\color{blue}{\sum \limits_{j=1}^q \theta_i e_{t-1}}+ \color{red}{e_t}$$` -- *La parte de x, es exogena e incluso se vincula como variable en función de (t), es decir en el presente*. --- -- Los modelos de tipo .hi[ARMAX] son usados en agricultura, energia, por ejemplo el siguiente paper de [Rabbi, et.al (2020)](https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9350326&tag=1) nos muestra algo de ello. -- Un modelo ARMAX suele ser representado como: -- `$$Y_{t}=\alpha_{0} +\alpha_{1}Y_{t-1}+\cdots+\alpha_{\rho}Y_{t-\rho}+\beta_{1}X_{t}+\epsilon_{t}$$` -- Donde: -- `\(X_{t}\)` es la variable exogena o explicativa y el error del modelo debe tener la estimación: -- `$$\epsilon_{t}= \rho \epsilon_{t-1}+ \theta_{1}V_{t-1}+ V_{t}$$` Que vendría a ser un proceso .hi[ARMA] para el .hi-red[residuo] del modelo original. --- -- Un modelo autoregresivo (AR) y de media móvil (MA) puede contener variables exógenas, siempre y cuando el proceso `\((Y_{t})\)` sea una solución .hi-purple[estacionaria] de ecuaciones en diferencia de tal forma que: -- `$$Y_{t} - \alpha_{1} Y_{t-1}- \cdots-\alpha_{\rho} Y_{t-\rho} = Z_{t}+ \Theta_{1} Z_{t-1}+\cdots + \Theta_{q} Z_{t-q}$$` -- Donde tanto `\(\alpha\)` y `\(\Theta\)` son parámetros de las variables y `\(Z_{t}\)` es una variable exógena que se distribuye R.B `\(\sim (0, \sigma^{2})\)` --- layout: false .attn[Ejemplo:] -- <img src="Clase06_files/figure-html/usconsump-1.svg" style="display: block; margin: auto;" /> --- -- <img src="Clase06_files/figure-html/unnamed-chunk-2-1.svg" style="display: block; margin: auto;" /> --- layout: true # Ejemplo --- -- ### Condiciones de estimación --
Estacionariedad, mas que nada replicamos todo el proceso que ya se ha venido desarrollando. --
La serie (x), tambien debe ser en lo posible estacionaria. Ya que si no lo es, puede afectar a los .hi[errores] del modelo y generar algo **espurio**. --
Los residuos finalmente deben ser .hi-purple[ruido blanco] --- -- .pull-left[ ``` #> #> ####################### #> # KPSS Unit Root Test # #> ####################### #> #> Test is of type: tau with 4 lags. #> #> Value of test-statistic is: 0.0887 #> #> Critical value for a significance level of: #> 10pct 5pct 2.5pct 1pct #> critical values 0.119 0.146 0.176 0.216 ```
Serie .hi-purple[Consumo] ] -- .pull-right[ ``` #> #> ####################### #> # KPSS Unit Root Test # #> ####################### #> #> Test is of type: tau with 4 lags. #> #> Value of test-statistic is: 0.0601 #> #> Critical value for a significance level of: #> 10pct 5pct 2.5pct 1pct #> critical values 0.119 0.146 0.176 0.216 ```
Serie .hi[Ingreso] ] --- --
--- -- ```r ax <- Arima(uschange[,1], c(1, 0, 2), xreg = uschange[,2]) summary(ax) ``` ``` #> Series: uschange[, 1] #> Regression with ARIMA(1,0,2) errors #> #> Coefficients: #> ar1 ma1 ma2 intercept xreg #> 0.6922 -0.5758 0.1984 0.5990 0.2028 #> s.e. 0.1159 0.1301 0.0756 0.0884 0.0461 #> #> sigma^2 = 0.3219: log likelihood = -156.95 #> AIC=325.91 AICc=326.37 BIC=345.29 #> #> Training set error measures: #> ME RMSE MAE MPE MAPE MASE #> Training set 0.001714366 0.5597088 0.4209056 27.4477 161.8417 0.6594731 #> ACF1 #> Training set 0.006299231 ``` -- .attn[Qué pasa si lo quiero con mas] (X's) --- -- Toca algo como: -- ```r conjunto <- ts.intersect(uschange[,2], uschange[,3], uschange[,4]) ``` -- Luego solo en la parte donde va `xreg= conjunto`. Recuerde que todas las variables deben ser estacionarias. A modo de ejemplo vamos a mirar todas las variables, pero no van a ser correctamente especificado. -- Por otro lado se comporta como un modelo de .hi-purple[regresión] y haremos uso del paquete `library(lmtest)`. --- -- ```r axc <- Arima(uschange[,1], c(1, 0, 2), xreg = conjunto) summary(axc) ``` ``` #> Series: uschange[, 1] #> Regression with ARIMA(1,0,2) errors #> #> Coefficients: #> ar1 ma1 ma2 intercept uschange[, 2] uschange[, 3] #> -0.3591 0.2691 0.1051 0.2361 0.7313 0.0823 #> s.e. 0.3552 0.3459 0.1013 0.0348 0.0427 0.0171 #> uschange[, 4] #> -0.0460 #> s.e. 0.0028 #> #> sigma^2 = 0.1084: log likelihood = -54.04 #> AIC=124.08 AICc=124.88 BIC=149.92 #> #> Training set error measures: #> ME RMSE MAE MPE MAPE MASE #> Training set 0.0001104599 0.323003 0.2343151 14.62825 82.0396 0.3671239 #> ACF1 #> Training set -0.003148503 ``` --- -- .pull-left[ ```r library(lmtest) coeftest(ax) ``` ``` #> #> z test of coefficients: #> #> Estimate Std. Error z value Pr(>|z|) #> ar1 0.692229 0.115905 5.9724 2.338e-09 *** #> ma1 -0.575809 0.130063 -4.4272 9.549e-06 *** #> ma2 0.198361 0.075585 2.6243 0.008682 ** #> intercept 0.599040 0.088398 6.7767 1.230e-11 *** #> xreg 0.202819 0.046075 4.4019 1.073e-05 *** #> --- #> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ``` ] -- .pull-right[ ```r coeftest(axc) ``` ``` #> #> z test of coefficients: #> #> Estimate Std. Error z value Pr(>|z|) #> ar1 -0.3591467 0.3551614 -1.0112 0.3119 #> ma1 0.2691179 0.3459332 0.7779 0.4366 #> ma2 0.1050597 0.1012945 1.0372 0.2997 #> intercept 0.2360594 0.0348330 6.7769 1.228e-11 *** #> uschange[, 2] 0.7312921 0.0427249 17.1163 < 2.2e-16 *** #> uschange[, 3] 0.0822889 0.0170837 4.8168 1.459e-06 *** #> uschange[, 4] -0.0459726 0.0028476 -16.1441 < 2.2e-16 *** #> --- #> Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ``` ] --- -- <img src="Clase06_files/figure-html/unnamed-chunk-11-1.svg" style="display: block; margin: auto;" /> ``` #> #> Ljung-Box test #> #> data: Residuals from Regression with ARIMA(1,0,2) errors #> Q* = 5.8916, df = 5, p-value = 0.3169 #> #> Model df: 3. Total lags used: 8 ``` --- -- ``` #> #> Ljung-Box test #> #> data: Residuals from Regression with ARIMA(1,0,2) errors #> Q* = 5.8916, df = 5, p-value = 0.3169 #> #> Model df: 3. Total lags used: 8 ``` --- -- .attn[Pronostico Modelo Real] -- ```r fcast <- forecast(ax, xreg=rep(mean(uschange[,2]),8), h=8) fcast ``` ``` #> Point Forecast Lo 80 Hi 80 Lo 95 Hi 95 #> 2016 Q4 0.7844455 0.057363562 1.511527 -0.3275304 1.896421 #> 2017 Q1 0.7860095 0.054016921 1.518002 -0.3334766 1.905496 #> 2017 Q2 0.7732613 0.013689680 1.532833 -0.3884033 1.934926 #> 2017 Q3 0.7644367 -0.008001435 1.536875 -0.4169055 1.945779 #> 2017 Q4 0.7583280 -0.020200117 1.536856 -0.4323280 1.948984 #> 2018 Q1 0.7540994 -0.027330110 1.535529 -0.4409939 1.949193 #> 2018 Q2 0.7511722 -0.031643749 1.533988 -0.4460415 1.948386 #> 2018 Q3 0.7491459 -0.034333517 1.532625 -0.4490825 1.947374 ``` --- -- <img src="Clase06_files/figure-html/unnamed-chunk-14-1.svg" style="display: block; margin: auto;" /> --- layout: false class: inverse, middle, center # Gracias por su atención --- # Bibliografía
Rabbi, F., Tareq, S.U., Islam, M.M., Chowdhury, M.A., & Abul Kashem, M. (2020). *A Multivariate Time Series Approach for Forecasting of Electricity Demand in Bangladesh Using ARIMAX Model*. 2020 2nd International Conference on Sustainable Technologies for Industry 4.0 (STI), 1-5.
Hyndman, R.J., & Athanasopoulos, G. (2021). *Forecasting: principles and practice*, 3rd edition, OTexts: Melbourne, Australia.
Shumway, R., & Stoffer, D. (2019). *Time series: a data analysis approach using R*. CRC Press. --- name: adios class: middle .pull-left[ # **¡Gracias!** <br/> ## Modelos ARMAX ### Seguimos aprendiendo ] .pull-right[ .right[ <img style="border-radius: 50%;" src="https://avatars.githubusercontent.com/u/39503983?v=4" width="150px" />
[Syllabus/ Curso](https://pomelo.uninorte.edu.co/pls/prod/bwckctlg.p_disp_course_detail?cat_term_in=202210&subj_code_in=ECO&crse_numb_in=0010)<br/>
[@keynes37](https://twitter.com/keynes37)<br/>
[ cayanes@uninorte.edu.co](mailto:cayanes@uninorte.edu.co) ] ]