Beruflich Dokumente
Kultur Dokumente
Itajub
2005
UNIVERSIDADE FEDERAL DE ITAJUB
Banca Examinadora:
Itajub
2005
Ficha catalogrfica elaborada pela Biblioteca Mau
Bibliotecria Jacqueline R. Oliveira Balducci - CRB_6/1698
C268s
CDU 658:620(043.2)
AGRADECIMENTOS
Agradeo a meu orientador e amigo, professor Pedro Paulo Balestrassi pelo incentivo dado,
pela confiana, pela pacincia, pela amizade e pela dedicao em estar sempre pronto a me
ajudar.
Ao meu marido Levindo, que sempre esteve ao meu lado, agradeo pela grande ajuda,
carinho, incentivo, companhia, compreeenso e principalmente pacincia pela minha falta de
tempo.
Aos meus pais, Marilio e Diva, e a meu irmo Fabiano, agradeo de corao, pela ajuda,
carinho, incentivo, pacincia e apoio.
Aos meus familiares com os quais no pude conviver muito este ltimo ano por causa deste
trabalho.
Aos meus amigos que torceram por mim e compreenderam minha ausncia, em especial Isa,
B e L.
Agradeo tambm a todas aquelas pessoas que, direta ou indiretamente, contriburam para a
realizao deste projeto.
Por fim, o trabalho faz anlises dos resultados obtidos da simulao e previso
realizada e prope sugestes para trabalhos futuros, objetivando sempre resultados cada vez
mais precisos para uma previso.
Finally, the work makes analyses of the obtained results from the simulation and
accomplished forecast and it proposes suggestions for future works, looking for a continued
improvement in results for a better volatility forecast.
1 INTRODUO
Este captulo retrata algumas particularidades do mercado de energia eltrica bem
como as teorias associadas ao tema, e descreve a proposta do trabalho para previso da
volatilidade associada demanda para consumidores livres, considerando o objetivo
proposto, resultados esperados e metodologia utilizada.
Morettin e Toloi (1987) afirmam que a previso no constitui um fim em si, mas
apenas um meio de fornecer informaes para uma conseqente tomada de deciso, visando
determinados objetivos.
2. cada previso deve conter uma estimativa de erro, que freqentemente expressa
em uma porcentagem da previso ou como uma mdia entre os valores mximo e mnimo;
Corra et al. (2000) tambm salientam que previses para horizontes maiores possuem
um grau de incerteza maior. Isto , o erro crescente com o tempo.
Igualmente, vlido considerar a declarao de George Box (1976) na qual diz que
todos os modelos esto errados, mas alguns so teis. Para Angkaw (2005), tal afirmao
importante como um princpio que servir como um guia para formulao e interpretao de
modelos de previso, porm literalmente a citao de Box est realmente errada. Por
definio, todos os modelos de previso esto errados no sentido de serem representaes
simplificadas da realidade. Porm, dado que os modelos pretendem ser somente
representativos, alguns modelos realmente podem ser mais representativos que outros, ou
seja, podem estar mais corretos que outros. Para avaliar a utilidade de um modelo, devem ser
examinadas as expectativas do modelo, ou seja, a utilizao da resposta deste modelo. Dentro
do escopo de que um modelo certo deve cumprir com o propsito especfico em seu
contexto original, tambm provvel que seja um modelo til.
De uma forma geral, entre as vantagens de uma boa previso, temos: menor estoque
em processos de manufatura, custo financeiro e tempo de entrega, maior previsibilidade e
satisfao do cliente, melhor atendimento da demanda entre outros (MAKRIDAKIS et al.,
1983).
1.2 Justificativa
A reestruturao do setor eltrico no mundo teve incio na dcada passada, com a
desverticalizao das empresas e alterao em suas atividades. Esta reestruturao consistiu,
principalmente, na mudana de um ambiente de monoplio baseado no custo para um
ambiente de competio baseado no preo (DEKRAJANGPETCH e SHEBL, 2000).
Anteriormente a este novo cenrio as empresas eltricas tinham que abastecer uma
demanda atravs da disponibilidade de usinas de gerao e redes de transmisso e
distribuio. No sistema eltrico regulado todas as relaes comerciais que se estabeleciam,
da produo at venda da eletricidade, eram contratadas e aprovadas pela entidade
reguladora. Os preos de venda aos clientes finais eram fixados de modo a obter o volume
monetrio global que satisfizesse as obrigaes decorrentes da regulao (PINTO, 2001).
Por volta da dcada de 80, o mercado de energia eltrica passou a ter seu alicerce
conceitual modificado, passando a considerar a existncia de concorrncia na gerao de
energia eltrica, com base em preos spot e em uma nova estrutura do mercado a fim de
proporcionar um funcionamento mais eficiente do setor eltrico (DEKRAJANGPETCH e
SHEBL, 2000).
Captulo 1 - INTRODUO 18
Vendas no mercado spot, cujo preo varia de acordo com a relao entre oferta e
procura.
O consumidor livre pode ter a opo de compra e venda de energia eltrica, tanto pelas
empresas geradoras quanto pelo mercado atacadista. Pela Figura 1-1 observa-se que a linha
preta representa a quantidade de energia eltrica contratada entre a empresa geradora de
energia e o consumidor livre. A linha verde representa a quantidade mxima que a empresa
geradora disponibiliza alm do valor contratado, caso ele tenha uma necessidade maior de
demanda. E mesmo que o consumidor livre no utilize a energia eltrica contratada ele deve
pagar por uma quantidade mnima de energia eltrica para a empresa geradora, representada
pela linha azul. A linha vermelha representa a energia eltrica realizada (ou seja, utilizada)
pelo consumidor livre. Pode se observar pelo grfico que em Jan05 a CCEE possua um preo
spot da energia mais atrativo que o preo contratado entre o consumidor livre e a empresa
geradora. Assim o consumidor livre passou a comprar o mnimo obrigatrio de energia da
empresa geradora e o restante da energia necessria passou a comprar no mercado atacadista
atrves da CCEE (representado pela linha roxa).
Este cenrio atual exemplifica claramente que os valores mximo e mnimo de energia
contratada, assim como a comparao entre a demanda de energia contratada e a demanda real
de energia so valores bastante distintos, caracterizando uma dificuldade de planejamento em
decorrncia da grande variao na demanda da energia eltrica (volatilidade), que cada vez
Captulo 1 - INTRODUO 21
mais se torna muito semelhante a um mercado de aes, j que os preos spot so negociados
como aes.
1
LEI 10.848, DE 15 DE MARO DE 2004. - Dispe sobre a comercializao de energia eltrica, altera as Leis nos 5.655, de 20 de maio de
1971, 8.631, de 4 de maro de 1993, 9.074, de 7 de julho de 1995, 9.427, de 26 de dezembro de 1996, 9.478, de 6 de agosto de 1997, 9.648,
de 27 de maio de 1998, 9.991, de 24 de julho de 2000, 10.438, de 26 de abril de 2002, e d outras providncias.
2
Decreto N 5163, de 30 de julho de2004 Regulamenta a comercializao de energia eltrica, o processo de outorga de concesses e de
autorizaes de gerao de energia eltrica, e d outras providncias.
Captulo 1 - INTRODUO 22
O princpio bsico dos modelos GARCH que, em geral, grandes mudanas tendem a
ser seguidas por grandes mudanas e pequenas mudanas tendem a ser seguidas por pequenas
mudanas. Sob esta tica, a previso da variabilidade torna-se to importante quanto a
previso dos valores da srie original (ENGLE, 1982).
Captulo 1 - INTRODUO 23
Definir o modelo a ser utilizado com base nas caractersticas da srie considerada.
De forma geral, espera-se que este estudo possa servir como base de auxlio para
estudos similares em outros setores que necessitem de previses na qual possuam uma
srie temporal com comportamentos semelhantes srie utilizada neste estudo, como
a volatilidade condicional (implica que as observaes atuais dependem das
observaes imediatamente anteriores) existente entre os dados da srie e a
estacionariedade (mdia e varincia so constantes) do processo.
Segundo Naylor (1971), Pegden et al (1995), Simon (1996), Berto e Nakano (2000), a
simulao uma tcnica numrica que realiza experincias computacionais, utilizando certos
tipos de modelos lgicos que descrevem o comportamento de um sistema econmico ou de
negcios (ou um aspecto parcial de um deles) sobre extensos intervalos de tempo.
Vrios autores, como Naylor (1971) e Law e Kelton (2000), citam algumas atividades
onde a simulao pode ser utilizada:
Aps a coleta e anlise dos dados passados, faz-se necessrio, decidir pela utilizao
da tcnica de previso mais apropriada. Existem tcnicas qualitativas e quantitativas que
podem ser utilizadas no processo de previso. As mesmas, ao seu tempo, sero descritas,
respectivamente, nos tpicos 2.2 e 2.3. Em relao ao processo de deciso supracitado, isto ,
escolha da tcnica de previso, Tubino (2000), destaca os seguintes fatores:
Por fim, faz-se necessrio salientar que a definio da tcnica de previso mais
apropriada aos dados a etapa mais importante do modelo de previso descrito anteriormente.
Segundo Tubino (2000), as tcnicas de previso possuem as seguintes caractersticas gerais:
Seguindo uma linha de raciocnio semelhante Corra et al. (2000), relacionam alguns
requisitos que devem ser observados para efetuar previses eficazes:
Captulo 1 - INTRODUO 29
3. Testes preliminares;
4. Consideraes finais.
2 REVISO BIBLIOGRFICA
Este captulo apresenta alguns conceitos fundamentais tais como mtodos de
previso, sries temporais, anlise de regresso, erros de previso, autocorrelao e a
definio de alguns modelos estatsticos de previso, como AR, MA, ARMA, ARIMA, SARIMA
e modelos no lineares como Redes Neurais e MDNs.
2.1 Introduo
Para Tubino (2000) e Moreira (1996) devem ser assumidas algumas pressuposies
em relao aos mtodos de previso. A primeira que as causas que estiveram presentes no
passado, configurando a demanda, tero a mesma influncia no futuro. A segunda que
quanto maior o horizonte previsto maior a chance de erro.
Makridakis et al. (1998), observa que as tcnicas quantitativas de previso podem ser
aplicadas sob trs condies:
De acordo com Davis et al. (2001), as anlises das sries temporais, de modo geral,
devem ser utilizadas para o curto prazo. As previses causais, ao seu tempo, devem ser
utilizadas em situaes de longo prazo.
Para Ribeiro e Paula (2000), uma srie temporal definida como um conjunto de
observaes de uma dada varivel, geralmente distribudas de maneira eqidistante no tempo,
e que possuem como caracterstica central a presena de uma dependncia serial entre elas. A
srie denotada por Zt, onde t = {1, 2, 3, 4, ..., n} so os intervalos de amostragem e com
funo densidade de probabilidade p(Zt) para cada t, conforme mostrado na Figura 2-1.
Captulo 2 - REVISO BIBLIOGRFICA 34
Zt
t
1 2 3
Figura 2-1 Srie Temporal e Caractersticas de Distribuio de Probabilidade Tpica
Neste grfico observa-se que a variao no pontual, mas sim segue uma curva de
probabilidade para cada tempo, sendo que para cada tempo t existe uma distribuio de
probabilidade que pode no ser necessariamente a mesma para os demais.
A srie temporal tambm pode ser vista como a realizao de um processo estocstico,
que definido como uma seqncia de observaes regidas por leis probabilsticas. Isto
significa que uma srie temporal pode ser considerada como uma amostra de um determinado
processo estocstico (RIBEIRO e PAULA, 2000).
Morettin e Toloi (1987) mostram que, quando se analisa uma srie temporal os
objetivos bsicos so:
Deste modo, a aplicao de sries temporais utiliza a avaliao dos dados histricos
para obter modelos de previso.
Para a anlise de qualquer srie temporal, essencial que, primeiramente, seja feito
um grfico, a fim de obter uma viso qualitativa geral do seu comportamento (FONSECA et
al., 1995). Entretanto, a inspeo visual do comportamento da srie apenas um direcionador
sendo necessrias anlises estatsticas para uma concluso mais verdadeira sobre o
comportamento da srie.
Segundo Tubino (2000), as curvas obtidas pelas sries temporais podem conter
tendncias, sazonalidades, variaes irregulares e variaes randmicas.
Aleatoriedade (ou Erro): Tambm chamado de erro residual possui uma seqncia
de variveis aleatrias independentes e identicamente distribudas (i.i.d)3,
3
O pressuposto de aleatoriedade e independncia refere-se diferena entre cada valor observado e a mdia aritmtica do seu prprio grupo,
onde estas diferenas deveriam ser independentes para cada valor observado. Isso significa que a diferena (ou erro) para uma observao
no deve correponder diferena (ou erro) de qualquer outra observao (Levine et al., 2000).
Captulo 2 - REVISO BIBLIOGRFICA 37
Um outro tipo de classificao das sries temporais pode ser feito baseando-se no
nmero de sries temporais envolvidas na modelagem. Esta classificao divide-se segundo
Makridakis et al. (1998) em:
Modelos Univariados: grupo de dados que inclui todos os mtodos que se baseiam em
uma nica srie histrica, ou seja, a srie temporal explicada (prevista) apenas por seus
valores passados. Este ser o modelo utilizado no presente trabalho.
Para descrever sries temporais so utilizados modelos estatsticos que podem ser
classificados em duas classes, segundo o nmero de parmetros envolvidos. (MORETTIN e
TOLOI, 2004).
Modelos paramtricos: possuem um nmero de parmetros finito. Os modelos
mais comumente usados so os modelos AR, ARMA, ARIMA e modelos no
lineares.
Modelos no-paramtricos: possuem um nmero infinito de parmetros. Podem
ser exemplificados pela funo de auto-covarincia (ou autocorrelao) e modelos
de redes neurais.
Os modelos de regresso clssicos tem um forte apelo por sua difuso, sendo
disponveis em vrios softwares e de fcil utilizao (SALLES, 1996).
o simples fato de existir uma forte associao entre duas variveis no significa
que haja entre elas uma relao de causa e efeito. Se for obtida uma funo linear
de regresso, que se ajuste bem relao entre a varivel independente X e a
varivel dependente Y, ento haver quatro possibilidades:
os valores de Y podem realmente depender dos valores de X;
a relao observada pode ser completamente casual;
pode haver uma terceira varivel afetando X e Y;
pode haver, efetivamente, uma ligao casual entre X e Y, mas
importante que X esteja causando Y; preciso saber corretamente qual a
varivel dependente e qual a varivel independente.
Y = f(x) (1)
Captulo 2 - REVISO BIBLIOGRFICA 40
Y = + .x (2)
Y = + .x + (3)
onde:
x a varivel independente;
+ .x a componente determinstica;
e so os coeficientes de regresso.
Atravs do mtodo de regresso linear pode-se verificar quo bem o modelo (a reta de
regresso) se ajusta aos dados amostrais. Para isto pode ser realizado o clculo do coeficiente
de determinano R2, o qual fornece a porcentagem de variao em uma varivel que
explicada estatisticamente pela variao de outra varivel.
_
( y i y) 2 SQE
R2 = _
= (5)
SQT
( y i y) 2
3. desde que o fator humano difira de uma forma aleatria sob circunstncias
idnticas, o termo-erro pode ser usado para captar este fator humano
inerentemente aleatrio.
Para um bom ajuste dos modelos necessrio utilizar tcnicas em que a estrutura
residual seja um rudo branco, isto , que o erro seja uma varivel aleatria independente e
identicamente distribuda, com distribuio normal, mdia zero e desvio padro N(0;)
(SFADI, 2003).
Ento a covarincia entre Zt e Zt+k depende apenas do atraso (lag) k. (BOX et al.,
1994).
Assim:
Dada uma srie temporal Zt esta pode ser representada estatisticamente pelas seguintes
equaes: (RIBEIRO e PAULA, 2000).
Cov[Z t , Z t +k ]
k = (12)
Var (Z t ),Var (Z t + k )
onde: Cov[Zt,Zt+k] = k
(Y Y )(Y )
N h
1
l l +h Y
C N
Rh = h = l =1
(14)
(Y Y )
N
Co 1 2
l
N l =1
Onde:
t = xt x t o erro aleatrio ou rudo branco
x t a estimativa de xt
um valor constante
Segundo Stengel (1986), a mdia de um AR(p) dada pelo valor estimado E(xt):
E ( xt ) =
(1 1 2 ... p ) = (16)
1 + 2 + ... + p < 1
yt = .yt-1 + + t (17)
Para Makridakis et al. (1998), o mtodo consiste em calcular a mdia das ltimas n
observaes mais recentes. O valor encontrado, ao seu tempo, considerado a previso para o
prximo perodo.
Captulo 2 - REVISO BIBLIOGRFICA 47
onde:
t = xt x t o erro aleatrio ou rudo branco
x t a estimativa de xt
i < 1
Um MA(q) com q finito ser sempre estacionrio. Para Vasconcellos (2000), o modelo
de mdias mveis de primeira ordem, MA(1), dado por:
xt = + t 1t-1 (19)
perodos que sero utilizados na previso. E Tubino (2000) observa que o nmero de perodos
utilizados no clculo da mdia mvel que determina sua sensibilidade com relao aos
dados mais recentes.
No existe uma regra exata para dimensionar o perodo do modelo de mdia mvel,
mas preciso buscar o equilbrio, ou seja, qual o tamanho mais adequado do perodo a ser
considerado, pois quanto maior o perodo mais suave o comportamento da mdia e mais
imune a rudos e movimentos curtos ela estar. No entanto, se for grande demais, pode
responder de maneira muito lenta s mudanas significativas no mercado. Quanto menor o
perodo, a mdia seguir os valores de maneira mais prxima. Contudo, se o perodo for
pequeno demais a mdia estar excessivamente exposta s variaes dos valores, perdendo
sua utilidade como seguidora de tendncias (STENGEL, 1986).
Segundo Stengel 91986), o modelo ARMA (1,1) a especificao mais simples que
um processo dessa natureza pode apresentar:
Box e Jenkins propem que um processo estocstico estacionrio, por possuir mdia,
varincia e autocorrelao invariantes em relao ao tempo, pode ser otimamente
representado por um modelo auto-regressivo e/ou mdias mveis ARMA(p,q) obtido por
intermdio da passagem de uma srie rudo branco por um filtro linear, o que significa que a
srie resultante poder ser vista como uma combinao linear dos termos da srie original. O
Captulo 2 - REVISO BIBLIOGRFICA 49
processo resultante dessa passagem, considerando-se este filtro como estvel, tambm ser
estacionrio (RIBEIRO e PAULA, 2000).
O modelo ARIMA um caso geral dos modelos propostos por Box e Jenkins
(1976), o qual apropriado para descrever sries no estacionrias, ou seja, sries que no
possuem mdia constante no perodo de anlise, nas quais os parmetros quase sempre so
pequenos. Na prtica, geralmente as sries encontradas apresentam tendncia e (ou)
sazonalidade (SFADI, 2003).
Para Sfadi (2003), o modelo ARIMA considera a tendncia da srie temporal, tem
ordem (p,d,q) e pode ser representado por:
onde: d = (1-B)d
A metodologia para se prever uma srie temporal atravs dos modelos ARIMA
consiste de quatro etapas (GUJARATI, 2004):
Captulo 2 - REVISO BIBLIOGRFICA 51
Etapa 4 - Previso: em muitos casos, as previses obtidas com esse mtodo so mais
confiveis do que as obtidas com a modelagem economtrica tradicional, especialmente para
previses a curto prazo. Naturalmente, preciso checar cada caso.
O ciclo iterativo utilizado para a anlise de uma srie temporal atravs da metodologia
de Box e Jenkins est representado na Figura 2-6
1- Obteno de estacionaridade
da srie
4- O modelo adequado?
No
Sim
5- Previso
Figura 2-6 Fluxograma do Modelo ARIMA de Box e Jenkins
Quando a srie apresenta o componente sazonal, o modelo ARIMA tem ordem (p,d,q)
e pode ser representado por SARIMA.
p (B ) P (B S )(1 B )d (1 B S ) Yt = q (B )Q (B S )at
D
(23)
denotado por SARIMA (p,d,q) x (P,D,Q)S, em que P(B) e Q(B) so polinmios sazonais
autorregressivos e de mdias mveis de ordens p e q, respectivamente, e d o nmero de
diferenas de lags necessrias para retirar a sazonalidade da srie (SFADI, 2003).
Usando uma linguagem mais usual do ponto de vista estatstico, uma RNA pode ser
definida como uma forma de mapear um nmero de entradas (x1, x2, x3, ... , xr) em um grupo
de sadas (o1, o2, o3, ... ,op). A Figura 2-7 apresenta um modelo com p = 1, isto , existe
apenas um neurnio na camada de sada (MATHWORKS, 2002).
Captulo 2 - REVISO BIBLIOGRFICA 56
Depois que a rede neural tiver sido treinada, ela deve ser testada com novos dados no
utilizados no treinamento. O procedimento usual o de se separar casos conhecidos em dois
conjuntos distintos. Usa-se o primeiro como conjunto de treinamento e o segundo como
conjunto de validao (SHAW e SIMES 1999).
A principal dificuldade na utilizao de redes neurais artificiais na previso de sries
temporais, ainda a determinao da arquitetura tima da rede (nmero de ns).
Ainda no se possui uma metodologia consistente que apresente a melhor
configurao da rede para cada srie proposta.
Para qualquer dado valor de x, o modelo misto pelo prov um modelamento de funo
de densidade condicional arbitrrio p(t|x). Com os vrios parmetros do modelo misto (os
coeficientes mistos, a mdia e a varincia) tem-se uma funo contnua de x. Isto alcanado
modelando estes parmetros atravs da utilizao das sadas de uma rede neural convencional
que tem x como sua sada. A esta estrutura combinada de uma rede neural que alimenta um
modelo misto referido como MDN e sua estrutura bsica est representada na Figura 2-8
(BISHOP, 1994)
Captulo 2 - REVISO BIBLIOGRFICA 58
Funo de Densidade
de probabilidade
conditional
Modelo Misto
Vetor Parmetro
Rede Neural
Vetor de Entrada
A Figura 2-8 representa um MDN que consiste em uma rede neural alimentada cujas
sadas determinam os parmetros em um modelo misto de densidade. O modelo misto
representa a funo de densidade de probabilidade condicional das variveis designadas
condicionadas no vetor de sada da rede neural (BISHOP, 1994).
Uma rede de densidade mista obtida pela combinao de uma rede neural
convencional com um modelo de densidade misto. Um exemplo de MDN mostrado na
Figura 2-9. Neste exemplo, o MDN leva um vetor de sada de dimenso 5 e d a densidade
de probabilidade condicional de um vetor de dimenso 1 no domnio designado. Esta funo
de densidade modelada por um modelo misto Gaussiano com 3 componentes, que segundo
Richmond (2001), determinado por:
M
p(t x) = i ( x) j (t x)
j =1
Funo de Densidade
de probabilidade
conditional
Modelo Misto
Rede Neural
Vetor de Entrada
Conforme a Figura 2-9, o MDN uma combinao de um modelo misto e uma rede
neural. Em um MDN treinado, a rede neural traa do vetor de contribuio para os parmetros
de controle do modelo misto, que neste caso usa componentes Gaussianas ( , , 2) mas
teoricamente poderia ser qualquer nmero de funes (RICHMOND, 2001).
Yi ( 0 + 1.Xi )
Q=(Yi - 0 + 1.Xi )2
A Figura 2-10 mostra um diagrama tpico de disperso dos dados observados e uma
candidata para a linha estimada de regresso. As estimativas de 0 e 1 devem resultar em
uma linha que seja o melhor ajustepara os dados (MONTGOMERY e RUNGER, 1999).
y i = 0 + 1 xi + i i = 1,..., n (25)
sendo i = yi y i chamado de resduo. O resduo descreve o erro no ajuste do modelo
para a i-sima observao yi
y 6,5
5,5
4,5
Linha estimada de regresso
2,5
1,5
2 6 10 14 18 22
de previso: et = Yt Yt .
onde:
yt o valor previsto
O MAPE indica o valor mdio do erro percentual das previses sobre todo o conjunto
de teste.
A raiz do erro quadrtico mdio (Root Mean Square Error - RMSE) definida da
seguinte forma: (STOCK e WATSON, 2004)
_ 2
N
yk y k
yk
(27)
k =1
RMSE =
n
onde:
_
y k o valor previsto
Esta mtrica penaliza muito mais os erros maiores devido ao termo quadrtico. Desta
forma, uma tcnica que apresente timos resultados na maioria das previses, porm tenha
erros elevados em uma previso especfica, ir fornecer um alto RMSE.
Captulo 3 MODELOS GARCH 63
3 MODELOS GARCH
Este captulo aborda os conceitos de modelos de previso ARCH/GARCH bem como
suas particularidades, variaes e aplicabilidades e faz a previso da volatilidade associada
demanda de energia eltrica utilizando o modelo GARCH.
Na prtica prefervel modelar retornos, que so livres de escala, do que com preos,
pois os primeiros tm propriedades estatsticas mais significativas tais como estacionariedade.
E diversas classes de modelos podem ser utilizadas para anlise e simulao das sries de
retornos tais como ARIMA, ARCH, GARCH, etc. (MORETTIN 2004).
Uma das maneiras de definir o retorno Rt pode ser como a variao relativa de preo
ou retorno lquido simples de um ativo Pt entre os mesmos instantes:
Pt Pt 1 Pt
Rt = = (28)
Pt 1 Pt 1
suposio Campbell et al. (1997), o que sustenta a aplicao de modelos GARCH, j que a
srie de retornos caracterstica deste trabalho no i.i.d..
A volatilidade pode ser definida como uma medida da intensidade das variaes quase
sempre imprevisveis dos rendimentos de ativos. Por isso a volatilidade uma varivel
aleatria condicionada pela variabilidade verificada nos momentos passados que seguem um
processo estocstico. Qualquer modelo de volatilidade tem como finalidade descrever o
comportamento da volatilidade passada e, atravs deste, prever a volatilidade futura. Outra
caracterstica importante dos mercados financeiros a existncia de um comportamento
assimtrico na volatilidade, no sentido de que os perodos de elevada volatilidade tendem a
ser mais persistentes do que os perodos de baixa volatilidade (CAIADO, 2003).
De um modo bastante geral, pode-se dizer que uma srie econmica ou financeira
no-linear quando responde de maneira diferente a choques grandes ou pequenos, ou ainda a
choques negativos ou positivos (MORETTIN 2004).
histrico da varincia, mas sim aquele que se espera prevalea no futuro, o qual no pode ser
estimado apropriadamente simplesmente atravs do conhecimento do valor histrico. Desta
forma, a varincia em um instante t pode estar ou no condicionada s informaes passadas.
Em outras palavras, a varincia no condicional pode ser constante, mas para certos perodos
de grande incerteza a varincia condicional pode apresentar grandes alteraes por curtos
perodos de tempo (MORETTIN 2004).
A volatilidade tambm pode sofrer influncia de variveis exgenas onde seus valores
podem ser includos em modelos de volatilidade. Para o cenrio financeiro as variveis
exgenas podem ser exemplificadas pelas taxas de inflao, juros, etc. (ALEXANDER,
2001). No caso de demanda de energia podemos considerar as ondas de calor, frentes frias,
nvel dos reservatrios como alguns exemplos de variveis exgenas.
Em 1982, Engle, ganhador do prmio Nobel de 2003, considerou que era possvel
construir um modelo paramtrico no qual a varincia seria condicionada por uma equao
algbrica, modelando no s a mdia, como tambm, a varincia condicionada. Estes modelos
procuram captar a volatilidade de autocorrelaes, onde o risco de hoje dependente do risco
observado no passado, contrariamente aos modelos auto-regressivos de mdia mvel
(ARMA). A este modelo se designou Autoregressive Conditional Heteroscedasticity (ARCH),
uma nova forma de modelar o comportamento dos rendimentos dos ativos financeiros, que se
baseava na existncia de heteroscedasticidade condicional verificada no passado imediato
(CAIADO, 2003).
t = f ( t21 ) = K + t21
( )
q
ARCH (q ) t2 = 0 + i t21 (29)
i =1
q
Onde: i > 0
i < 1 so os coeficientes
i =1
q>0
0
2 = q
varincia incondicional (30)
1 i
i =1
A restrio do somatrio dos coeficientes ser menor do que 1 para garantir que o
modelo tenha covarincia estacionria.
Bollerslev (1986) generaliza o trabalho de Engle (1982), com uma famlia de modelos,
a qual inclui a famlia ARCH como caso particular (ANDRADE, 2004).
( ) + ( )
q p
GARCH (q, p) t2 = 0 + i
2
t i i
2
t i
(31)
i =1 i =i
q p
i + i < 1
i =1 i =i
CURTOSE Normal
Padro
(FAT TAIL)
Leptocrtica
Padro
m4
C= onde o quarto momento dado por (32):
4 ,
_
( xi x) 4
m4 =
n
_
i
onde x cada elemento do conjunto de dados, x a mdia e n o nmero de
elementos da srie.
A curtose pode ser caracterizada por uma distribuio que apresenta uma curva de
freqncias mais fechada que a normal, denominada leptocrtica (Figura 3-3 A). Quando a
curva de freqncia mais aberta que a normal recebe o nome de platicrtica (Figura 3-3 B)
e a curva normal denominada de mesocrtica (Figura 3-3 C) (STENGEL, 1986).
Captulo 3 MODELOS GARCH 73
Perodo de volatilidade
Perodo de elevada
volatilidade elevada
Perodo de
volatilidade menor
Clusters
A observao da Figura 3-4 permite constatar que esta srie dos retornos dirios
apresenta caractersticas de estabilidade na mdia, mas exibe uma das particularidades tpicas
das sries financeiras: perodos de variabilidade mais elevada intercalados com perodos de
menor variabilidade.
Quando se trabalha com mercados especulativos tais como taxas de cmbio, de juros
freqente constatar que grandes e pequenos erros ocorrem em grupos (clusters)
(MATHWORKS, 2002).
O modelo GARCH um modelo verstil que pode ser aplicado a todo fenmeno fsico
que apresente as caractersticas de volatilidade semelhantes s das sries temporais
financeiras. Todo fenmeno fsico que pode ser observado pode tambm ser caracterizado por
uma srie temporal amostrada. Muitos destes fenmenos possuem comportamento com
caractersticas de variao abrupta numa escala relativa de tempo, em intervalos de
amostragem que variam de alguns milisegundos a vrios dias. Independente da escala relativa
de tempo, todos possuem a mesma caracterstica de volatilidade e, independente de sua
origem, so processos estocsticos e podem ser caracterizados por modelos baseados em
caractersticas representativas de suas propriedades estatsticas ou probabilsticas. Modelos
tais como ARMA e ARIMA so freqentemente utilizados, mas apresentam deficincias por
no cobrirem outros parmetros estatsticos de ordem superior, tais como a variao da
varincia (volatilidade). Embora muitos fenmenos no sejam cclicos, a anlise de um
Captulo 3 MODELOS GARCH 75
yt = C + t (33)
Captulo 3 MODELOS GARCH 77
O modelo de varincia condicional, equao (2), um modelo que pode ser usado para
previso (alm da anlise) da varincia t2, que consiste de uma constante K adicionada de
uma mdia ponderada dos ltimos perodos de varincia t 1 e dos ltimos perodos do
2
O modelo GARCH (1,1), mostrado nas equaes anteriores tem vrios benefcios:
(HAMILTON,1994)
Captulo 3 MODELOS GARCH 78
P Q
t2 = K + i t2i + j t2 j (35)
i =1 j =1
P Q
i + j <1
i =1 j =1
onde:
Para a mdia condicional, comum utilizar-se um modelo ARMAX (R, M, Nx) para
os retornos, tal que: (MATHWORKS, 2002)
Captulo 3 MODELOS GARCH 79
R M Nx
yt = C + i y t i + t + j t j + k X (t , k ) (36)
i =1 j =1 k =1
Vart 1 ( y t ) = E t 1 ( t2 ) = t2 (37)
P Q
t2 = k + Gi t2i + A j t2 j (38)
i =1 j =1
P Q
Gi + A j < 1; k > 0; Gi 0 i = 1,2,..., P; A j 0 j = 1,2,..., Q
i =1 j =1
Captulo 3 MODELOS GARCH 80
Embora a forma funcional do modelo GARCH (P, Q) seja totalmente padro, existem
restries alternativas. Porm, estes alternativas envolvem inequaes no lineares adicionais
que so difceis de impor na prtica, e que no afetam o modelo padro GARCH(1,1), que
sem dvida o mais comum (MATHWORKS, 2002).
O modelo EGARCH (P, Q) utilizado para varincia condicional das inovaes com
condies de alavancagem (correlao negativa entre os rendimentos presentes e a
volatilidade futura) e uma suposio de distribuio de probabilidade (NELSON,1991).
t j t j
P Q
Q
t j
log = K +
2
Gi log 2
t 1 + Aj + Lj
(39)
t j t j t j
T
i =1 j =1 j 1
Onde:
t ~ N (0, t2 )
negativa. Ainda para o EGARCH, choques recentes podem ter um impacto maior ou menor
do que o GARCH curva exponencial versus curva quadrtica do modelo GARCH original
(NELSON,1991).
P Q Q
=K+
t
2
Gi 2
t 1 + A 2
j t j + L j S t j t2 j (40)
i =1 j =1 j 1
onde:
P Q Q
t2 = K + Gi t21 + A j t2 j + L j St j t2 j
i =1 j =1 j 1
" # 1 t j <0
S t j =
0 t j >0
!
P Q Q
1
Gi + Aj + Lj <1
i =1 j =1 2 j =1
K >0
Gi 0 i=1, 2,...,P
Aj 0 j=1, 2,...,Q
Aj + L j 0 j=1, 2,...,Q
como tambm a magnitude da inovao. Embora sejam projetados para capturar o efeito
alavancagem, a maneira na qual eles fazem isto notadamente diferente (ENGLE, 1986).
q p
i + i = 1 (41)
i =1 i =i
Captulo 3 MODELOS GARCH 83
Yt = X t' + t + t (42)
t = f ( t )
onde a srie Yt funo das variveis exgenas Xt e da sua prpria varincia condicionada t,
sendo o coeficiente g designado por parmetro ARCH em mdia. Segundo estes autores, o
prmio de risco uma funo crescente da varincia condicionada do rendimento esperado.
Captulo 3 MODELOS GARCH 84
Esta funo , para uma srie de tamanho T com distribuio normal dos erros da
regresso (ou retornos) e considerando o conjunto de coeficientes do modelo, dada por:
(HORNBECK, 1975)
, &
T
f ( | i 1; ) f (1; )
( ) -./
LLF = ln
*
' i + $ % (43)
i=2
e2
f ( ) =
1
e 2
0 2
1
~ N (0, 2 )
Reescrevendo a LLF:
4
2
ln ( i2 ) + i2
T
LLF = ln(2 )
T 1 567 2
(44)
i
3
2 2 i =1
P Q
t2+ d = K + Gi (2t + d ) i + A j (2t + d ) j (45)
i =1 j =1
com as restries:
P Q
Gi + Aj < 1
i =1 j =1
K >0
Gi 0 i = 1, 2,..., P
Aj 0 j = 1, 2,..., Q
3.14 Pr Estimao
A etapa de pr-estimao visa analisar os dados originais da srie temporal e verificar
se a srie satisfaz as condies necessrias para a aplicao do modelo GARCH. Nesta etapa
tambm verificada a existncia de caractersticas que so, ou no, cobertas pelo modelo
GARCH, tais como, estacionariedade, sazonalidade, e correlaes (MATHWORKS, 2002).
Captulo 3 MODELOS GARCH 86
Embora a anlise da srie de valores mdios oferea uma viso direta da dinmica da varivel,
ela no pode considerar-se estvel em relao varincia, uma vez que a sua variabilidade
no permanece constante no perodo considerado. Deste modo, o estudo da srie temporal ir
se desenvolver com base na srie dos acrscimos relativos que se tornam lineares com a
aplicao de logaritmos. Uma srie transformada, Yt, deve preservar as caractersticas bsicas
da srie original (ENDERS, 1995).
Denotando observaes sucessivas de uma varivel tomada nos instantes t e t+1 como
Pt e Pt+1, respectivamente, uma transformao da srie de valores em uma srie de diferenas
(ou retornos) dada por:
Pt +1
Yt = log = log( Pt +1 ) log( Pt ) (46)
Pt
Aplicando-se esta transformao aos mesmos dados que geraram a Figura 3-6, tem-se
uma nova srie, conforme demonstra a Figura 3-7.
Captulo 3 MODELOS GARCH 87
Nesta etapa a srie original de preos convertida para uma srie de retorno. Isto
porque no modelo GARCH a varivel dependente o retorno e assim necessrio converter
os preos para retornos (lucros). O GARCH procura modelar a volatilidade (varincia ou
desvio padro) da srie, ao invs do preo (MATHWORKS, 2002).
yt = f (t 1, X ) + t (47)
Nesta equao, yt = f(t-1, X) representa a previso dos retornos atuais como funo de
alguma informao conhecida no tempo t-1, incluindo as inovaes (innovations), as
observaes e outras variveis exploratrias relevantes passados. O termo t o componente
aleatrio. Ele representa as inovaes das observaes em relao mdia de yt.
1 (48)
Limites = z1( / 2 )
N
Embora a ACF dos retornos possa exibir pequena correlao, a ACF dos retornos
quadrticos pode continuar indicando significativa correlao e persistncia nos momentos de
segunda ordem.
Captulo 3 MODELOS GARCH 90
Sempre que se toma uma deciso ou se faz uma inferncia sobre uma populao a
partir de dados amostrais corre-se o risco de se cometer algum tipo de erro. A hiptese to
somente uma afirmao que se deseja testar, tendo como fonte de provas os dados
provenientes da anlise da amostra.
Existem dois tipos de erro (mutuamente exclusivos) que podem ser cometidos em um
teste de hipteses (Figura 3-10). O primeiro o Erro Tipo I, que consiste em se rejeitar a
Captulo 3 MODELOS GARCH 91
hiptese nula quando ela verdadeira. A probabilidade de se cometer este tipo de erro ,
denominado nvel de significncia do teste (MONTGOMERY e RUNGER, 2003).
O segundo tipo o Erro Tipo II, que consiste em se aceitar a hiptese nula quando ela
for falsa. A probabilidade de se cometer este tipo de erro .
Rejeitar Ho
)
(
Aceitar Ho
)
(1-
Conforme pode ser visto na Figura 3-11, os dois tipos de erro no podem ser
cometidos simultaneamente. A amostra fornece a estatstica de teste, parmetro que quando
comparado ao valor crtico determinado pelo nvel de significncia , conduz aceitao ou
rejeio da hiptese nula. Ao conjunto de todos os valores da estatstica de teste que levam
Captulo 3 MODELOS GARCH 92
K
r 2k (49)
Q( K ) = n(n + 2)
k =1 ( n k )
Alternativamente, pode-se utilizar o teste de Engle. Sob hiptese nula de que uma
srie temporal uma seqncia aleatria com perturbaes gaussianas, esta estatstica de teste
tambm assintoticamente distribuda como Qui-Quadrado.
Com a estimao completa ser utilizada uma funo do MATLAB 7.0.1 para exibir
os parmetros estimados e seus erros padro.
Captulo 3 MODELOS GARCH 93
3.16 Ps-Estimao
A etapa de ps-estimao analisa as inovaes provenientes da srie modelada,
possibilitando analisar se as inovaes apresentam caractersticas da srie que podem no ter
sido modeladas. Para isto faz-se a anlise de autocorrelao das inovaes quadrticas e
aplica-se tambm o teste de Ljung-Box para verificar a existncia residual de agrupamentos
nas inovaes (MATHWORKS, 2002).
3.16.3 Simulao
Dados os modelos para a mdia e varincia condicionais ser utilizada uma funo do
MATLAB 7.0.1 para simular um ou mais caminhos de amostra para sries de retorno,
inovaes, e processos de divergncia de padro condicionais.
Podemos ter tambm uma caracterizao mais detalhada da srie de demanda pelas
anlises abaixo:
A Figura 4-1 mostra o comportamento semanal das demandas, onde cada nmero
equivale a um dia da semana, o nmero 1 representando o domingo, o nmero 2
representando a segunda-feira, e assim por diante.
Captulo 4 SIMULAO E ANLISE DOS DADOS 96
Vale ressaltar que os preos da energia variam de acordo com trs patamares de cargas
distintos: Perodo Pesado (das 18h01 s 21h00), Mdio (das 07h01 s 18h00 e das 21h01 s
24h00) e Leve (das 00h01 s 07h00) para dias teis (de segunda a sbado). Para os domingos
e feriados nacionais no h a considerao do perodo pesado (CMARA DE
COMERCIALIZAO DE ENERGIA ELTRICA, 2004).
L I?MNMNM
L K MNMNM
L MNMNMNM
C O MNMNM
E
CD
G MNMNM
@ AB
I?MNMNM
K MNMNM
L K J I H G F
8:9:;=<:>?<
hji:kml:noi:pqi?rtsvu?wyx?z:{mxy|?}~u?dox:{mi
`cb adada
`de adada
` adadada
fdadada
_
^
]
gdadada
Z [\]
b adada
e adada
a `
PRQTSRU VNWYX
Figura 4-2 Grfico Comparativo da Demanda dos Dias da Semana x Domingo e Feriados
A Figura 4-4 abaixo mostra o comportamento das mdias das demandas em funo da
hora (Figura 4-4 A), da semana (Figura 4-4 B), e de feriados (Figura 4-4 C). Em termos de
valores mdios, h uma significativa mudana dos valores em termos de hora, dia e feriados,
ou seja, a srie estudada tem comportamentos de demanda bem variados para um mesmo dia,
assim como para os dias de semana e para os feriados (representado pelo nmero 1). O
nmero 0 representa o intervalo de segunda a sbado.
Figura 4-4 C
4.3 Metodologia
A investigao da utilizao da metodologia GARCH para a previso da volatilidade
de demanda de eletricidade ser desenvolvida segundo o mtodo proposto na Figura 4-5.
Neste mtodo podem-se visualizar as trs etapas essenciais da previso: a pr-estimao, a
estimao e a ps-estimao. Com a realizao destas fases, que sero discutidas em detalhes
nas prximas sees, pode-se avaliar a previso da volatilidade.
Captulo 4 SIMULAO E ANLISE DOS DADOS 99
Foi criada uma funo4 usando a toolbox GARCH do aplicativo MATLAB 7.0.1 que
contm as trs etapas para a previso, conforme apresentado no fluxograma da Quadro 4.1,
com as etapas e respectivas funes correspondentes do MATLAB 7.0.1 , bem como os
dados de entrada e sada de cada etapa.
4
O cdigo da funo criada utilizando o MATLAB 7.0.1 encontra-se no Anexo B
Captulo 4 SIMULAO E ANLISE DOS DADOS 100
Rotinas do
MATLAB Dados de Dados de
Descrio
7.0.1 Entrada Sada
utilizadas
Srie de demanda de
energia do portiflio de
Srie Original consumidores livres da
Duke Energy Brasil.
Srie
transformada, Resultados dos
Quantificar as Testar hipteses das lbqtest.m
nvel de testes de
correlaes correlaes archtest.m
significncia (), hipteses
atrasos (lags)
Parmetros do
modelo GARCH
garchfit.m (K, A, B),
Estimao do Calcular os parmetros Srie
garchdisp.m inovaes
Estimao
Inovaes e
Estimar inovaes para o Parmetros do
Simulao modelo
ugarchsim.m
modelo GARCH
volatilidade
simulada
correlaes estimadas
Parmetros do
modelo GARCH,
Novos
inovaes
Fazer a previso de parmetros do
Previso da ugarch.m estimadas, e
volatilidade usando o modelo GARCH,
volatilidade ugarchpred.m nmero de
modelo estimado volatilidade
perodos frente
prevista
para previso da
volatilidade.
Quadro 4.1 Fluxograma do Mtodo de Desenvolvimento de Modelos GARCH
5. Clculo dos lags clculo dos atrasos (lags) significativos nas anlises de
autocorrelao.
G3 - Grficos de Autocorrelaes.
4.4 Pr-Estimao
A etapa de pr-estimao visa analisar os dados originais da srie temporal e verificar
se a srie satisfaz as condies necessrias para a aplicao do modelo GARCH. Nesta etapa
tambm verificada a existncia de caractersticas que so, ou no, cobertas pelo modelo
GARCH, tais como, estacionariedade, sazonalidade, e correlaes.
Dados de entrada (sries temporais) originais podem ser gerados pelo programa
atravs da funcionalidade 1, Gerar Dados, ou lidos de um arquivo de dados atravs da
funcionalidade 2, Procurar ... (dados). Dados gerados internamente usam a funo
UGARCHSIM do MATLAB 7.0.1 para gerar uma srie temporal com valores de P, Q e
tamanho da amostra N definidos pelo usurio. No caso deste estudo, os dados de entrada
Captulo 4 SIMULAO E ANLISE DOS DADOS 103
3.5
2.5
1.5
0.5
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
Figura 4-7 Grfico da Srie Univariada Original de Cargas, em Base Horria (Dez/2002 a Jun/2003)
Serie de Retornos
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
Figura 4-8 Srie de Retornos Transformada a Partir da Srie Original
PRICE2RET a funo que converte uma srie de preos em srie de retornos. Para este estudo, a
funo ir converter a srie de demanda de energia em srie de retornos.
series = price2ret(prices);
Entradas:
prices - srie temporal de demanda, onde o primeiro elemento contm a observao mais antiga e o
ltimo elemento a observao mais recente.
Sadas:
series srie transformada da srie de demanda. Como a srie prices uma matriz com uma coluna de
elementos, que so os valores horrios da demanda, a srie series ser uma matriz transformada com
uma coluna de elementos.
0.8
0.6
0.4
0.2
-0.2
0 20 40 60 80 100 120 140 160 180 200
Lag
Figura 4-9 Grfico de Autocorrelao da Srie dos Retornos
Captulo 4 SIMULAO E ANLISE DOS DADOS 106
0.8
0.6
0.4
0.2
-0.2
0 20 40 60 80 100 120 140 160 180 200
Lag
Figura 4-10 Grfico de Autocorrelao Parcial da Srie de Retornos
AUTOCORR a funo que calcula ou plota a funo de auto-correlao (ACF) amostrada de uma
srie univariada e estocstica. Neste estudo, a funo ir calcular a funo de auto-correlao e a auto-
correlao quadrtica da srie transformada e das inovaes.
Forma geral de chamada:
[ACF, Lags, Bounds] = autocorr(series)
[ACF, Lags, Bounds] = autocorr(series , nLags , M , nSTDs)
Quando chamada sem argumentos de sada (apenas a chamada: autocorr(series) ), a funo
AUTOCORR plota apenas o resultado da seqncia ACF com os limites de confiana.
Entradas:
series vetor de observaes da srie temporal univariada para a qual a ACF amostrada calculada ou
plotada. A ltima linha da varivel series contm a observao mais recente da seqncia estocstica.
Entradas Opcionais:
nLags inteiro escalar positivo indicando o nmero de atrasos (lags) que a ACF deve calcular. Se
ausente ou faltante, o valore padro computar a ACF nos atrasos igual ao mnimo entre 20 e o
comprimento da srie menos 1 (T = minimum[20 , length(series)-1]). Como uma ACF simtrica em
torno do zero, atrasos negativos so ignorados.
M inteiro escalar no negativo indicando o nmero de atrasos alm do qual a ACF terica tende a
zero. Se M no for especificada, o valor padro M=0. Neste caso, a varivel series assumida ser um
rudo branco Gaussiano. Se a varivel series for um processo de rudo branco Gaussiano de
comprimento N, o erro padro ser aproximadamente 1/sqrt(N). M deve ser menor do que nLags.
nSTDs inteiro escalar positivo indicando o nmero de desvios padro do erro de estimao da ACF
amostrada a ser computado assumindo que a ACF terica da varivel series nula acima do atraso M.
Se M = 0 e series um processo de rudo branco Gaussiano de comprimento N, especificando-se
nSTDs resulta em limites de confiana a +/-(nSTDs/sqrt(N)). Se nSTDS no for especificada, o valor
padro nSTDs = 2, (ou seja, aproximadamente 95% do intervalo de confiana).
Sadas:
ACF funo de auto-correlao amostrada da srie. ACF um vetor de comprimento nLags + 1
correspondendo aos atrasos 0, 1, 2, ..., nLags. O primeiro elemento da ACF unitrio (isto , ACF(1)
= 1 = correlao do atraso 0).
Lags vetor dos atrasos correspondendo ACF(0,1,2,..., nLags).
Bounds vetor de dois elementos indicando os valores aproximados dos limites de confiana superior
e inferior assumindo que a series um processo MA(M). Esta sada aproximada para atrasos > M
somente.
Forma de chamada no programa:
a) No clculo das auto-correlaes da srie de retornos (srie original transformada):
autocorr(series,200)
O segundo argumento 200 representa o nmero de atrasos (nLags) desejado para calcular a auto-
correlao.
b) No clculo das auto-correlaes quadrticas da srie de retornos (srie original transformada), e no
clculo das auto-correlaes quadrticas das inovaes (na fase de simulao):
autocorr(power(series,2),200)
A funo power(series,2) calcula a potncia 2 do vetor series.
Quadro 4.3 Funo AUTOCORR
Captulo 4 SIMULAO E ANLISE DOS DADOS 108
PARCORR a funo que calcula ou plota a funo de auto-correlao parcial (PACF) amostrada de
uma srie univariada e estocstica. Neste estudo, a funo ir calcular a funo de auto-correlao
parcial da srie transformada. A PACF computada ajustando modelos auto-regressivos sucessivos de
ordens 1,2,... atravs de mnimos quadrados ordinrios, retendo os ltimos coeficientes de cada
regresso.
Entradas:
series vetor de observaes da srie temporal univariada para a qual a PACF amostrada calculada
ou plotada.
Entradas Opcionais:
nLags inteiro escalar positivo indicando o nmero de atrasos (lags) que a PACF deve calcular. Se
ausente ou faltante, o valor padro computar a ACF nos atrasos igual ao mnimo entre 20 e o
comprimento da srie menos 1 (T = minimum[20 , length(series)-1]). Como uma PACF simtrica em
torno do zero, atrasos negativos so ignorados.
R inteiro escalar no negativo indicando o nmero de atrasos alm do qual a PACF terica tende a
zero. Sob a hiptese de que series realmente um processo AR(R), os coeficientes da PACF para
atrasos > R so variveis Gaussianas independentemente distribudas, com mdia nula
aproximadamente. Neste caso, o erro padro dos coeficientes estimados da PACF de uma srie
ajustada, com N observaes, aproximadamente 1/sqrt(N)_para atrasos > R. Se R no for
especificado, o valor padro R = 0. R deve ser menor do que nLags.
nSTDs inteiro escalar positivo indicando o nmero de desvios padro do erro de estimao da ACF
amostrada a ser computado assumindo que series um processo AR(R). Se o R-simo coeficiente da
regresso (isto , o ltimo coeficiente da regresso OLS - ordinary least square mnimos quadrados
ordinrios da srie regressa numa constante e R de seus atrasos) for ajustado com N observaes,
especificando-se nSTDs resulta em limites de confiana a +/-(nSTDs/sqrt(N)). Se nSTDS no for
especificada, o valor padro nSTDs = 2, (ou seja, aproximadamente 95% do intervalo de confiana).
Sadas:
PACF funo de auto-correlao parcial amostrada da srie. PACF um vetor de comprimento
nLags + 1 correspondendo aos atrasos 0, 1, 2, ..., nLags. O primeiro elemento da PACF unitrio (isto
, PACF(1) = 1 = coeficiente OLS da regresso da srie regredida sobre si mesma), e includo como
referncia.
Lags vetor dos atrasos correspondendo PACF(0,1,2,..., nLags).
Bounds vetor de dois elementos indicando os valores aproximados dos limites de confiana superior
e inferior assumindo que a serie um processo AR(R). Esta sada aproximada para atrasos > R
somente.
No estudo a funo PARCORR foi chamada sem argumentos de sada, plotando apenas o resultado da
seqncia PACF com os limites de confiana.
Forma de chamada no programa:
parcorr(series,200)
O segundo argumento 200 representa o nmero de atrasos (nLags) desejado para calcular a
autocorrelao parcial.
Quadro 4.4 Funo PARCORR
Captulo 4 SIMULAO E ANLISE DOS DADOS 110
Embora a ACF dos retornos exiba pequena correlao, a ACF dos retornos quadrticos
pode indicar significativa correlao e persistncia nos momentos de segunda ordem.
0.8
0.6
0.4
0.2
-0.2
0 20 40 60 80 100 120 140 160 180 200
Lag
Podemos dizer ento que, a srie de retornos tem tendncias lineares e no-lineares.
No primeiro caso a autocorrelao existente nos retornos pode estar sendo causada por efeitos
do tipo dias-da-semana, dias de no-negociao, ou ainda pelo fraco volume de negociao do
ativo (baixa liquidez), mas, mesmo assim, podendo ser considerada estacionria. Por outro
lado, a tendncia no-linear pode ser explicada pela mudana na volatilidade dos retornos e a
existncia de alto nvel de curtose em sua distribuio.
H0: No h autocorrelao
H1: H autocorrelao
Assim, o teste de hipteses realizado para os atrasos mais significativos, resultou que o
valor de P (p-Value) nulo (j que Stat > CriticalValue), tornando possvel rejeitar a hiptese
nula, ou seja, os dados so correlacionados.
LBQTEST a funo que testa a falta de ajuste numa srie usando o teste de hipteses Q-Estatstica
de Ljung-Box. O teste de Ljung-Box baseada na Q Estatstica:
L 2
Q = N (N+2) SOMA{ r2(k) / (N-k) }
k=1
onde, N = tamanho da amostra, L = nmero de atrasos de auto-correlao includos na estatstica, e r2
(k) a amostra da auto-correlao ao quadrado, no atraso k. A Q Estatstica usada para testar a falta
de ajuste tendo partindo da aleatoriedade. Sob a hiptese nula de que o ajuste do modelo adequado, a
estatstica do teste distribuda assintoticamente por uma Chi-Quadrada.
Entradas:
series vetor de observaes da srie temporal univariada para a qual a Estatstica-Q calculada.
Tipicamente, series uma amostra residual de um modelo ajustado a partir de uma srie temporal
observada, ou uma amostra padronizada residual obtida dividindo-se a amostra residual pelos desvios-
padro condicionais.
Entradas Opcionais:
lag vetor de inteiros positivos indicando os atrasos da ACF amostrada includa na Estatstica-Q. Se
especificado, cada atraso deve ser menor que o comprimento da srie. Se lag no for especificado, o
valor padro o mnimo entre 20 e o tamanho da srie menos 1
(lags = minimum[20 , length(Series)-1).
alpha representa o nvel de significncia que deve ser um escalar aplicvel a todos os atrasos, ou um
vetor com o mesmo comprimento do vetor lags. Se a varivel alpha no for especificada, o valor
padro 0,05. Todos os elementos de alpha devem ser maiores do que zero e menores do que 1.
Sadas:
H vetor booleano de deciso. Elementos de H = 0 indicam a aceitao da hiptese nula de que o
ajuste do modelo adequado (nenhuma correlao com os respectivos elementos de lag). Elementos
de H = 1 indicam a rejeio da hiptese nula. H tem o mesmo tamanho do vetor lag.
pValue vetor dos valores de P (para nvel de significncia alpha) para os quais a hiptese nula de
nenhuma correlao serial em cada atraso de lag rejeitada.
CriticalValue vetor dos valores crticos da distribuio Chi-Quadrada para comparao com os
elementos correspondentes de Qstat.
onde series corresponde srie temporal de retornos (transformada da srie temporal original), lags
um vetor com os atrasos significativos (24 e 168 horas, correspondentes aos perodos de um dia e uma
semana), identificados nas anlises de auto-correlao, auto-correlao quadrtica, e correlao parcial
da srie de retornos, e alpha o nvel de significcia (definido no programa como 5%).
Ou seja, sob a hiptese nula de que uma srie uma seqncia aleatria com
perturbaes Gaussianas (i.i.d), esta estatstica de tambm assintoticamente distribuda
como Chi-Quadrado.
Foi utilizada a funo 6 do programa, Testes de Hipteses, que, neste caso utiliza a
funo ARCHTEST ,disponvel no MATLAB 7.0.1. Os resultados do teste, aplicados srie
de retornos em estudo para os atrasos mais significativos nmeros 24 (diria) e 168 (semanal)
respectivamente, esto apresentados na Tabela 4.2.
ARCHTEST um teste de hiptese que analisa a presena de efeitos ARCH/GARCH numa srie.
Testa a hiptese nula que a srie temporal de amostras residuais uma perturbao Gaussiana i.i.d.
(isto , no existe efeito ARCH). Dada uma srie residual obtida a partir de uma ajuste de curva (isto
, um modelo de regresso), a presena de efeitos da M-sima ordem ARCH testada regredindo os
residuais quadrados a uma constante, e M atrasos. A estatstica assinttica T*R2 , onde T o nmero
de resduos quadrados includos na regresso, e R2 a amostra do coeficiente da correlao mltipla,
distribuda assintoticamente com uma distribuio Chi-Quadrada com M graus de liberdade sob a
hiptese nula. Ao testar os efeitos ARCH, um processo GARCH (P,Q) localmente equivalente a um
processo ARCH(P+Q).
Entradas:
residuals vetor de srie temporal das amostras residuais (obtidas a partir de uma curva de ajuste, tal
como um modelo de regresso), examinado para verificar a presena de efeitos ARCH. O ltimo
elemento contm a observao mais recente.
Entradas Opcionais:
lags vetor de inteiros positivos indicando os atrasos da ACF amostrada includa na Estatstica-Q. Se
especificado, cada atraso deve ser menor que o comprimento da srie. Se lags no for especificado,
o valor padro o mnimo entre 20 e o tamanho da srie menos 1 ( lags = minimum[20 ,
length(Series)-1]). Se o valor da entrada opcional DoF (ver abaixo) no for especificado, lags
utilizado tambm como valor padro dos graus de liberdade (DoF, degrees-of-freedom) para a
distribuio Chi-Quadrada.
alpha nvel de significncia. alpha deve ser um escalar aplicvel a todos os atrasos, ou um vetor com
o mesmo comprimento do vetor lags. Se a varivel alpha no for especificada, o valor padro 0,05.
Todos os elementos de alpha devem ser maiores do que zero e menores do que 1.
Sadas:
H vetor booleano de deciso. Elementos de H = 0 indicam a aceitao da hiptese nula de que o
ajuste do modelo adequado (nenhuma correlao com os respectivos elementos de lags).
Elementos de H = 1 indicam a rejeio da hiptese nula. H tem o mesmo tamanho do vetor lags.
pValue vetor dos p-Values (para nvel de significncia alpha) para os quais a hiptese nula de
nenhuma correlao serial em cada atraso de lags rejeitada.
ARCHstat vetor da Estatstica-Q para cada atraso em lags.
CriticalValue vetor dos valores crticos da distribuio Chi-Quadrada para comparao com os
elementos correspondentes de Qstat.
Forma de chamada no programa:
[H, pValue, ARCHstat, CriticalValue] = archtest(series, lags, alpha)
onde series corresponde srie temporal de retornos (transformada da srie temporal original),
lags um vetor com os atrasos significativos (24 e 168 horas, correspondentes aos perodos de um
dia e uma semana), identificados nas anlise de auto-correlao, auto-correlao quadrtica, e
correlao parcial da srie de retornos, e alpha o nvel de significncia (definido no programa
como 5%).
Quadro 4.6 Funo ARCHTEST
Captulo 4 SIMULAO E ANLISE DOS DADOS 115
yt = C + t
t2 = K + G1 t2i + A1 t21
yt = 0,00035843 + t
GARCHFIT uma funo que estima os parmetros de um processo GARCH univariados. Dada uma
srie univariada de retornos observados, a funo GARCHFIT estima os parmetros de uma
especificao de mdia condicional na forma ARMAX e de uma especificao de varincia
condicional na forma de GARCH, EGARCH ou GJR. O processo de estimao infere as inovaes a
partir da srie de retornos e ajusta a especificao do modelo para a srie de retornos atravs de
mxima verossimilhana.
[Coeff,Errors,LLF,Innovations,Sigmas,Summary] = garchfit(series)
A primeira sintaxe uma forma conveniente de chamada, que modela uma srie de retornos como uma
constante acrescida de inovaes GARCH (1,1) condicionalmente Gaussianas.
[Coeff,Errors,LLF,Innovations,Sigmas,Summary] = garchfit(series)
Entradas:
series uma srie temporal vetor-coluna de observaes de uma srie de retornos univariada. series
a varivel de resposta representando a srie temporal ajustada s especificaes da mdia
condicional e da varincia.
Sadas:
Coeff estrutura contendo os coeficientes estimados.
Errors estrutura contendo os erros de estimao (isto , os erros padro) dos coeficientes. Caso
algum erro ocorra durante os clculos do erro padro, todos os campos associados com os coeficientes
estimados sero definidos como NaN (no existentes).
LLF valor da funo objetivo de otimizao por log-verossimilhana (optimized log-likelihood
objective function) associada estimao dos parmetros de Coeff. A otimizao calculada
utilizando a funo FMINCON do Toolbox de Otimizao do MATLAB 7.0.1 .
Innovations (isto , inovaes) um vetor-coluna da srie temporal das inovaes deduzidas a partir
da srie de entrada series. O tamanho do vetor Innovations o mesmo tamanho do vetor series.
No caso de erros, Innovations ser um vetor de NaN (no existentes).
Sigmas um vetor-coluna da srie temporal do desvio padro condicional, correspondente ao vetor
Innovations. O tamanho do vetor Sigmas o mesmo tamanho do vetor series. No caso de
erros, Sigmas ser um vetor de NaN (no existentes).
Summary estrutura sobre a informao resumida do processo de otimizao, incluindo informao
de convergncia, iteraes, chamadas da funo objetivo, restries ativas, e a matriz de covarincia
das estimativas dos coeficientes.
4.6 Ps-Estimao
A etapa de ps-estimao analisa as inovaes provenientes da estimao do modelo
GARCH (atravs da funo GARCHFIT), possibilitando verificar se as inovaes apresentam
Captulo 4 SIMULAO E ANLISE DOS DADOS 118
caractersticas da srie que podem no terem sido modeladas. Para isto faz-se a anlise de
autocorelao das inovaes quadrticas e aplica-se tambm o teste de Ljung-Box para
verificar a existncia residual de agrupamentos (clusters) nas inovaes. Na ps-estimao
tambm sero realizadas a simulao e predio da volatilidade.
Innovations
1
Innovation
-1
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
Conditional Standard Deviations
Standard Deviation
0.4
0.2
0
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
Returns
4
Return
0
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
Com a utilizao dos modelos GARCH para simulao dos dados da srie de demanda
temos como sada as inovaes oriundas da srie de retornos. Conforme j comentado na
seo 3.16.2 seria satisfatrio que estas inovaes viessem a ter um comportamento perto de
um processo i.i.d (identicamente e independentemente distribudo), com uma distribuio
gaussiana, sem qualquer correlao serial e agrupamentos de volatilidade, sendo desta forma
satisfatrio para simulao histrica.
Inovacoes
0.4
0.2
-0.2
-0.4
0 500 1000 1500 2000 2500 3000
Figura 4-14 Coeficientes de Variao das Inovaes
Captulo 4 SIMULAO E ANLISE DOS DADOS 120
0.8
0.6
0.4
0.2
-0.2
0 20 40 60 80 100 120 140 160 180 200
Lag
Figura 4-15 Grfico da Funo de Autocorrelao Quadrtica das Inovaes
H0: No h autocorrelao
H1: H autocorrelao
Tanto para a anlise de correlao quanto para o teste de hipteses, foi selecionada a
opo Resduos Simulao no painel Varivel Analisada do programa. O teste de Ljung-
Box, utiliza a funo LBQTEST do MATLAB 7.0.1 , sendo que, neste caso, so analisados
os coeficientes de variaes das inovaes (innovations/sigmas). Os resultados do teste, para
os coeficientes de variaes das inovaes para os atrasos mais significativos nmeros 24
(diria) e 168 (semanal) respectivamente, esto apresentados na Tabela 4.4.
Captulo 4 SIMULAO E ANLISE DOS DADOS 121
4.6.3 Simulao
Aps a estimao do modelo e dos parmetros do modelo GARCH, e a conseqente
aceitao do modelo estimado, a funo 8 do programa, Simulao do Modelo GARCH,
utilizada para simular inovaes e a varincia das inovaes (volatilidade simulada), com o
objetivo de fazer uma ''engenharia reversa do processo.
importante salientar que sempre que for feita uma nova simulao o MATLAB
7.0.1 , atravs da funo UGARCHSIM, gerar novas inovaes com base em uma
distribuio aleatria.
UGARCHSIM uma funo que simula um processo univariado GARCH(P,Q) com inovaes
Gaussianas.
Forma geral de chamada:
[U , H] = ugarchsim(K , A , B , N_Sim)
Forma de chamada no programa:
[ts,va] = ugarchsim(k,a,b,n_sim);
Entradas:
K - um termo escalar constante do processo GARCH.
A - um vetor de coeficientes, com dimenso P x 1, onde P a ordem do modelo que determina o
nmero de atrasos da varincia condicional includa no processo GARCH. O vetor A pode ser uma
matriz vazia, neste caso definida como nula.
B - um vetor de coeficientes, com dimenso Q x 1, onde Q a ordem do modelo que determina o
nmero de atrasos das inovaes quadrticas includas no processo GARCH.
N_Sim - um nmero inteiro escalar positivo indicando o nmero de amostras de inovaes U e
varincia condicional H (veja abaixo) a serem simuladas.
Sadas:
U - um vetor-coluna, de dimenso N_Sim x 1, das inovaes representando um processo discreto (no
tempo) com mdia nula. A srie temporal U das inovaes definida para acompanhar o processo
GARCH(P,Q) especificado pelos parmetros de entrada K, A, e B.
H um vetor-coluna, de dimenso N_Sim x 1, da varincia condicional correspondendo s inovaes
do vetor U. Note que U e H tem a mesma dimenso, e forma um par casado de vetores. Para
modelar o processo GACRH(P,Q), a srie temporal da varincia condicional, H(t), deve ser construda
(ver notas abaixo). Desta forma, H(t) representa a srie temporal deduzida a partir da srie temporal
das inovaes U.
NOTAS: Os coeficientes {K, A, e B} do modelo GARCH(P,Q) esto sujeitos s seguintes condies:
(1) K > 0
(2) A(i) >= 0 para i = 1,2,...P
(3) B(i) >= 0 para i = 1,2,...Q
(4) SOMA(A(i) + B(j)) < 1 para i = 1,2,...P e j = 1,2,...Q
A varincia condicionada no tempo, H(t), de um processo GARCH(P,Q) modelada por:
H(t) = K + A(1) * H(t-1) + A(2) * H(t-2) +...+ A(P) * H(t-P) +
+ B(1) * U2(t-1)+ B(2) * U2(t-2)+...+ B(Q) * U2(t-Q)
Note que U um vetor de inovaes representando um processo estocstico discreto com mdia nula.
Embora H tenha sido gerado utilizando a equao acima, U e H esto relacionados da seguinte forma:
U(t) = SQRT[H(t)] * v(t), onde {v(t)} uma seqncia i.i.d. com ~ N(0,1)
Os vetores de sada U e H so calculados para serem uma seqncia em regime permanente, onde
transientes tm um efeito pequeno arbitrrio. A mtrica (arbitrria) utilizada divide as primeiras N
amostras de U e H tais que a soma dos coeficientes GARCH, exceto K, elevadas potncia N, no
excedam o valor de 0.01, ou seja,
0.01 = [SOMA(A) + SOMA(B)]N
Assim: N = LOG(0.01) / LOG[ SOMA(A) + SOMA(B) ]
Quadro 4.8 Funo UGARCHSIM
Captulo 4 SIMULAO E ANLISE DOS DADOS 123
yt = 0,00035843 + t
e utilizando a funo 9 do programa, Predio da Volatilidade, que por sua vez usa a funo
UGARCHPRED da toolbox do MATLAB 7.0.1 , pode-se verificar a volatilidade prevista
para um certo perodo entre a data inicial dos dados e a data final dos dados, de modo a
comparar a qualidade da predio. Esta previso permite verificar visualmente se a
volatilidade prevista qualitativamente aceitvel quando comparada volatilidade simulada
(pela funo UGARCHSIM). A Figura 4-16 apresenta o grfico das volatilidades simuladas
(azul) e previstas (em vermelho). Neste caso a volatilidade foi prevista (historicamente) entre
0 e 2832 horas, e prevista (futuramente) para a 168 hora frente do ltimo ponto estimado
(ponto 2832), ou seja, para o ponto n = 3000.
importante salientar que este grfico representa apenas uma simulao feita, e que
podem existir diferenas visuais (pelos grficos) e tambm de valores dos parmetros
simulados e previstos, j que sempre que for feita uma nova simulao o MATLAB 7.0.1 ,
atravs da funo UGARCHSIM, gerar novas inovaes com caractersticas aleatrias.
Conseqentemente estas inovaes geradas pelo UGARCHSIM, que sero utilizadas pelo
UGARCHPRED tero como resposta diferentes novos parmetros estimados, embora estas
diferenas de valores dos parmetros a cada simulao e previso no sejam significativas.
UGARCH - uma funo que estima os parmetros GARCH(P,Q) univariados, com inovaes
Gaussianas.
onde ke, ae, e be so os parmetros do modelo GARCH a serem estimados e utilizados na predio da
volatilidade, e os valores ts, p, e q so parmetros calculados durante o processo de estimao dos
Captulo 4 SIMULAO E ANLISE DOS DADOS 124
Entradas:
U vetor-coluna simples de perturbaes aleatrias (isto , os resduos, ou inovaes, de um modelo
economtrico) representando um processo estocstico discreto de mdia nula. Assume-se que srie
temporal de inovaes U siga o processo GARCH.
Sadas:
NOTAS:
Os coeficientes {K, A, e B} do modelo GARCH(P,Q) esto sujeitos s seguintes condies:
(1) K > 0
(2) A(i) >= 0 para i = 1,2,...P
(3) B(i) >= 0 para i = 1,2,...Q
(4) SOMA(A(i) + B(j)) < 1 para i = 1,2,...P e j = 1,2,...Q
Embora H tenha sido gerado utilizando a equao acima, U e H esto relacionados da seguinte forma:
U(t) = SQRT[H(t)] * v(t), onde {v(t)} uma seqncia i.i.d. com ~ N(0,1)
Quadro 4.9 Funo UGARCH
Captulo 4 SIMULAO E ANLISE DOS DADOS 125
0.16
Simulada
Prevista
0.15
0.14
0.13
0.12
Volatilidade
0.11
0.1
0.09
0.08
Simulada
0.105 Previso
0.1
0.095
0.09
0.085
0.08
0.075
80 90 100 110 120 130 140 150
Horas
Figura 4-17 - Volatilidade Simulada e Prevista usando o Modelo GARCH (intervalo de 80 a 150 horas)
Entradas:
U vetor-coluna simples de perturbaes aleatrias (isto , as inovaes de um modelo economtrico)
representando um processo estocstico discreto de mdia nula. Assume-se que srie temporal de
inovaes U siga o processo GARCH.
Sadas:
VarianceForecast vetor-coluna de dimenso NumPeriods x 1 da previso dos erros mnimos mdios
quadrticos das varincia condicional do vetor da srie temporal das inovaes U. O primeiro
elemento contm a previso de um perodo frente, o segundo elemento contm a previso de dois
perodos frente, e assim por diante. Assim, se um perodo do horizonte de previso for superior a 1
(isto , NumPeriods > 1), as previses de todos os horizontes intermedirios sero retornados tambm.
Neste caso, o ltimo elemento contm a previso de varincia do horizonte especificado, NumPeriods
da observao mais recente em U.
H vetor-coluna simples (uma coluna) com a mesma dimenso do vetor de novaes de entrada U.
Para modelar o processo GARCH(P,Q), a srie temporal da varincia condicional, H(t), deve ser
construda (ver notas abaixo). Isto representa a srie temporal deduzida a partir das inovaes U, e
uma reconstruo das varincias condicionais passadas, enquanto que a sada acima
VarianceForecast representa a projeo (previso) das varincias condicionais futuras. Esta
seqncia baseada no ajuste de valores pr-amostrados de H(t) para a varincia incondicional do
processo U(t).
Embora H tenha sido gerado utilizando a equao acima, U e H esto relacionados da seguinte forma:
U(t) = SQRT[H(t)] * v(t), onde {v(t)} uma seqncia i.i.d. com ~ N(0,1)
Quadro 4.10 Funo UGARCHPRED
Captulo 4 SIMULAO E ANLISE DOS DADOS 128
A anlise esperada era que o erro obtido tivesse o comportamento de um rudo branco
Gaussiano, com mdia nula e desvio padro pequeno, com propriedades de assimetria e
curtose nulas.
Descriptive Statistics
Variable: erro
Mean 4,87E-05
StDev 1,70E-03
Variance 2,88E-06
Skewness 1,25593
Kurtosis 2,88647
-0,0090 -0,0065 -0,0040 -0,0015 0,0010 0,0035 0,0060 0,0085 N 2832
Minimum -9,8E-03
1st Quartile -1,2E-03
Median -3,0E-04
3rd Quartile 9,00E-04
95% Confidence Interval for Mu Maximum 9,80E-03
95% Confidence Interval for Mu
-1,4E-05 1,11E-04
-0,0004 -0,0003 -0,0002 -0,0001 0,0000 0,0001 95% Confidence Interval for Sigma
1,65E-03 1,74E-03
95% Confidence Interval for Median
95% Confidence Interval for Median
-4,0E-04 -3,0E-04
Figura 4-18 Estatstica Descritiva do Erro de Volatilidade
Conforme j mencionado anteriormente sempre que for feita uma nova simulao e
uma nova previso os valores dos parmetros do modelo GARCH sero alterados, resultando
em uma variao aleatria no significativa da volatilidade simulada e prevista, e
Captulo 4 SIMULAO E ANLISE DOS DADOS 130
conseqentemente do erro da volatilidade. Esta variao pode ser notada apenas na diferena
dos valores de assimetria e curtose conforme mostrado na Tabela 4.5 e nas Figuras 4.20,
4.21, 4.22, 4.23, 4.24, 4.25, 4.26 e 4.27, j que a mdia e o desvio padro permanecem na
mesma ordem de magnitude. A Tabela 4.5 traz a comparao de 8 simulaes e previses,
exemplificando as possveis variaes de curtose e assimetria, assim como os valores das
volatilidades estimadas para cada caso.
Caso k a b
1 0.0026 0.5273 0.1379
2 0.0026 0.5273 0.1379
3 0.0026 0.5273 0.1379
4 0.0026 0.5273 0.1379
5 0.0026 0.5273 0.1379
6 0.0026 0.5273 0.1379
7 0.0026 0.5273 0.1379
8 0.0026 0.5273 0.1379
Tabela 4.6 Parmetros calculados do Modelo
Captulo 4 SIMULAO E ANLISE DOS DADOS 131
300
250
200
150
100
50
0
-8 -6 -4 -2 0 2 4 6
-3
x 10
500
400
300
200
100
0
-5 0 5 10
-3
x 10
700
600
500
400
300
200
100
0
-16 -14 -12 -10 -8 -6 -4 -2 0 2
-3
x 10
250
200
150
100
50
0
-0.01 -0.005 0 0.005 0.01 0.015 0.02 0.025
200
150
100
50
0
-8 -6 -4 -2 0 2 4 6
-3
x 10
200
150
100
50
0
-12 -10 -8 -6 -4 -2 0 2 4 6 8
-3
x 10
350
300
250
200
150
100
50
0
-10 -8 -6 -4 -2 0 2 4
-3
x 10
200
150
100
50
0
-0.01 -0.005 0 0.005 0.01 0.015 0.02
Com base nos valores de assimetria e custose da Tabela 4.5 observa-se que os
menores valores de assimetria e curtose encontrados nestas 8 simulaes correspondem a
primeira simulao (Caso 1), tambm observada pela Figura 4-20, representando, dentre as
simulaes realizadas, o melhor caso.
5 CONCLUSO
Este captulo traz as comparaes entre o objetivo proposto e os resultados alcanados.
Aborda as principais vantagens e desvantagens encontradas na simulao realizada. Traz
ainda sugestes para trabalhos futuros.
Foi feita a anlise da srie transformada (srie de retornos) atravs das funes de
autocorrelao, autocorrelao parcial e autocorrelao quadrtica, nas quais foram
encontradas as sazonalidades para os perodos de 24 horas e 168 horas (ou 7 dias).
Com base nos atrasos mais significativos (24 e 168 horas) foram aplicados, na fase de
pr-estimao, os testes de hipteses (Teste Q e Teste ARCH), cujas respostas indicaram a
rejeio (H = 1 com Valor P = 0) confirmando que os dados da srie transformada eram
correlacionados e a srie no era i.i.d., atendendo aos requisitos necessrios aplicao do
modelo GARCH.
Estas caractersticas no modeladas da srie podem ser oriundas do fato que na simulao
do modelo GARCH foi considerada apenas a modelagem da varincia condicionada, sendo a
mdia considerada constante. Assim a existncia de clusters nas inovaes leva a considerar
que nem toda a volatilidade existente na srie transformada foi modelada. Pode-se considerar
ainda que a inovao apresenta efeitos de curtose no modelados, como observado na anlise
estatstica dos erros entre a volatilidade estimada e a simulada. A anlise estatstica dos erros
de volatilidade tambm mostrou a existncia de assimetria (skewness). Contudo, a
existncia de curtose e assimetria, representam apenas uma parcela de erros residuais no-
Gaussianos. A outra parcela de erro residual evidenciada pelo desvio padro no nulo,
indicando a existncia de aleatoriedade no erro residual.
A validao do modelo foi realizada com base no erro entre a volatilidade simulada e a
volatilidade prevista, onde o erro encontrado, no possui uma distribuio de probabilidade
puramente Gaussiana, conforme apresentado na seo 4.8.1.
Com base nestas duas concluses podemos considerar o erro residual da volatilidade
como um rudo aleatrio, porm no-Gaussiano devido presena de curtose e assimetria.
Pode-se observar que dentre as vrias simulaes realizadas existe uma variao nos valores
de curtose e assimetria, onde, em alguns casos, possvel encontrar valores no significativos
para a assimetria e a curtose. Nestes casos, como visto na Figura 4-20 encontrar valores no
significativos para a assimetria e a curtose. Nestes casos, como visto na Figura 4-20 estes
modelos seriam a melhor representao para a previso da volatilidade por caracterizarem o
erro de volatilidade como sendo puramente rudo aleatrio Gaussiano.
Captulo 5 CONCLUSO 137
A previso da volatilidade foi realizada com nvel de confiana de 95% acrescida de uma
incerteza, representada pelo erro de volatilidade que possui uma mdia constante e desvio
padro acrescido de assimetria e curtose. Se os valores de curtose e assimetria fossem nulos, o
desvio padro seria constante e representaria isoladamente a incerteza aleatria da previso da
volatilidade.
Embora seja adequada a aplicao da modelagem GARCH para uma srie de demanda de
energia eltrica, a literatura cientfica, at a presente data, no fez qualquer meno sua
aplicabilidade na previso da volatilidade de demanda de energia eltrica.
A utilizao de redes neurais para previso das sries de demanda e volatilidade pode
apresentar vantagens, j que os modelos RNA possuem uma estrutura flexvel quando
comparados aos modelos GARCH, ou seja, a estrutura no paramtrica das RNA possibilita a
incluso de termos adicionais para a previso enquanto que no modelo paramtrico GARCH
Captulo 5 CONCLUSO 138
as variveis que compem o modelo j forma definidas pelas equaes utilizadas e toda a
previso feita com base na utilizao somente destas variveis.
Outras qualidades que justificam o uso de redes neurais artificiais na predio de sries
temporais podem ser consideradas: (CASTRO, 2001)
Captulo 5 CONCLUSO 139
Comprova-se a este fato que para problemas que envolvam a predio de variveis
contnuas a mdia condicional (gerada por uma RNA) representa uma descrio muito
limitada das propriedades estatsticas dos dados designados e por isto em muitas aplicaes
so completamente inadequadas (BISHOP. 1994).
Alm disso, as MDN superam estas limitaes e provem uma completa estrutura para
modelar as funes de densidade condicional. Estas redes podem representar distribuies de
probabilidade condicionais arbitrrias da mesma forma que uma rede neural convencional
pode representar funes arbitrrias. Sem dvida, a implementao de MDNs representa uma
simples modificao nos modelos de redes neural padro (BISHOP. 1994)
Atravs dos estudos conduzidos e apresentados neste trabalho, foi obtida uma certa
experincia na utilizao do modelo GARCH, e foi possvel fazer uma anlise da
aplicabilidade do modelo para a previso da volatilidade.
Foi desenvolvida uma funo (em linguagem MATLAB 7.0.1 ) que automatiza a
anlise, modelamento, simulao e previso da volatilidade de sries de demanda de
energia. No entanto, a toolbox GARCH do MATLAB 7.0.1 foi desenvolvida
especificamente para sries economtricas e em especial de preo/retorno, o que no
invibializa a utilizao deste modelos em outras reas, podendo porm dificultar sua
aplicao.
141
BIBLIOGRAFIA
ABELM, Antnio Jorge Gomes. Redes Neurais Artificiais na previso de sries
temporais. Dissertao de Mestrado em Engenharia Eltrica, PUC-Rio, Rio de Janeiro, 1994
ALEXANDER, Carol. Market Models: A guide to Financial Data Analysis. New York: John
Wiley & Sons Ltda , 2001.
ANEEL. Informaes sobre o Setor Eltrico. Disponvel em: www.aneel.gov.br. Acesso em:
26 abr 2004.
BERTO, Rosa Maria Villares; NAKANO, Davi Noboru, A Produo Cientifica nos Anais do
Encontro Nacional de Engenharia de Produo: Um Levantamento de Mtodos e Tipos de
Pesquisa. Revista Produo, v. 9, n. 2, p. 65-76, 2000.
142
BLACK, F. Studies of stock market volatility changes. In: Meeting of The American
Statistical Association, Business And Econominc Statistics SECTION, 1976.
BOX, G.E.P., JENKINS, G. Time Series Analysis: Forecasting and Control, Holden-Day,
pp.28-32, 1976.
CASSEL, R.; MLLER, C. A simulao e os processos de mudana. In: ENEGEP, 16, 1996
Anais... Piracicaba: UNIMEP, 1996.
CHATTERJEE, S., BERTRAM, P. Regression analysis by example. New York: John Wiley
& Sons, Inc. 1991.
ENDERS, W. Applied Economic Time Series. New York: John Wiley & Sons, 1995.
FARIAS, Egenilton Rodolfo; ROCHA, Francisco Jos Sales; LIMA, Ricardo Chaves.
Critrios de seleo de modelos sazonais de sries temporais: uma aplicao usando a taxa de
desemprego da regio metropolitana de Recife, In: ENCONTRO REGIONAL DE ESTUDOS
DO TRABALHO, 3., 2000, Anais..., Universidade Federal de Pernanbuco, Recife, 2000.
Disponvel em: www.race.nuca.ie.ufrj.br/abet/3reg/39.DOC. Acesso em 3 mar 2004.
FONSECA, Jairo S.; MARTINS, Gilberto A.; TOLEDO, Geraldo L. Estatstica Aplicada.
So Paulo: Atlas, 1995.
GARCIA, Reinaldo C.; CONTRERAS, Javier; AKKEREN, Marco van; GARCIA, Joo
Batista C. A. GARCH Forecasting Model To Predict Day-Ahead Electricity Prices, IEEE
Transactions on Power Systems, v.20, n.2, p.867-874, May 2005.
LAW, A. M.; KELTON, W. D. Simulation modeling and analysis. 3.ed. Boston: McGraw-
Hill, 2000.
MARTIN, Claudio. Aplicao de redes neurais para prognstico com base em sries
temporais. 2000. Dissertao (Mestrado em Mdia e Conhecimento) CEFET ,
Florianpolis, 2000.
MORETTIN, Pedro Alberto; TOLOI, Cllia M. Sries Temporais. 2.ed. So Paulo: Atual,
1987.
PINTO, Marta Isabel da Costa Paiva. A study on the deregulation of the electricity sector
and the implications for the portuguese market. 2001. Dissertao (Mestrado em
Engenharia e Gesto de Tecnologia) Universidade Tcnica de Lisboa, Instituto Superior
Tcnico, Lisboa, 2001.
PONG, S.; SHACKELTON, M. B.; TAYLOR, S. J.; XU, X. Forecasting currency volatility:
A comparison of implied volatilities and AR(FI)MA models. Journal of Banking &
Finance, p. 1-23, 2003.
RAYSON, P. Matrix: A statistical method and software tool for linguistic analysis
through corpus comparison. 2003. Ph.D. thesis Lancaster University, 2003.
RIBEIRO; Luiz Cludio; PAULA, Anaparecida Vieira. Previso de populao atravs dos
modelos ARIMA de Box e Jenkins, 2000 In: Encontro Nacional de Estudos Populacionais,
Anais...: Universidade Federal de Minas Gerais, Caxambu, 2000. Disponvel em:
www.abep.nepo.unicamp.br/anais_2000.htm
RICHMOND, Korin. Mixture density networks, human articulatory data and acoustic-to-
articulatory inversion of continuous speech. In: WORKSHOP ON INNOVATION IN
SPEECH PROCESSING, Stratford-upon-Avon. Anais... Stratford-upon-Avon: University of
Edinburgh Institute of Acoustics, April 2001.
148
SALLES, Andr de Assis. Estimao do risco sistemtico uma abordagem Bayesiana. In:
ENCONTRO NACIONAL DE ENGENHARIA DE PRODUO. Anais... So Paulo: 1996.
SILVA , Joana Caldas. Estimao do valor em risco usando informao intra diria.
2002. Dissertao (Mestrado em Economia) Fundao Getulio Vargas, Rio de Janeiro,
2002.
STENGEL, Robert F. Stochastic Optimal Control: Theory and Application. 1.ed. New
York: John Wiley & Sons Inc, 1986.
TOPALLI, Ayca Kumluca; ERKMEN, Ismet; A hybrid learning for neural networks applied
to short term load forecasting. Disponvel em: www.ComputerScienceWeb.com. Acesso em:
12 abr 2004.
fig = openfig(mfilename,'reuse');
% Generate a structure of handles to pass to callbacks, and store it.
handles = guihandles(fig);
guidata(fig, handles);
if nargout > 0
varargout{1} = fig;
end
elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK
try
[varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard
catch
disp(lasterr);
end
end
% **** CODE FOR R13 ****
%if nargout
% [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
%else
% gui_mainfcn(gui_State, varargin{:});
%end
%***********************
% End initialization code - DO NOT EDIT
%===============================================================
% --- Executes just before garch_design is made visible.
function garch_design_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to garch_design (see VARARGIN)
% Choose default command line output for garch_design
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
if strcmp(get(hObject,'Visible'),'off')
initialize_gui(hObject, handles);
end
%===============================================================
% UIWAIT makes garch_design wait for user response (see UIRESUME)
% uiwait(handles.figure1);
%===============================================================
% --- Outputs from this function are returned to the command line.
function varargout = garch_design_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
%===============================================================
153
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%===============================================================
function lag1_CreateFcn(hObject, eventdata, handles)
% Criar objeto lag1
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%===============================================================
function titulo_figura_CreateFcn(hObject, eventdata, handles)
% Criar objeto Titulo da Figura
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%===============================================================
function nome_arq_doc_CreateFcn(hObject, eventdata, handles)
% Criar objeto Nome do Arquivo
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%===============================================================
function p_CreateFcn(hObject, eventdata, handles)
% Criaao do objeto textbox "p"
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%===============================================================
function q_CreateFcn(hObject, eventdata, handles)
% Criaao do objeto textbox "q"
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%===============================================================
% --- Executes during object creation, after setting all properties.
function n_CreateFcn(hObject, eventdata, handles)
% Criar objeto "n"
if ispc
set(hObject,'BackgroundColor','white');
else
155
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%===============================================================
function pasta_arquivo_CreateFcn(hObject, eventdata, handles)
% Criar objeto "Arquivo de Dados"
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
%===============================================================
function alpha_CreateFcn(hObject, eventdata, handles)
% Criaao do objeto textbox "alpha" (nivel de confiana dos testes)
if ispc ee isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
%%=============================================================f
unction threshold_CreateFcn(hObject, eventdata, handles)
% Criaao do objeto textbox "threshold"
if ispc ee isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
%===============================================================
function lags_CreateFcn(hObject, eventdata, handles)
% Criaao do objeto textbox "lags" (vetor de lags)
if ispc ee isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
%===============================================================
function txt_aae_CreateFcn(hObject, eventdata, handles)
% Criar objeto "txt_aae" (A estimado)
if ispc ee isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
%===============================================================
function txt_bbe_CreateFcn(hObject, eventdata, handles)
% Criar objeto "txt_bbe" (B estimado)
if ispc ee isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
%===============================================================
function txt_kke_CreateFcn(hObject, eventdata, handles)
% Criar objeto "txt_kke" (Coeficiente K da predio)
if ispc ee isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
156
set(hObject,'BackgroundColor','white');
end
%===============================================================
function n_simulacao_CreateFcn(hObject, eventdata, handles)
% Criar objeto "n_simulacao" (numero de intervalos de simulao)
if ispc ee isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
%===============================================================
function n_pred_CreateFcn(hObject, eventdata, handles)
% Criar objeto "n_pred" (numero de intervalos de predio)
if ispc ee isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
%===============================================================
function MaxLag_CreateFcn(hObject, eventdata, handles)
% Criar objeto "maxlag" (numero maximo de lags para graficos)
if ispc ee isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
%===============================================================
function txt_kk_CreateFcn(hObject, eventdata, handles)
% Criar objeto "txt_kk" (Coeficiente K GARCH)
if ispc ee isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
%===============================================================
function txt_aa_CreateFcn(hObject, eventdata, handles)
% Criar objeto "txt_aa" (Coeficiente A GARCH)
if ispc ee isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
%===============================================================
function txt_bb_CreateFcn(hObject, eventdata, handles)
% Criar objeto "txt_bb" (Coeficiente B GARCH)
if ispc ee isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
%===============================================================
function txt_vol_estimada_CreateFcn(hObject, eventdata, handles)
% Criar objeto "txt_vol_estimada" (valor da volatilidade estimada)
if ispc ee isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
157
end
%===============================================================
%------------------------------ FUNCOES --------------------------------
%===============================================================
function initialize_gui(fig_handle, handles)
% Inicializaao
flag_grafico = 0;
selecao_grafico = 0;
docFileName = 'garch_report';
figureTitle = 'Titulo 1';
figureNumber = 1 ;
%%=============================================================
function pb_procurar_Callback(hObject, eventdata, handles)
% Botao "Procurar ..."
[filename, pathname] = uigetfile('*.mat', 'Selecionar o Arquivo de Dados ...');
set(handles.pasta_arquivo, 'String', strcat(pathname,filename));
auxstr = ['load ' filename];
% Abrir arquivo de dados
evalin('base',auxstr);
% Copiar a series de preos/demandas
axes(handles.axes2);cla;
evalin('base','plot(prices);grid on;');
evalin('base','n = size(prices);');
% Setar radio-botoes
set(handles.rb_serieoriginal, 'Value', 1);
set(handles.rb_residuos, 'Value', 0);
% Criar vetor "dummy" unitrio
Dummy = ones(500);
Dummy = Dummy(1,:);
assignin('base','Dummy',Dummy);
% Criar resduos e sigmas unitrios
Innovations = Dummy;
assignin('base','Innovations',Innovations);
Sigmas = Dummy;
assignin('base','Sigmas',Sigmas);
% Inicializar grficos e variveis
axes(handles.axes4);cla;evalin('base','plot(Dummy);');
axes(handles.axes5);cla;evalin('base','plot(Dummy);');
axes(handles.axes6);cla;evalin('base','plot(Dummy);');
axes(handles.axes7);cla;evalin('base','plot(Dummy);');
% Limpar campos de texto
str = ' ';
set(handles.txt_kk, 'String', str);
set(handles.txt_aa, 'String', str);
set(handles.txt_bb, 'String', str);
set(handles.txt_kke, 'String', str);
set(handles.txt_aae, 'String', str);
set(handles.txt_bbe, 'String', str);
set(handles.texto_geral, 'String', str);
set(handles.txt_modelo_garch, 'String', str);
158
assignin('base','q',q);
% Gerar uma serie GARCH
[x,prices]=garchsimulate(n,[.01; .2; .75],p,q);
assignin('base','prices',prices);
% Plotar serie original
axes(handles.axes2);cla;
evalin('base','plot(prices);grid on;');
% Setar radio-botoes
set(handles.rb_serieoriginal, 'Value', 1);
set(handles.rb_residuos, 'Value', 0);
% Criar vetor "dummy" unitrio
Dummy = ones(500);
Dummy = Dummy(1,:);
assignin('base','Dummy',Dummy);
% Criar resduos e sigmas unitrios
Innovations = Dummy;
assignin('base','Innovations',Innovations);
Sigmas = Dummy;
assignin('base','Sigmas',Sigmas);
% Inicializar grficos e variveis
axes(handles.axes4);cla;evalin('base','plot(Dummy);');
axes(handles.axes5);cla;evalin('base','plot(Dummy);');
axes(handles.axes6);cla;evalin('base','plot(Dummy);');
axes(handles.axes7);cla;evalin('base','plot(Dummy);');
% Limpar campos de texto
str = ' ';
set(handles.txt_kk, 'String', str);
set(handles.txt_aa, 'String', str);
set(handles.txt_bb, 'String', str);
set(handles.txt_kke, 'String', str);
set(handles.txt_aae, 'String', str);
set(handles.txt_bbe, 'String', str);
set(handles.texto_geral, 'String', str);
set(handles.txt_modelo_garch, 'String', str);
set(handles.txt_livre, 'String', str);
set(handles.txt_vol_estimada, 'String', str);
set(handles.alpha, 'Value', 95);
% Inicializar radio-botes
set(handles.rb_jungbox, 'Value', 0);
set(handles.rb_archtest, 'Value', 0);
set(handles.price2return, 'Value', 0);
set(handles.derivada1, 'Value', 0);
set(handles.derivada2, 'Value', 0);
set(handles.autocorrelacao, 'Value', 0);
set(handles.correlacaoparcial, 'Value', 0);
set(handles.correlacaoquad, 'Value', 0);
% Inicializar rtulos
set(handles.text61, 'String', 'Anlise');
set(handles.text29, 'String', 'Testes de Hipteses');
set(handles.text60, 'String', 'Serie Original');
161
%%=============================================================
function rb_serieoriginal_Callback(hObject, eventdata, handles)
set(handles.rb_serieoriginal, 'Value', 1);
set(handles.rb_residuos, 'Value', 0);
% Definir a series de dados
axes(handles.axes2);cla;
evalin('base','plot(prices);grid on;');
evalin('base','hret = price2ret(prices);');
evalin('base','series = hret;');
evalin('base','n = size(series);');
% Radio-botao "Price To Return"
set(handles.price2return, 'Value', 1);
set(handles.derivada1, 'Value', 0);
set(handles.derivada2, 'Value', 0);
axes(handles.axes4);
evalin('base','plot(hret);grid on;');
% Re-escrever "label"
set(handles.text61, 'String', 'Anlise');
set(handles.text29, 'String', 'Testes de Hipteses');
set(handles.text60, 'String', 'Serie Original');
str = ' ';
set(handles.texto_geral, 'String', str);
set(handles.autocorrelacao, 'Value', 0);
set(handles.correlacaoparcial, 'Value', 0);
set(handles.correlacaoquad, 'Value', 0);
axes(handles.axes5);cla;evalin('base','plot(Dummy);');
%%=============================================================
function rb_residuos_Callback(hObject, eventdata, handles)
set(handles.rb_serieoriginal, 'Value', 0);
set(handles.rb_residuos, 'Value', 1);
% Plotar residuos
axes(handles.axes2);
cla;
title('Serie dos Resduos Simulados','Fontweight','bold')
evalin('base','Residues = Innovations./Sigmas;');
evalin('base','plot(Residues); grid on');
evalin('base','series = Residues;');
Residues = evalin('base','Residues');
series = Residues;
% Re-escrever "label"
set(handles.text61, 'String', 'Anlise (Resduos)');
set(handles.text29, 'String', 'Testes de Hipteses (Resduos)');
set(handles.text60, 'String', 'Residuos');
str = ' ';
set(handles.texto_geral, 'String', str);
set(handles.autocorrelacao, 'Value', 0);
set(handles.correlacaoparcial, 'Value', 0);
set(handles.correlacaoquad, 'Value', 0);
axes(handles.axes5);cla;evalin('base','plot(Dummy);');
%%=============================================================
162
stringVAR = num2str(result);
set(handles.texto_geral, 'String', stringVAR);
%%=============================================================
function botaoTransferirDoc1_Callback(hObject, eventdata, handles)
% Botao "Transferir grafico 1 para DOC"
h = evalin('base','h');
figure;plot(h);
docFileName = get(handles.nome_arq_doc,'String');
figureTitle = 'Serie Original';
figure2DocFile(docFileName,1,figureTitle,0);
% close(1);
%%=============================================================
function botaoTransferirDoc2_Callback(hObject, eventdata, handles)
% Botao "Transferir grafico 2 para DOC"
series = evalin('base','series');
figure;plot(series);
docFileName = get(handles.nome_arq_doc,'String');
figureTitle = 'Serie Transformada';
figure2DocFile(docFileName,1,figureTitle,0);
% close(1);
%%=============================================================
function botaoTransferirDoc3_Callback(hObject, eventdata, handles)
% Botao "Transferir grafico 3 para DOC"
evalin('base','autocorr(series)');
series = evalin('base','series');
% Ler o mximo valor de lags da escala
maxlag = str2double(get(handles.MaxLag,'String'));
% Verificar qual mtodo de correlaa est selecionado
aux1 = get(handles.autocorrelacao, 'Value');
aux2 = get(handles.correlacaoparcial, 'Value');
aux3 = get(handles.correlacaoquad, 'Value');
if aux1 == 1
figure;autocorr(series,maxlag);
figureTitle = 'Auto-Correlao';
end
if aux1 == 1
figure;parcorr(series,maxlag);
figureTitle = 'Correlao Parcial';
end
if aux1 == 1
figure;autocorr(power(series,2),maxlag);
figureTitle = 'Auto-Correlao Quadrtica';
end
docFileName = get(handles.nome_arq_doc,'String');
figureTitle = get(handles.titulo_figura,'String');
figure2DocFile(docFileName,1,figureTitle,0);
% close(1);
%%=============================================================
function botaoTransferirDoc4_Callback(hObject, eventdata, handles)
% Botao "Transferir grafico INNOVATIONS para DOC"
165
ts = evalin('base','ts');
figure;plot(ts);
docFileName = get(handles.nome_arq_doc,'String');
figureTitle = 'Inovaes Simuladas';
figure2DocFile(docFileName,1,figureTitle,0);
% close(1);
%%=============================================================
function botaoTransferirDoc5_Callback(hObject, eventdata, handles)
% Botao "Transferir grafico VOLATILIDADE para DOC"
va = evalin('base','va');
newv2 = evalin('base','newv2');
figure;
plot(sqrt(va));hold on;plot(newv2,'r');
docFileName = get(handles.nome_arq_doc,'String');
figureTitle = 'Volatilidade (Estimada e Previso)';
figure2DocFile(docFileName,1,figureTitle,0);
% close(1);
%%=============================================================
function botaoTransferirTexto_Callback(hObject, eventdata, handles)
% Botao "Transferir Texto para DOC"
docFileName = get(handles.nome_arq_doc,'String');
addPageBreak = 0;
fontName = 'Arial';
fontSize = 10;
fontStyle = 'normal';
fontColor = 'black';
alignment = 'justified';
showDocument = 0;
keepOpened = 1;
textToWrite ='Resultados do Teste de Hipotese';
flag = get(handles.rb_jungbox,'Value');
if flag == 1
textToWrite ='Resultados do Teste de Hipotese Jung-Box';
else
textToWrite ='Resultados do Teste de Hipotese ARCH';
end
text2DocFile(docFileName,textToWrite,addPageBreak,fontName,fontSize,fontStyle,f
ontColor,alignment,showDocument,keepOpened);
textToWrite ='H pValue Estatistica Valor Critico';
text2DocFile(docFileName,textToWrite,addPageBreak,fontName,fontSize,fontStyle,f
ontColor,alignment,showDocument,keepOpened);
% Transferir valores do Workspace para o programa
H = evalin('base','H');
pValue = evalin('base','pValue');
ARCHstat = evalin('base','ARCHstat');
CriticalValue = evalin('base','CriticalValue');
result = evalin('base','[H,pValue,ARCHstat,CriticalValue]');
assignin('base','result',result);
% Escrever resultados no campo de texto
H1 = result(1);
166
pValue1 = result(3) ;
ARCHstat1 = result(5) ;
CriticalValue1 = result(7);
H2 = result(2);
pValue2 = result(4) ;
ARCHstat2 = result(6) ;
CriticalValue2 = result(8);
result = [H1 pValue1 ARCHstat1 CriticalValue1; H2 pValue2 ARCHstat2
CriticalValue2];
stringVAR = num2str(result);
textToWrite = result;
text2DocFile(docFileName,textToWrite,addPageBreak,fontName,fontSize,fontStyle,f
ontColor,alignment,showDocument,keepOpened);
errordlg('Resultados de Testes de Hipteses transferidos para documento.');
%%=============================================================
function pb_calc_modelo_garch_Callback(hObject, eventdata, handles)
% Botao "Calcular Modelo GARCH"
% Criar coeficientes GARCH
str_a = 'Calculando parametros (ver Workspace)';
set(handles.txt_modelo_garch, 'String', str_a);
% Loop "dummy", para "desperdiar tempo", i.e.,
% dar tempo para escrever o texto acima - pode ser apagado!
for i=1:100
a1=0;
end
% Clculo dos parametros do modelo GARCH
evalin('base','[Coeff,Errors,LLF,Innovations,Sigmas,Summary] = garchfit(series);');
% Extrair parametros GARCH
Coeff = evalin('base','Coeff');
k = garchget(Coeff,'K');
assignin('base','k',k);
a = garchget(Coeff,'GARCH');
assignin('base','a',a);
b = garchget(Coeff,'ARCH');
assignin('base','b',b);
p = garchget(Coeff,'P');
assignin('base','p',p);
q = garchget(Coeff,'Q');
assignin('base','q',q);
str = num2str(k,4);
set(handles.txt_kk, 'String', str);
str = num2str(a,4);
set(handles.txt_aa, 'String', str);
str = num2str(b,4);
set(handles.txt_bb, 'String', str);
% Extrair informao sobre convergencia da srie
aux1 = evalin('base','Summary');
str_a = getfield(aux1,'converge');
converge = str_a ;
result = [str_a];
167
modelo = garchget(Coeff,'VarianceModel');
str_a = strcat('Modelo=',modelo);
result = strvcat(result,str_a);
strp = num2str(p,2);
strq = num2str(q,2);
str_a = strcat('P=',strp,' Q=',strp);
result = strvcat(result,str_a);
comentario = garchget(Coeff,'Comment');
str_a = strcat('Comentrio=',comentario);
result = strvcat(result,str_a);
distribuicao = garchget(Coeff,'Distribution');
str_a = strcat('Distribuio=',distribuicao);
result = strvcat(result,str_a);
c = garchget(Coeff,'C');
strc = num2str(c,5);
str_a = strcat('C=',strc);
result = strvcat(result,str_a);
% str_a = num2str(result);
set(handles.txt_modelo_garch, 'String', result);
% Setar "flag"
if converge == 'Function Converged to a Solution'
flag_modelo_garch = 1 ;
end
%%=============================================================
function pb_simulacao_Callback(hObject, eventdata, handles)
% Botao "Simulaao (GARCH)"
% --- Ler valores de K, A e B do Workspace ---
k = evalin('base','k');
a = evalin('base','a');
b = evalin('base','b');
% --- Ler valor de n (nmero de pontos da simulao) ---
n_sim = str2double(get(handles.n_sim,'String'));
assignin('base','n_sim',n_sim);
% --- K, A e B devem ser parametros validos ---
if isnan(k) | any(isnan(a)) | any(isnan(b)) | isnan(n_sim)
errordlg('Parmetros GARCH invlidos.');
return;
end
% --- Simular srie GARCH ---
evalin('base','[ts,va] = ugarchsim(k,a'',b'',n_sim);');
ts = evalin('base','ts');
va = evalin('base','va');
% --- Plotar srie temporal ---
axes(handles.axes6);
cla;
evalin('base','plot(ts);grid on;');
set(handles.text58, 'String', 'Inovaes Simuladas');
% --- Plotar volatilidade ---
axes(handles.axes7);
cla;
168
evalin('base','plot(sqrt(va));grid on;');
% --- Criar a varivel "volact" no Workspace
evalin('base','volact = sqrt(va);');
set(handles.text59, 'String','Volatilidade Simulada');
%%=============================================================
function pb_plotar_resultados_Callback(hObject, eventdata, handles)
% Plotar resultados dos clculos do modelo GARCH
evalin('base','garchplot(Innovations,Sigmas,prices);');
evalin('base','garchdisp(Coeff,Errors);');
%%=============================================================
function pb_predicao_Callback(hObject, eventdata, handles)
% Funo para calcular a Predio
% --- Ler valor de per_pred (perodo da predio) ---
per_pred = str2double(get(handles.n_pred,'String'));
assignin('base','per_pred',per_pred);
% Fazer a estimativa dos parmteros K, A, e B no Workspace
evalin('base','[ke,ae,be]= ugarch(ts,p,q);');
ke = evalin('base','ke');
str = num2str(ke,4);
set(handles.txt_kke, 'String', str);
ae = evalin('base','ae');
str = num2str(ae,4);
set(handles.txt_aae, 'String', str);
be = evalin('base','be');
str = num2str(be,4);
set(handles.txt_bbe, 'String', str);
% Fazer predio usando valores estimados ke, ae e be
% [VarianceForecast,H] = ugarchpred(U,K,A,B,NumPeriods)
evalin('base','[v2,h2] = ugarchpred(ts(1:n_sim-per_pred),ke,ae,be,per_pred);');
v2 = evalin('base','v2');
h2 = evalin('base','h2');
% ================================================
% Clculo dos Erros de Volatilidade
% [Erro de Volatilidade] = [Volatilidade Simulada] - [Volatilidade Prevista]
% volerr = volsim + volprd
% ================================================
axes(handles.axes6);
cla;
evalin('base','volsim = sqrt(va(1:n_sim-per_pred));');
evalin('base','volprd = sqrt(h2);');
evalin('base','volerr = volsim - volprd;');
evalin('base','plot(volerr);grid on;');
set(handles.text58, 'String', 'Erro de Volatilidade');
% Plotar Histograma Gaussiano
figure;
evalin('base','histfit(volerr);title(''Erro de Volatilidade'');');
% Escrever valor medio do erro de volatilidade
evalin('base','mean_volerr = mean(volerr);');
mean_volerr = evalin('base','mean_volerr');
str = num2str(mean_volerr,5);
169
if icontador > 0
strlag = strcat(strlag,',',str1);
end
if icontador == 0
strlag = str1;
icontador = icontador +1;
end
end
end
% Escrever string no campo apropriado (lags)
set(handles.lags, 'String', strlag);
%%=============================================================
function inicializar_graficos
%%=============================================================
function pb_fim_Callback(hObject, eventdata, handles)
% Botao "Fim"
initialize_gui(gcbf, handles);
% enable function "close" (disabled when figure was created)
set(garch_design,'CloseRequestFcn','closereq');
% close all pages
close all;
close(garch_design);
%%=============================================================
function texto_geral_Callback(hObject, eventdata, handles)
% Area de texto geral
%%=============================================================
function nome_arq_doc_Callback(hObject, eventdata, handles)
% Ler Nome do Arquivo
%%=============================================================
function titulo_figura_Callback(hObject, eventdata, handles)
% Ler Titulo da figura
%%=============================================================
function p_Callback(hObject, eventdata, handles)
% Ler "p"
%%=============================================================
function q_Callback(hObject, eventdata, handles)
% Ler "q"
%%=============================================================
function n_Callback(hObject, eventdata, handles)
% Ler objeto "n"
%%=============================================================
function pasta_arquivo_Callback(hObject, eventdata, handles)
% Ler "arquivo de Dados"
%%=============================================================
function arquivodados_Callback(hObject, eventdata, handles)
% Funo associada ao objeto "arquivodados"
%%=============================================================
function lag2_Callback(hObject, eventdata, handles)
% Funo associada ao objeto "lag2"
%%=============================================================
171