100% encontró este documento útil (1 voto)
379 vistas8 páginas

Modelo Arch Garch

Este documento describe cómo implementar un modelo de volatilidad GARCH (Generalizado Autoregresivo Condicionalmente Heterocedástico) usando el lenguaje de programación R. Primero se definen las ecuaciones del modelo GARCH. Luego, se implementa un modelo GARCH(1,1) en Microsoft Excel para modelar la volatilidad de la tasa de cambio representativa del mercado (TRM) colombiana con fines didácticos. Finalmente, se proponen pautas para diseñar e implementar el modelo GARCH en R y aplicarlo a una serie de

Cargado por

Brian Solis
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
379 vistas8 páginas

Modelo Arch Garch

Este documento describe cómo implementar un modelo de volatilidad GARCH (Generalizado Autoregresivo Condicionalmente Heterocedástico) usando el lenguaje de programación R. Primero se definen las ecuaciones del modelo GARCH. Luego, se implementa un modelo GARCH(1,1) en Microsoft Excel para modelar la volatilidad de la tasa de cambio representativa del mercado (TRM) colombiana con fines didácticos. Finalmente, se proponen pautas para diseñar e implementar el modelo GARCH en R y aplicarlo a una serie de

Cargado por

Brian Solis
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Lmpsakos, ISSN 2145 4086. Vol. 3, No.

6, Jul - Dic 2011


38
How to Implement a Volatility Model Using R?

Cmo Implementar un Modelo de Volatilidad usando
Lenguaje R?

Fernn Villa; Juan David Velsquez; Paola A. Snchez
Grupo Computacin Aplicada - Universidad Nacional de Colombia
fernanvilla@[Link]; jdvelasq@[Link]; pasanche@[Link]

(Artculo de INVESTIGACIN CIENTFICA Y TECNOLGICA. Recibido el 07/08/2011. Aprobado el 10/11/2011)


Abstract Resumen
Modeling and forecasting of financial time series is an
activity of economic interest for agents market. Time
series from this area often displays complex dynamic
relationships between its variables and it can be
captured by volatility models. These models can be
implemented in most existing programming
environments. However, the license of these
environments is not free; in addition, the
implementation is complex because there arent
guidelines for designing and implementing of the code. R
is a free and stable programming environment, so this
paper suggests some guidelines for designing and
implementing the code in R of an volatility model; like an
example case, this paper proposes the creation of
Volatility package that includes the GARCH model and
show its applicability in an volatility model of a real time
series.
El modelado y pronstico de series de tiempo
financieras es una actividad de inters econmico para
los agentes del mercado. Las series de tiempo
provenientes de sta rea a menudo presentan
relaciones dinmicas complejas entre sus variables las
cuales pueden ser capturadas mediante modelos de
volatilidad. Estos pueden ser implementados en la
mayora de entornos de programacin existentes. Sin
embargo, la implementacin de los modelos es
compleja por no tener pautas para disear e
implementar su cdigo. Dado que R es un entorno de
programacin gratuito y estable, en este trabajo se
proponen algunas pautas para disear e implementar el
cdigo de un modelo de volatilidad en R; como caso de
ejemplo, se propone la creacin del paquete Volatility
que incluye el modelo de volatilidad GARCH y se
mostrar su aplicabilidad al modelar la volatilidad de
una serie de tiempo real.
Keywords: Volatility, Model, Implementation, GARCH, R
Languages
Palabras clave: Volatilidad, Modelo, Implementacin,
GARCH, Lenguaje R



I. INTRODUCCIN

Las series de tiempo financieras, a menudo, presentan
relaciones dinmicas complejas entre sus variables, las
cuales pueden ser capturadas mediante modelos de
volatilidad. Estos pueden implementarse en la mayora de
lenguajes de programacin existentes, entre otros: R,
MATLAB, SAS, Mathematica, Visual Studio .Net y Java. Sin
embargo, la licencia de la mayora de los lenguajes
mencionados no es gratuita, lo que implica costos
adicionales para quien necesita realizar una
implementacin de algn modelo, simplemente desee
brindar algn tipo de consultora; adems, sin importar el
lenguaje, la implementacin de un modelo es compleja por
no tener pautas para disear e implementar su cdigo.
Actualmente, existen lenguajes de programacin de
licencia gratuita GNU (General Public License) lo que
permite realizar implementaciones de software de manera
gratuita, entre estos se encuentra R (R Development Core
Team 2008); ste lenguaje es utilizado en investigacin
por la comunidad estadstica, siendo adems popular en
otros campos de investigacin y aplicacin, como la
bioinformtica y las matemticas financieras.

R es un lenguaje de programacin robusto y estable, en el
cual es posible crear y cargar diferentes libreras o
paquetes con finalidades especficas de clculo; de modo
que, un paquete puede contener la implementacin de
una o varias funciones, y por tanto de uno o varios
modelos. La programacin organizada en paquetes facilita
Villa, F.; Velsquez, J.D.; Snchez, P.A. Cmo Implementar un Modelo de Volatilidad usando Lenguaje R?. Lmpsakos,
ISSN: 2145-4086, Vol. 3, No. 6, pp 38-45. Jul-Dic 2011



Lmpsakos, ISSN 2145 4086. Vol. 3, No. 6, Jul - Dic 2011
39
la distribucin y utilizacin del (los) modelo(s)
implementado(s).

Entonces, con el fin de aprovechar las ventajas
mencionadas y de facilitar la implementacin de un
modelo de volatilidad en R, en ste trabajo se proponen
algunas pautas para el diseo y desarrollo de un modelo
GARCH [1]. Estas pueden ser seguidas para realizar la
implementacin de otro tipo de modelo de volatilidad.

Para cumplir con el objetivo propuesto ste trabajo se
encuentra organizado como sigue: en la seccin 2 se
definen las ecuaciones del modelo de volatilidad GARCH;
en la 3, se realiza la implementacin de un modelo
GARCH(1,1) en Microsoft Excel para modelar la volatilidad
de la TRM Colombiana, con el fin de entender las
ecuaciones del modelo GARCH; en la 4, se definen algunas
pautas de diseo y se realiza la implementacin del
modelo GARCH en R; en la 5, se utiliza el modelo
implementado para modelar la volatilidad TRM
Colombiano y comprobar su funcionalidad; finalmente, se
concluye.

II. MODELO DE VOLATILIDAD GARCH

El modelado y pronstico de series de tiempo financieras
es una actividad de inters econmico para los agentes del
mercado. Las series de tiempo provenientes de sta rea a
menudo presentan relaciones dinmicas complejas entre
sus variables las cuales pueden ser capturadas mediante
modelos de volatilidad.

En [3] se desarrolla el modelo ARCH (Autoregresivo
Condicionalmente Heterocedstico), el cual permite
modelar la dinmica de la volatilidad de una serie
temporal. Aos despus, [1] propone GARCH
(Generalizado Autoregresivo Condicionalmente
Heterocedstico), siendo este una ampliacin del modelo
ARCH, en el que se incluyen rezagos de la varianza
condicional. Para ms detalles sobre el modelo GARCH
consultar [2].

En el modelo GARCH(p,q), la volatilidad est dada por [1]:

(

+
(

+ =

=

=

q
i
i t i
p
i
i t i t
e
1
2
1
2
0
2
o | o o o
(1)

Donde, p es la cantidad de rezagos de la serie, y q la
cantidad de rezagos de la volatilidad o varianza
condicional, e puede ser calculado mediante:
t t t
y y e = (2)

Para la ecuacin (2),
t
corresponde a un modelo
autoregresivo AR(p), el cual especifica que una serie
estacionaria en un tiempo t depende de p valores pasados
de la misma (rezagos), ponderados por un peso
i
que
mide la influencia del rezago en el valor presente de la
serie, el modelo esta dado por:
(

+ =

=

p
i
i t i t
y y
1
0
o o (3)

Los parmetros del los modelos (1) y (3) se estiman de
forma simultnea maximizando el logaritmo de la funcin
de verosimilitud de los residuales, dada por:

( ) ( )

= =
=
T
t t
t
T
t
t
e T
L
1
2
2
1
2
2
1
log
2
1
2 log
2
log
o
o t
(4)

Los parmetros del modelo tambin se pueden estimar
minimizando la ecuacin dual de (4), es decir, log L.

Adems, de la ecuacin (1) se deben satisfacer las
condiciones: de no negatividad
0
>0,
i
0,
i
0, necesarias
para garantizar que la varianza sea positiva en todos los
periodos ( 0
2
>
t
o para todo t); y de estacionariedad dada
por:

1
} , {
1
<
(

=
q p mx
i
i i
| o
(5)

Mientras que, de la ecuacin (3) se tienen las condiciones:

0
>0,
i
0.

Consecuentemente, el orden de uso de las ecuaciones es:
primero calcular (3); luego (2); teniendo e
t
, se procede con
(1); y finalmente, se estiman los parmetros maximizando
(4), con las restricciones mencionadas.

III. IMPLEMENTACIN DEL MODELO GARCH EN
MICROSOFT EXCEL

Antes de comenzar la implementacin del modelo GARCH
en R es necesario entender a cabalidad las ecuaciones del
mismo, para esto, es conveniente realizar un ejemplo en
Microsoft Excel u otra hoja de clculo. La implementacin
Villa, F.; Velsquez, J.D.; Snchez, P.A. Cmo Implementar un Modelo de Volatilidad usando Lenguaje R?. Lmpsakos,
ISSN: 2145-4086, Vol. 3, No. 6, pp 38-45. Jul-Dic 2011



Lmpsakos, ISSN 2145 4086. Vol. 3, No. 6, Jul - Dic 2011
40
en Excel permite tener un primer acercamiento a la
implementacin del modelo GARCH, y tener un caso de
prueba para el desarrollo en R, en sta seccin se ilustra
cmo realizarlo en Microsoft Excel, para modelar la
volatilidad de una serie especfica. Una vez se han
entendido todas las ecuaciones, se puede proceder con la
implementacin en R.

Para la implementacin se tendrn en cuenta las
siguientes consideraciones: se modela la volatilidad de
TRM colombiana (tasa de cambio representativa del
mercado) entre el 1 de enero del 2000 y el 30 de
septiembre de 2009, ver Figura 1; se modelar con
GARCH(1,1) para facilitar la explicacin de la
implementacin. A continuacin se explicarn los pasos a
seguir para realizar el desarrollo.


Fig. 1. y
t
: TRM Colombiana.

Primer Paso: determinar las ecuaciones para el modelo
GARCH(1,1). El modelo AR(1) asociado es el resultante de
la ecuacin (3), con p=1:

1 1 0


+ =
t t
y y o o (6)

El error est dado por la ecuacin (2), mientras que
GARCH(1,1) es:

2
1 1
2
1 1 0
2

+ + =
t t t
e o | o o o (7)

Segundo Paso: especificar las celdas donde se
almacenarn los valores de los parmetros del modelo que
se van a estimar. En la Figura 2, los parmetros
0
,
1
,
0
,

1
,
1
, corresponden a las celdas adyacentes a las etiquetas
alpha0, alpha1, delta0, delta1, betha1. Para facilitar la
optimizacin de la ecuacin (4) las celdas M2 a M6, se
inicializan con el valor de 0,0001; la celda adyacente a
delta1+betha1 (M7=M5+M6) se utiliza para tener en
cuenta la restriccin (5), es decir,
1
+
1
<1.


Fig.2. Parmetros del Modelo.

Tercer Paso: diferenciar la serie en caso de ser necesario.
Con el fin de eliminar la tendencia presente en la serie
TRM (ver Figura 1), se procede a diferenciar la serie como
se puede apreciar en la columna D de la Figura 3.
Entonces, y
(t)
= TRM
(t)
TRM
(t-1)
.


Fig. 3. Diferenciacin de la serie TRM.

Cuarto Paso: calcular el respectivo modelo AR. Entonces,
se agrega una columna para el primer rezago (y
t-1
),
columna E en la Figura 4; y otra para calcular
t
, columna F
en la Figura 5, correspondiente a la ecuacin (6).


Fig. 4. Columna E para el primer rezago y
t-1
.

Quinto Paso: calcular el error con base en la ecuacin (2),
como se presenta en la Figura 6, donde se usa la columna
G para calcular e
t
.

Sexto Paso: calcular el modelo GARCH(1,1). La ecuacin
(7), se calcula en la columna H de la Figura 7
Villa, F.; Velsquez, J.D.; Snchez, P.A. Cmo Implementar un Modelo de Volatilidad usando Lenguaje R?. Lmpsakos,
ISSN: 2145-4086, Vol. 3, No. 6, pp 38-45. Jul-Dic 2011



Lmpsakos, ISSN 2145 4086. Vol. 3, No. 6, Jul - Dic 2011
41

Fig. 5. Columna F para calcular
t
,.


Fig. 6. Columna G para calcular e
t
.

Sptimo paso: calcular y maximizar log L, para estimar los
parmetros del modelo. Entonces, en la Figura 8 se calcula
ln(
2
t
) y (e
2
t
/
2
t
), en las columnas I , J, respectivamente;
luego, en la celda M11 se calcula log L, como se presenta
en la Figura 9.


Fig. 7. Columna H del para calcular
2
t
del modelo GARCH


Fig. 8. Columna I, J para calcular ln(
2
t
) y (e
2
t
/
2
t
),
respectivamente


Fig. 9. Celda M11 para calcular log L.

Finalmente, se utiliza la herramienta Solver para estimar
los parmetros definidos en el primer paso, maximizando
el log L calculado en la celda M11. Los parmetros y las
restricciones utilizadas son presentados en la Figura 10. En
la Figura 11 se resumen los parmetros estimados.
Mientas que en la Figura 12 se grafica el
2
t
estimado.


Fig. 10. Parmetros de optimizacin en Solver


Fig. 11. Parmetros estimados con Solver en Microsoft Excel

En conclusin, la implementacin realizada en esta seccin
sobre una hoja de Microsoft Excel presenta varias
desventajas, entre ellas:

En caso de que se desee modelar otra serie es
necesario replantear toda la hoja de clculo, dado que
posiblemente cambiar la cantidad de rezagos, de
datos y de parmetros, sta dificultad podra sortearse
programando el modelo con las Macros de Excel; sin
embargo, el usuario estara sometido a desarrollar en
una herramienta que no es gratuita, lo que dificulta su
acceso a muchas personas y empresas.
Villa, F.; Velsquez, J.D.; Snchez, P.A. Cmo Implementar un Modelo de Volatilidad usando Lenguaje R?. Lmpsakos,
ISSN: 2145-4086, Vol. 3, No. 6, pp 38-45. Jul-Dic 2011



Lmpsakos, ISSN 2145 4086. Vol. 3, No. 6, Jul - Dic 2011
42
A pesar de que Solver es una herramienta de
optimizacin til, en ocasiones no es robusta para
realizar la optimizacin de mltiples parmetros, esto
se refleja en que a veces es necesario asignar a los
parmetros algunos puntos aleatorios, para que Solver
sea capaz de encontrar una posible solucin.

Sin embargo, el desarrollo del modelo en una hoja de Excel
facilita la presentacin del mismo, dado que permite
realizar y presentar clculos de manera sencilla y amigable.


Fig. 12. Volatilidad estimada para la TRM Colombiana con un
modelo GARCH(1,1) en Excel


IV. IMPLEMENTACIN DE GARCH EN R

En el sistema operativo Microsoft Windows, los modelos
de volatilidad pueden ser implementados en la mayora de
entornos de programacin existentes, tales como: R,
MATLAB, SAS, Mathematica, Visual Studio .Net, Java, etc;
en hojas de clculo, como: Excel de Microsoft Office, Calc
de OpenOffice, Lotus 1-2-3 integrada en Lotus SmartSuite,
entre otras.

Sin embargo, la licencia (derecho de uso) de la mayora de
los entornos y hojas de clculo mencionadas no es
gratuita; esto implicara, en caso de no poseer la licencia o
conjunto de licencias, un costo adicional para la empresa o
persona interesada en: implementar modelos
economtrico o de volatilidad; brindar o recibir servicios
de consultora y entrenamiento; y replicar las
implementaciones realizadas en otras empresas o
departamentos de la misma. En este caso, es
recomendado utilizar software de licencia gratuita como R,
Calc de OpenOffice, entre otros.

El entorno de programacin de R permite crear subrutinas
o funciones para resolver tareas especficas de un
algoritmo determinado. Para realizar una tarea, las
funciones pueden recibir datos, parmetros o argumentos;
y como resultado de la tarea realizada, la funcin
retornar una sola estructura de datos (lista, vector,
matriz, etc.). Estas funciones pueden ser agrupadas en
paquetes de acuerdo con una finalidad especfica, por
ejemplo, un paquete que agrupe varias funciones de
estadstica descriptiva; para ms informacin consultar [5].

Por otro lado, sin importar el entorno de desarrollo, la
implementacin de los modelos es compleja por no tener
pautas para disear e implementar su cdigo. Dado que R
es un entorno de programacin gratuito y estable, se
proponen las siguientes pautas para disear e
implementar el cdigo de un modelo GARCH en R:

Antes de comenzar la implementacin es necesario
entender a cabalidad las ecuaciones del modelo.
Crear una funcin por cada ecuacin que tenga el
modelo.
Crear una funcin para optimizar y estimar los
parmetros del modelo, esta puede nombrarse
genricamente [Link], en el caso de GARCH,
[Link], en la cual se utilizarn las funciones
definidas por cada ecuacin del modelo.
Crear una funcin para el despliegue de los resultados
de la optimizacin del modelo, esta puede nombrarse
genricamente como [Link], en el caso de
GARCH, [Link].
Crear una funcin principal, denominada Modelo (es
este caso Garch), en la cual se declaran las variables
globales, se optimiza la funcin [Link], y retorna el
modelo estimado.
Finalmente se crea un paquete llamado Volatility, que
contiene las funciones creadas.

Cabe anotar que la siguiente implementacin no es la
nica forma de realizar un modelo GARCH, y con fines
didcticos las funciones se programaron utilizando
sentencias y bloques de cdigo bsicos. Entonces,
siguiendo las pautas dadas, las funciones necesarias para
implementar un modelo GARCH son:

Primera, calcular y
t
con base en la ecuacin (3); para esto,
se crea la funcin estimar.y (ver Cdigo 1), la cual recibe
como parmetros la variable alpha0 y el vector alphas,
correspondientes a los coeficientes
0
y
i
, i=1p y
retorna un vector (matriz con una columna) con el valor
estimado de y en cada instante t .

Villa, F.; Velsquez, J.D.; Snchez, P.A. Cmo Implementar un Modelo de Volatilidad usando Lenguaje R?. Lmpsakos,
ISSN: 2145-4086, Vol. 3, No. 6, pp 38-45. Jul-Dic 2011



Lmpsakos, ISSN 2145 4086. Vol. 3, No. 6, Jul - Dic 2011
43
Segunda, calcular el error con base en la ecuacin (2). En el
Cdigo 2, se presenta la funcin [Link], esta recibe
el parmetro [Link]; y entrega como resultado, un
vector que contiene el error calculado para cada instante t;
en el cuerpo de la funcin, [Link] es un vector global que
contiene los datos reales de la serie.


Cdigo 1. Funcin para calcular y
t


Tercera, calcular la volatilidad con base en la ecuacin (1).
Entonces, se crea la funcin estimar.sigma2 (ver Cdigo 3)
la cual recibe los parmetros necesarios para calcular
2
y
retorna un vector con el valor
2
calculado para cada
instante t.

Cdigo 2. Funcin para calcular e
t


Cuarta, calcular log L con base en la ecuacin (4). En el
Cdigo 4 se presenta la funcin [Link], esta recibe
por parmetros
2
estimado y el error, con los cuales
calcula el log L del modelo.


Cdigo 3. Funcin para calcular la volatilidad

Quinta, realizar una funcin para minimizar y estimar los
coeficientes del modelo, la cual deber estar compuesta
por las funciones de los Cdigos 1, 2, 3, y 4. La funcin
[Link] (Cdigo 5) recibe un vector (param) con los
parmetros o coeficientes que se desean optimizar, luego
estos parmetros son separados en los correspondientes
alpha0, alphas, delta0, deltas y bethas; a continuacin, se
calcula: [Link] con la funcin estimar.y; el error con el
[Link]; [Link] con el delta0, deltas, bethas
y el error calculado; finalmente, se calcula logL con
[Link] y el error, y se retorna el valor de log L.

estimar.y <- function(alpha0, alphas)
{
[Link] <- matrix(0,
nrow=(length([Link])),
ncol = 1)

for (t in 2:length([Link]))
{
sumatoria <- alpha0
for (i in 1: orden.p)
{
if ((t - i) > 0)
{
sumatoria <- sumatoria +
(alphas[i] *
[Link][t-i])
}
}
[Link][t] <- sumatoria
}
return([Link])
}
[Link] <- function([Link] ,
[Link])
{
error<-matrix(0,
nrow=(length([Link])),
ncol = 1)

for (t in 2:length([Link]))
{
error[t]<-([Link][t]-[Link][t])
}

return(error)
}
estimar.sigma2<-function(delta0, deltas,
bethas, error)
{
[Link]<-matrix(0,
nrow=(length([Link])),
ncol = 1)

for (t in 3:length([Link]))
{
sumatoria <- delta0

for (i in 1:orden.p)
{
if ((t-i)>0)
{
sumatoria<-sumatoria+
(deltas[i] *
(error[t - i] ^ 2))
}
}

for (i in 1:orden.q)
{
if ((t-i)>0)
{
sumatoria<-sumatoria+
(bethas[i] *
([Link][t - i]))
}
}

[Link][t] <- sumatoria
}

return([Link])
}
Villa, F.; Velsquez, J.D.; Snchez, P.A. Cmo Implementar un Modelo de Volatilidad usando Lenguaje R?. Lmpsakos,
ISSN: 2145-4086, Vol. 3, No. 6, pp 38-45. Jul-Dic 2011



Lmpsakos, ISSN 2145 4086. Vol. 3, No. 6, Jul - Dic 2011
44

Cdigo 4. Funcin para calcular log L


Cdigo 5. Funcin para ajustar los parmetros del modelo

Sexta, crear una funcin para imprimir y graficar el modelo
estimado. Tal funcin se presenta en el Cdigo 6, en la cual
se imprimen los coeficientes y se grafica la volatilidad
estimada.

Sptima, crear la funcin principal. En la funcin
presentada en el Cdigo 7, Garch recibe como parmetro
la serie de tiempo y
t
, y el orden del modelo (p, q); adems,
en ella se declaran las variables globales del modelo, se
optimiza la funcin [Link] mediante la funcin nlminb,
luego se compone el modelo por la lista de valores: coef,
son los coeficientes del modelo; sigma2, la serie de la
volatilidad estimada; series, la serie real; y orden, el orden
del modelo. Finalmente, se imprime el modelo y se
retorna.


Cdigo 6. Funcin para presentar el modelo estimado


Cdigo 7. Funcin principal
[Link]<-function([Link],
error)
{
T <- length([Link])

parte1<--((T - 3) / 2) * log(2*pi)

parte2<--0.5* sum(
log([Link][3:T]))

parte3<--0.5*sum(
(error[3:T]^2)/
[Link][3:T])

logL = parte1 + parte2 + parte3

return(logL)
}
[Link] <- function(param)
{
alpha0 <- param[1]
alphas <- param[2:(orden.p + 1)]
delta0 <- param[(orden.p + 2)]
deltas <- param[(orden.p + 3):
(2*orden.p + 2)]
bethas <- param[(2*orden.p + 3):
(2*orden.p + 2 + orden.q)]
[Link] <- estimar.y(alpha0, alphas)

error <- [Link]([Link])

[Link]<-estimar.sigma2(delta0,
deltas,
bethas,
error)
logL<-[Link]([Link], error)
return(((-1)*logL))
}
[Link] <- function(model)
{
o.p = model$orden[1]
o.q = model$orden[2]

alpha0<-model$coef[1]
alphas<-model$coef[2:(o.p + 1)]
delta0<-model$coef[(o.p + 2)]
deltas<-model$coef[(o.p + 3):(2*o.p + 2)]
bethas<-model$coef[(2*o.p+3):(2*o.p+2+o.q)]

cat("Mod. Est.,Garch(p=",o.p,",q=", o.q,")")
cat("Coeficientes \n")
cat("Alpha0: ", alpha0, " \n")
cat("Alphas: ", alphas, " \n")
cat("Delta0: ", delta0, " \n")
cat("Deltas: ", deltas, " \n")
cat("Bethas: ", bethas, " \n\n")

plot(model$sigma2)
}
Garch <- function(y, orden = c(0,0))
{
# Declaracin Variables Globales

# Declaracin Variables
cantVar <- 2+2*orden.p+orden.q

# Definicin de los Lmites

# Optimizacin
Optim<-nlminb(rep(0.00001, cantVar),
[Link],
lower = limInferior,
upper = limSuperior,
control =list( [Link]=50,
[Link]=50))

modelo <- list(
coef = Optim$par,
sigma2=ts([Link]),
series = y,
orden = orden
)

[Link](modelo)

return(modelo)
}
Villa, F.; Velsquez, J.D.; Snchez, P.A. Cmo Implementar un Modelo de Volatilidad usando Lenguaje R?. Lmpsakos,
ISSN: 2145-4086, Vol. 3, No. 6, pp 38-45. Jul-Dic 2011



Lmpsakos, ISSN 2145 4086. Vol. 3, No. 6, Jul - Dic 2011
45
La implementacin realizada permite estimar modelos
GARCH de cualquier orden p, q. Hasta este punto se tienen
las funciones necesarias para el modelo, resta crear el
paquete Volatility, para esto es necesario cargar en R las
funciones creadas y ejecutar el Cdigo 8; este crea toda la
estructura del paquete, en la ruta C:\Volatility, la cual
contiene dos subcarpetas: R que contiene el cdigo fuente
de cada funcin; y man contiene la documentacin de
cada funcin, es decir, un archivo Rd por cada funcin
creada; para ms detalles consultar [4].


Cdigo 8. Creacin del paquete Volatility.

V. PRUEBA DEL MODELO GARCH

En el Cdigo 9 se presentan las lneas necesarias para
probar el modelo GARCH(p,q) implementado. Primero, se
leen los datos de la TRM desde un archivo de texto, estos
datos se transforman en una estructura de series de
tiempo mediante la funcin ts; luego, se diferencia la serie
con la funcin diff; finalmente, se modela la volatilidad de
la serie diferenciada con un GARCH(1,1). Los parmetros
estimados se presentan en la Figura 13, y la volatilidad
modelada en la Figura 14, ntese que es similar a la
obtenida con Excel en la Figura 12.


Cdigo 9. Creacin del paquete Volatility.


Fig. 13. Parmetros estimados en R, al modelar la volatilidad la
TRM Colombiana con un modelo GARCH(1,1)

Fig. 14. Volatilidad estimada para la TRM Colombiana con un
modelo GARCH(1,1) en R

VI. CONCLUSIONES

Contar con pautas para la implementacin de un modelo
de volatilidad, permite estructurar el cdigo, de tal manera
que puede facilitar la programacin, documentacin y
distribucin del modelo.

Una etapa fundamental para realizar la implementacin de
un modelo es entender a cabalidad las ecuaciones del
mismo.

La programacin del modelo permite al desarrollador
consolidar el conocimiento que posee sobre el mismo.

El encapsulamiento de las funciones de los modelos en
paquetes facilita la distribucin y mantenimiento de los
mismos.

VII. REFERENCIAS

[1] Bollerslev, T. (1986). Generalized Autoregressive
Conditional Heterocedasticity. Journal of Econometrics , 31
(3 (April)), 307-327.
[2] Casas Monsegny, M., & Cepeda, E. (2008). Modelos ARCH,
GARCH y EGARCH: aplicaciones a series financieras. Revista
Cuadernos de Economa , 27 (48), 287 - 319.
[3] Engle, R. F. (1982). Autoregressive Conditional
Heterocedasticity whit Estimates of the Variance of United
Kingdom Inflation. Econometrica , 50 (4), 987-1008.
[4] Development Core Team. (2009). Writing R Extensions.
ISBN 3-900051-11-9: Version 2.10.0 (2009-10-26).
[5] Venables, W. N., & Smith, D. M. (2009). An Introduction to
R. ISBN 3-900051-12-7 : Version 2.10.0 (2009-10-26).


[Link](list=c("Garch","estimar
.y","[Link]","estimar.sigma2","c
[Link]","[Link]","[Link]
"), name="Volatility", path="C:/")
[Link]=[Link]('C:/[Link]')
[Link]=ts([Link],names='TRM Colombia')


#Transforma la serie
[Link] = diff([Link])

#calcular el Modelo
[Link]<-Garch([Link],c(1,1) )

También podría gustarte