| Guerra | Duración | Bando 1 | Bando 2 | Resultado |
|---|---|---|---|---|
| Guerra del Pacífico | 1879-1883 | Perú Bolivia (1879-1880) | Chile | Victoria de Chile. |
| Segunda Guerra Mundial | 1942-1945 | Aliados | Potencias del Eje | Victoria de los aliados. |
| Guerra del Cenepa | 1995 | Perú | Ecuador | Ambos bandos se adjudican la victoria. |
Fuente: Banco central de reserva del Perú
El web scraping es una herremaienta utilizada en la miniria de datos o data mining, en el cual consiste en extraer los datos directamente de una pagina web. En este ejemplo será preciso extraer los datos desde la pagina del Banco central de reserva del Perú.
Para ello el primer paso es crear una función para extraer las cotizaciones del tipo de cambio desde el año 1990 hasta el 2020.
ipak <- function(pkg){
new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
if (length(new.pkg))
install.packages(new.pkg, dependencies = TRUE)
sapply(pkg, require, character.only = TRUE)
}
packages <- c("tidyverse","data.table", "XML","httr","xts")
ipak(packages)
extraccion<- function(codigo=NULL,start=NULL,end=NULL){
vector<- vector()
datos<- NULL
for(i in 1:length(codigo)){
ex<- paste0("https://estadisticas.bcrp.gob.pe/estadisticas/series/api/",
codigo[i], "/xml/",start,"/",end)
ObjXML <- httr::GET(ex)
L_parseXML <- xmlParse(ObjXML)
L_XML <- xmlToList(L_parseXML)
dt_BCRP <- data.table::data.table()
for (a in 1:length(L_XML$periods)){
dt_temp <- data.table(
serie= L_XML$periods[[a]]$v)
dt_BCRP <- rbind(dt_BCRP,dt_temp)
}
vector[i]<- dt_BCRP[,serie:=as.numeric(serie)]
}
for(i in 1: length(codigo)){
datos<- cbind(datos,vector[[i]])
}
datos<- as.data.frame(datos)
names(datos)<- codigo
return(datos)
}Entre 1991 y 2002, el tipo de cambio promedio pasó de S/. 0.778 a S/. 3.518 respectivamente registrando un incremento promedio anual (depreciación) de 16.3%. No obstante, en el 2003, el tipo de cambio cayó a un promedio de S/. 3.479. Desde dicho año, mantuvo una evolución decreciente (apreciación). Es así que en el 2011, el tipo de cambio registró un promedio de S/. 2.755.
Equivalencias:
Fuente: BCRP
Fuente: BCRP
Durante el período que transcurre desde 1820-1824 hasta 1845 la economía peruana estuvo al ritmo de la disputa política interna entre los distintos caudillos hasta que se logró cierta estabilidad, con la elección que consagra presidente a Ramón Castilla (1845-1851). El principal elemento que se destaca de este período es una fuerte caída en la producción minera. En cambio, aparecen el guano y el salitre en las zonas costeras del sur, como nuevas producciones orientadas a la exportación, que ordenan el funcionamiento de la economía y serán sumamente relevantes para financiar al Estado.
Respecto al contexto internacional, si bien la economía peruana ya estaba integrada a un tipo de división internacional del trabajo desde el período colonial, el crecimiento de la exportación de guano y salitre marcó el ritmo de la economía peruana y, en la misma sintonía que el resto de la región donde se consolidaban los modelos primario-exportadores, lo hizo marcado por la influencia de la hegemonía global inglesa.
A pesar de que el cambio se produjo desde la explotación de un recurso mineral metálico a la explotación de un recurso mineral no metálico, este cambio tuvo una serie de consecuencias muy importantes sobre la economía peruana. Por un lado, durante la época virreinal y el auge de la explotación minera existía una suerte de reparto de funciones entre las sierras del interior (donde estaban los yacimientos) que se encargaban de la explotación del recurso, y las costas (donde estaban los puertos de exportación) que organizaba su comercio. Pero, a diferencia de la plata, la producción de guano no necesitaba ser transformada ni transportada para su comercialización, ya que se hallaba en unas cuantas islas al lado del mar. Por ello, los encadenamientos hacia el resto de la economía fueron menores: la exportación de guano no requería demanda de insumos (sal, mulas, llamas, mercurio, tejidos, cuero, sebo y pólvora), ni de los servicios de infraestructura y transporte (construcción de caminos). De esta forma, “el multiplicador” de la demanda resultaba mucho menor. En relación al Cuadro 1 a continuación, la mayor relevancia del guano en la economía peruana se refleja en un aumento de la recaudación fiscal y en las exportaciones hacia 1850, en tanto que la producción total de plata disminuye.
Fuente: BCRP
Una vez iniciado el proceso de reestructuración del aparato productivo y comercial del país a inicios de la década del noventa, se observa una transformación aguda de los principales indicadores macroeconómicos y financieros. Las políticas de apertura y de liberalización comercial incentivaron un alto flujo de capitales que se tradujo en un crecimiento constante de las Reservas Internacionales Netas (RIN) del país, las mismas que alcanzaron su punto máximo en los años noventa, en 1997 con US $ 10.000 millones.
Fuente: BCRP
1933, la moneda nacional mejoró su estimación, al tiempo que los precios internos retomaron una moderada tendencia al alza, desmejorando la posición de los exportadores. Fue esta política de devaluación y simultánea contención o hasta represión de los precios internos la que devolvió la pujanza a las exportaciones con relativa rapidez.
Fuente: BCRP
Dicha política fue posible porque los precios internos parecían pender poco de los bienes importados; en el caso de los alimentos los precios en el mercado internacional de los artículos importados por el Perú también habían caído, de modo que compensaron la elevación en el precio del dólar.
Fuente: BCRP
La tasa de crecimiento del PBI como el de la inflación. La tasa de crecimiento del producto se incrementó de un 2,14% durante 1991-1993, a 7,88% entre 1994 y 1996, como resultado, básicamente, de las políticas aplicadas a inicio de los años noventa. Al mismo tiempo la inflación se mostraba cada vez menor gracias al accionar del Banco Central de Reserva del Perú (BCRP) (Como resultado de la mayor afluencia de capitales, el BCRP se vio obligado a intervenir con el fin de evitar excesivas presiones hacia la baja del dólar con respecto a la moneda local durante 1991-1993, posterior a esta época mantiene una adecuada estabilidad monetaria). El escenario establecido desde inicios de los años noventa, creó ciertas condiciones necesarias para la actuación de un posible mecanismo de transmisión de hoja de balance.
El sector financiero presentaba una peligrosa exposición a fluctuaciones bruscas del tipo de cambio. El Perú presenta una economía altamente dolarizada, debido fundamentalmente a que los pasivos en moneda extranjera de los bancos y de las corporaciones no se redujeron. Hasta finales de 2004 el coeficiente de dolarización de la liquidez del Sistema Bancario superaba el 60%. En estos últimos años dicho coeficiente ha venido reduciéndose, lenta pero sostenidamente hasta cerca de 55% a fines de 2005.
Fuente: BCRP
Esta exposición se acentuó con la creciente brecha externa, resultado de un tipo de cambio apreciado y de la recuperación de la demanda interna y de sus principales componentes, principalmente del gasto del gobierno central, factores que incentivaron la demanda por crédito y en particular por el endeudamiento en moneda extranjera . A partir de 1997 el escenario internacional se volvió adverso. Una serie de eventos como la crisis rusa (junio de 1997), el fenómeno de El Niño (enero de 1998) y la crisis asiática (junio de 1998) potenció el impacto de un tipo de cambio que se venía apreciando y dejó sentir sus efectos nocivos sobre la estabilidad de la economía y del sector financiero, al tiempo.
Superada la crisis de 1893 hubo algunas breves coyunturas de enfriamiento de los negocios en las primeras décadas del siglo veinte, hasta la gran depresión iniciada en 1929. Esta tuvo un mayor impacto en la economía en la medida en que, precisamente a raíz del auge exportador y la expansión del transporte y la educación impulsados por los gobiernos desde 1900, el grado de compromiso del país con el comercio había crecido significativamente. La crisis de 1929 se manifestó para el Perú bajo la forma de una importante caída en el precio de las exportaciones, en la interrupción del flujo de préstamos desde el exterior para el gobierno y en el cese de las inversiones foráneas, hasta el punto de llegar a la desinversión y la consiguiente liquidación de la inversión previa. Como en una reacción en cadena, los precios internos también se derrumbaron, al punto de que en 1933 se habían reducido en promedio en Lima en un 24% respecto al año 1927. Una deflación así no se conocía en Lima desde los tiempos de la posguerra con Chile. La caída del prolongado régimen de Augusto Leguía (1919-1930) fue, por lo menos, precipitada por la crisis mundial. Esta también produjo la quiebra del Banco del Perú y Londres, que era el más antiguo de los que existían entonces en el Perú, y el que contaba con el mayor número de oficinas en el país (Quiroz, 1989). El elemento más impresionante de la recuperación de la economía peruana en el periodo corrido desde la Paz de Ancón había sido el crecimiento del sector exportador. En libras peruanas, las exportaciones crecieron de un promedio anual de dos millones en el trienio 1890-1892 (el más cercano a la Paz de Ancón que cuenta con cifras para los tres años consecutivos) a uno de veintinueve millones en el trienio 1927-1929. Bruno Seminario y Arlette Beltrán llegaron a una cifra similar, cuando calcularon un crecimiento de las exportaciones de catorce veces entre 1896 y 1929. Un ritmo de incremento que superó largamente al de la población y al del resto de la economía.
Forward looking behaviour, requiere pronosticar adecuadamente la volatilidad y el riesgo de un activo.
La volatilidad no es una serie observable en el momento t, se requieren datos históricos para estimar la volatilidad.
Volatilidad histórica se estima con la varianza del rendimiento simple (cambio en el precio del activo).
Una opción: Exponantially Weigted Moving Average Models (EWMA) que es una extensión del promedio histórico pero haciendo que las observaciones más recientes tengan un mayor peso:
\[ \alpha_t^2=(1-\lambda)\sum_{j=0}^\infty\lambda_{j-1}R^2_{t-1-j} \\ R^2_{t-1-j}= Varianza \ de \ los \ rendimientos \\ \lambda= "decay \ factor" \]
La forma más sencilla es definida como:
\[ \sigma^2_{t+1}=\lambda\sigma_{t}^2+(1-\lambda) R^2_t \]
Implica que la varianza del periodo siguiente como un promedio ponderado de la varianza actual y el rendimiento actual al cuadrado.
Se asume un patrón sistemático en la evolución de la varianza.
Una generalización del modelo ARCH(m) fue desarrollada por Bollerslev (1986) al proponer que la varianza condicional dependa de sus propios rezagos:
\[ h_t=\alpha_0+\sum_{i=1}^m\alpha_i\epsilon^2_{t-i}+\sum_{j=1}^p\beta_jh_{t-i} \\ \epsilon \rightarrow N(0,h_t) \\ \epsilon_t\sqrt{h_tv_t} \\ v_t \sim iidN(0,1) \]
La especificación GARCH se define como un modelo ARCH de orden infinito (Bollerslev, 1986).
En 1990, Pagan y Schwert (1990), y al año siguiente en 1991 Nelson (1991), desarrollaron una versión nueva del modelo GARCH, el EGARCH (modelo exponencial generalizado, auto-regresivo, condicionalmente heterocedástico).El nuevo modelo acaba con las asimetrías en la estimación del efecto de los shocks, al implementar una función 𝑔(𝜀𝑡 ) de las innovaciones 𝜀𝑡,que son variables igual e independientemente distribuidas de media cero, y en las que por tanto el valor de las innovaciones queda recogido por medio de la expresión:
\[ ln\sigma^2_t=w+\beta(\sigma^2_{t-1})+\gamma\frac{u_{t-1}}{\sqrt{\sigma_{t-1}}}+\alpha[\frac{|u_{t-1}|}{\sqrt{\sigma_{t-1}}}-\sqrt{\frac{2}{\sqrt{\pi}}}] \]
El modelo tiene varias ventajas sobre la especificación GARCH pura. En primer lugar, el \(ln(\sigma_t^2)\);es modelado, esto quiere decir, que aunque los parámetros sean negativos, \(\sigma_t^2\)será positivo. Por lo tanto, este modelo no tiene restricciones de no negatividad en los parámetros. En segundo lugar, las asimetrías se permiten bajo la formulación de EGARCH, ya que, si la relación entre la volatilidad y los rendimientos es negativa \(\gamma\) será negativa.
La idea del modelo TGARCH (Treshold GARCH) es dividir la distribución de los shocks en intervalos disjuntos, para luego aproximar una función lineal por tramos bien para la desviación estándar condicional (Zakoian, 1994), bien la varianza condicional (Glosten, Jaganathan, & Runkle , 1993). Si sólo hay dos intervalos, la división es normalmente en un umbral identificado con el número cero, donde la influencia de los shocks positivos se identifica con valores por encima de cero y negativos por debajo de este valor.
Especificación del TGARCH:
\[ \sigma^2_t=w+\sum_{i=1}^s(\alpha_i+\gamma_iN_{t-i})\sigma^2_{t-i}\sum_{j=i}^m\beta_j\sigma^2_{t-j} \]
\[ N_{t-i} =\begin{cases} 1 \rightarrow \alpha_{t-i} <0\\0 \rightarrow \alpha_{t-i} \geqslant 0\end{cases} \]
En la especificación del modelo GARCH, es más apropiado considerar la elección en el supuesto de distribución del término de error. Este ejercicio asumió tres supuestos de distribución; La distribución normal (NORM), la distribución de Student-t (STD) y la Distribución de errores generalizados (GED) para tener en cuenta las colas gruesas que son comunes en la mayoría de los datos financieros.
Para que los modelos funcionen completamente, el término de error debe tener una media cero. Ahí es $_t N(0,1) $ donde el término de error en este caso se distribuye normalmente con media cero y varianza uno. La función de densidad para la distribución Normal viene dada por la Ecuación:
\[ f(z,\mu,\sigma)=\frac{1}{\sqrt{2\pi}^{e^{\frac{-z^2}{2}}}} \\ -\infty<z<\infty \]
Las colas más gruesas, frecuentemente observadas en series de tiempo financieras, están permitidas en la distribución t de Student, que está dada por la función de densidad que se muestra como la ecuación:
\[ f(z)= \frac{\Gamma[\frac{v+1}{2}]}{\sqrt{v\pi\Gamma[\frac{v}{2}]}}[1+\frac{z^2}{v}]^{[\frac{v+1}{2}]} \\ -\infty<z<\infty \]
donde v denota el número de grados de libertad y Γ denota la función Gamma.
Se utilizará el criterio de información para la selección del modelo en este ejercicio estudio. El Criterio de información de Akaike (AIC) se define como las ecuación siguiente:
\[ AIC= ln(\sigma^2)+\frac{2k}{s} \]
Para esto se usara la función ya antes mostrada para extraer los datos del tipo de cambio desde el año 2000 al 2020.
library("tidyverse")
library("data.table")
library("XML")
library("httr")
library("xts")
extraccion<- function(codigo=NULL,start=NULL,end=NULL){
vector<- vector()
datos<- NULL
for(i in 1:length(codigo)){
ex<- paste0("https://estadisticas.bcrp.gob.pe/estadisticas/series/api/",
codigo[i], "/xml/",start,"/",end)
ObjXML <- httr::GET(ex)
L_parseXML <- xmlParse(ObjXML)
L_XML <- xmlToList(L_parseXML)
dt_BCRP <- data.table::data.table()
for (a in 1:length(L_XML$periods)){
dt_temp <- data.table(
serie= L_XML$periods[[a]]$v)
dt_BCRP <- rbind(dt_BCRP,dt_temp)
}
vector[i]<- dt_BCRP[,serie:=as.numeric(serie)]
}
for(i in 1: length(codigo)){
datos<- cbind(datos,vector[[i]])
}
datos<- as.data.frame(datos)
names(datos)<- codigo
return(datos)
}
ata<-extraccion("PN01210PM","2000-1","2020-12")
fecha<- as.Date("2000-01-01",format="%Y-%m-%d")
fecha<- seq(fecha,by="1 month",length=length(ata$PN01210PM))
ata1<- cbind(fecha,round(ata,digits =3))
library(DT)
ata1 %>% datatable(extensions = 'Buttons',
options = list(dom = 'Blfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf', 'print'),
lengthMenu = list(c(10,25,50,-1),
c(10,25,50,"All"))))Después de descargar los datos se crea un ciclo for el cuál nos ayudara a escoger el mejor modelo GARCH(p,q).
library(rugarch)
library(forecast)
library(PerformanceAnalytics)
retornos<- Return.calculate(ata,"log")[-1]
retornos1<- Return.calculate(ata,"log")[-1]
acf(retornos)
pacf(retornos)
modelo<- arima(ata,order = c(1,2,3))
GARCH.Mods = list()
GARCH.Fit = list()
GARCH.BIC = list()
for (q in 1:2) {
for (p in 1:2) {
GARCH.Mods[[paste("GARCH",q,p, sep = "")]] = ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(q,p)),
mean.model = list(armaOrder = c(1,3)))
GARCH.Fit[[paste("GARCH",q,p, sep = "")]] = ugarchfit(spec = GARCH.Mods[[paste("GARCH",q,p, sep = "")]], data = retornos1)
GARCH.BIC[[paste("GARCH",q,p, sep = "")]] = infocriteria(GARCH.Fit[[paste("GARCH",q,p, sep = "")]])
GARCH.BIC[[paste("GARCH",q,p, sep = "")]] = GARCH.BIC[[paste("GARCH",q,p, sep = "")]][2,1]
}
}Resultado: El algoritmo nos arrojo según el criterio de AIC que el mejor modelo es un GARCH(1,1).
Ahora se van generar los modelos asímetricos los cuales son el modelo EGARCH y TGARCH, esto se realizára para comparar las curvas de impacto de noticias (NIC). Esto se hace para ver como es que afectan las noticias en el tipo de cambio.
EGARCH.Spec = ugarchspec(variance.model = list(model = "eGARCH", garchOrder = c(1,1)),
mean.model = list(armaOrder = c(1,3)))
EGARCH.Fit = ugarchfit(EGARCH.Spec, data = retornos1)
TGARCH.Spec = ugarchspec(variance.model = list(model = "fGARCH", submodel = "TGARCH", garchOrder = c(1,1)),
mean.model = list(armaOrder = c(1,3)))
TGARCH.Fit = ugarchfit(TGARCH.Spec, data = retornos1)Ahora se procede a capturar la volatilidad o las fluctuaciones las cuales no las dan los modelos creados. Se presentara los resultados que son obtenidos por el siguiente código:
GARCH.Vol = cbind(GARCH.Fit$GARCH11@fit$sigma, TGARCH.Fit@fit$sigma, EGARCH.Fit@fit$sigma)
GARCH.Vol = xts(GARCH.Vol, order.by = index(retornos1))
names(GARCH.Vol) = c("GARCH", "TGARCH", "EGARCH")
layout(matrix(c(1,4,2,4,3,4),2,3))
chart.TimeSeries(GARCH.Vol$GARCH, main = "Volatilidad GARCH(2,1)", lwd = 1)
chart.TimeSeries(GARCH.Vol$TGARCH, main = "Volatilidad TGARCH(2,1)", lwd = 1)
chart.TimeSeries(GARCH.Vol$EGARCH, main = "Volatilidad EGARCH(2,1)", lwd = 1)
chart.TimeSeries(GARCH.Vol, main = "Volatilidades estimadas", legend.loc = "topleft", lwd = 1)Ahora se procede a mostrar la proyecciones de la volatilidad o las fluctuacciones del tipo de cambio para 7 periodos o 7 meses:
GARCH.Forecast = ugarchforecast(GARCH.Fit$GARCH11, data = SPY.Ret, n.ahead = 7)
TGARCH.Forecast = ugarchforecast(TGARCH.Fit, data = SPY.Ret, n.ahead = 7)
EGARCH.Forecast = ugarchforecast(EGARCH.Fit, data = SPY.Ret, n.ahead = 7)
VOL.Forecast = cbind(GARCH.Forecast@forecast$sigmaFor, TGARCH.Forecast@forecast$sigmaFor, EGARCH.Forecast@forecast$sigmaFor)
VOL.Forecast = ts(VOL.Forecast)
library(scales)
par(bg = "black")
par(mfrow = c(1,1))
plot(VOL.Forecast[,1], type="l", lwd=2, col = "blue", ylab=bquote(sigma[t]^2))
par(new = TRUE)
plot(VOL.Forecast[,2], type = "l", lwd = 2, col = "red", ylab=bquote(sigma[t]^2),axes=F)
par(new = TRUE)
plot(VOL.Forecast[,3], type = "l", lwd = 2, col = "green2", ylab=bquote(sigma[t]^2),axes=F)
par(bg=alpha("blue",0.4))
grid(col=alpha("purple",0.6))
box()
legend(x = 5, y = 0.008, legend = c("GARCH", "TGARCH", "EGARCH"), fill = c("blue", "red", "green2"), cex = 0.6,col="red")