Escolar Documentos
Profissional Documentos
Cultura Documentos
Elisngela Lopes de Faria (a) Marcelo Portes Albuquerque (a) Jorge Luis Gonzlez Alfonso (b) Mrcio Portes Albuquerque (a) Jos Thadeu Pinto Cavalcante (a)
(a)
Centro Brasileiro de Pesquisas Fsicas CBPF Rua Dr. Xavier Sigaud, 150 22290-180 Rio de Janeiro, RJ
(b)
Pontifcia Universidade Catlica PUC-RIO Marqus de So Vicente, 225 22453-900 Rio de Janeiro, RJ
Resumo
Esta nota tcnica tem como objetivo o estudo das redes neurais artificiais na previso da srie temporal do indicador mais importante do mercado de aes brasileiro, mais precisamente a srie Ibovespa, que o ndice da Bolsa de Valores do estado de So Paulo (BOVESPA). Para este estudo ser implementada uma rede neural artificial multilayer perceptrons com algoritmo backpropagation para fazer previses do ndice Ibovespa.
CBPFNT 002/2008
Sumrio
1. Introduo....................................................................................................................... 3 2. Mercado de Aes........................................................................................................... 4 3. Redes Neurais Artificiais ................................................................................................ 5 3.1. Neurnio Artificial ................................................................................................... 5 3.2. Topologia ................................................................................................................. 6 3.3. Treinamento ............................................................................................................. 7 3.3.1. Treinamento com Algoritmo Backpropagation ................................................ 7 4. Desenvolvimento ............................................................................................................. 8 4.1. Preparao dos dados (Treinamento e Teste) ......................................................... 8 4.2. Projeto da rede ...................................................................................................... 10 4.2.1. Tcnica de Janelamento.................................................................................. 12 4.2.2. Treinamento e Simulao ............................................................................... 13 4.3. Resultados obtidos ................................................................................................. 14 5. Resultados e Discusso................................................................................................. 16 5.1 Mtrica RMSE..................................................................................................... 16 5.2 Mtrica Comparao Grfica............................................................................. 17 5.3 Anlise dos Parmetros da rede e comparao da mtrica ............................... 18 6. Concluses Gerais ........................................................................................................ 20 7. Bibliografia ................................................................................................................... 21
CBPFNT 002/2008
1. Introduo
Nos dias atuais o desenvolvimento da computao e outras tcnicas avanadas tm proporcionado uma melhor compreenso de sistemas denominados sistemas complexos e no lineares. Estes sistemas se caracterizam por apresentar um comportamento no linear onde vrios fatores, de diferente natureza, influenciam a evoluo no tempo (ou srie temporal) do mesmo. Recentemente o surgimento de novas tcnicas computacionais tem proporcionado um acompanhamento on-line da estrutura destes sistemas, fornecendo dados experimentais suficientes que tem levado a um melhor entendimento de seu comportamento. Neste sentido as Redes Neurais Artificiais (RNAs) tm encontrado aplicao no estudo e previso de sries temporais complexas, como por exemplo, clima, transmisso de energia eltrica, sries financeiras, etc. Recentemente, as RNAs comearam a serem usadas na previso de sries financeiras, como por exemplo, previso do dlar, balana comercial, mercado de aes e outros. Dentre estes estudos podemos citar em particular o uso de RNAs para prever o mercado de aes e derivativos. Estes mercados tm se desenvolvido muito ultimamente atraindo a ateno de muitos pesquisadores e aplicaes bem sucedidas das RNAs e previses de sries temporais financeiras podem ser encontrados em [CHAK] e tambm [TANG] entre outros.
Com relao ao mercado de aes, mtodos estatsticos foram uma alternativa inicial para se entender e prever os mesmos, porm atualmente as RNAs fazem um grande diferencial no estudo dos mesmos. O que torna as Redes Neurais to atraentes no estudo de sries financeiras (assim como outros sistemas no lineares) o fato delas acompanharem mudanas contnuas e bruscas destes sistemas que no podem ser descritas por um modelo matemtico pr-definido. Estudos tm mostrado que as RNAs so capazes de acompanhar e seguir estas mudanas extremamente no lineares e imprevisveis mostrando resultados surpreendentes [DAVI]. Tudo isto tem provocado nos ltimos anos o aumento no nmero de teses e estudos que tentam usar RNAs para prever sries temporais de mercados financeiros. 3
CBPFNT 002/2008
2. Mercado de Aes
O mercado de aes brasileiro comumente chamado de BOVESPA rene as aes das principais empresas brasileiras de capital aberto (Vale, Petrobras, etc) e est situado na cidade de So Paulo. Podemos definir ao como a menor parcela em que se divide uma empresa, sendo que todos os dias milhes destes papis so negociados entre investidores por preos definidos pela lei da oferta e da procura. Os negcios com aes so acompanhados instantaneamente pela internet ou outros meios. O principal indicador do mercado de aes brasileiro chamado de IBOVESPA e o mesmo mede a lucratividade de uma carteira terica de aes (as mais negociadas) alm de retratar o comportamento do mercado em geral [BOVE]. A previso deste indicador o objetivo central deste trabalho. A escolha deste indicador determinada pelo fato de que o mesmo representa o estado do mercado financeiro brasileiro como um todo. A figura 2.1 mostra um grfico com as cotaes dirias do Ibovespa no perodo de setembro de 1998 a agosto de 2007.
60000
50000
40000
30000
20000
10000
CBPFNT 002/2008
Um neurnio artificial formado por trs elementos bsicos: os pesos sinpticos, a funo de soma, e a funo de transferncia tambm conhecida como funo de ativao. A figura 3.1 mostra um exemplo de neurnio com trs entradas (cada uma com um peso respectivo), uma funo somadora que produz um valor que ser processado pela funo de transferncia gerando assim a sada (y) do neurnio.
CBPFNT 002/2008 Dentre as principais funes de ativao podemos destacar as funes: linear, degrau e tangente hiperblica. Outros tipos de funes podem ser usados dependendo do problema especfico.
3.2. Topologia
As RNAs podem ser do tipo SingleLayer Feddforward, tambm conhecida como perceptrons e que possui apenas uma camada de ns de entrada ligada diretamente camada de neurnios de sada, ou Multilayer feedforward, que assim como a arquitetura anterior, possui camadas de entrada e sada e tambm uma ou mais camadas intermedirias. Esta ltima arquitetura uma das mais utilizadas nas diferentes aplicaes, pois o fato de possuir camadas intermedirias aumenta o seu poder computacional [HAYK]. Na figura 3.2 pode ser visualizada a topologia desta arquitetura. Finalmente podemos destacar as Redes Recorrentes que possuem pelo menos um ciclo de feedback, resultando em um comportamento de dinmica no linear.
CBPFNT 002/2008
3.3. Treinamento
O treinamento das redes neurais um processo muito importante e o mesmo pode ser supervisionado ou no supervisionado. Para treinamento supervisionado existe a presena de um professor que indica para a rede um comportamento a seguir, ou seja, a rede recebe um conjunto de exemplo de pares entrada e sada desejada. No treinamento no supervisionado no existe a presena de um professor, a rede aprende atravs de exemplos de objetos semelhantes para criar grupos ou classes.
O algoritmo backpropagation do tipo supervisionado, ou seja, utiliza par (entrada e sada desejadas) e realizado em duas etapas. Na primeira a entrada propagada pela rede, no sentido da entrada para a sada (fase forward), sem que ocorram alteraes dos pesos. J na segunda a resposta de rede comparada com a resposta desejada e os pesos so reajustados de maneira a minimizar o erro (fase backward). Nesta segunda etapa o ajuste de um peso wij que define seu valor para a prxima iterao dado por:
w ij ( n + 1) = w ij ( n ) + j ( n ) x j ( n )
Na equao anterior a taxa de aprendizagem e j o gradiente local do erro para o neurnio j. A taxa de aprendizagem um parmetro que geralmente menor que 1. preciso ter cuidado com o valor desta taxa, pois quanto menor for o seu valor menor sero as variaes dos pesos sinpticos da rede de uma iterao para outra, o que poder causar uma lentido na convergncia do treinamento. Por outro lado se esta taxa assumir um valor muito alto causando grandes modificaes nos pesos sinpticos a rede pode se tornar instvel. J o gradiente local do erro j determinado atravs do mtodo do gradiente descendente. Detalhes do algoritmo podem ser encontrados em [HAYK], uma vez que este estudo no faz parte do escopo deste trabalho. 7
CBPFNT 002/2008
4. Desenvolvimento
Este trabalho visa criar um projeto de rede neural artificial para fazer previses do ndice Ibovespa (ndice da Bolsa de Valores de So Paulo). O software utilizado para o projeto foi o Matlab verso 7.1, que uma ferramenta computacional muito eficiente e tambm apresenta um toolbox totalmente voltado para redes neurais. Detalhes desta ferramenta podem ser encontrados em [MATL]. O trabalho envolvendo redes neurais feito de muitas escolhas empricas, pois no existem na literatura os parmetros ideais da rede que possam levar a encontrar aquela que apresenta o resultado mais satisfatrio. Nosso trabalho foi dividido em duas grandes etapas, a primeira est relacionada preparao dos dados, nos quais temos a seleo das variveis (neste trabalho em especfico, foi escolhido as cotaes do fechamento do Ibovespa) e a separao deste conjunto em outros dois chamados de treinamento (aproximadamente 85 a 90 % dos dados) e teste (aproximadamente 10 a 15%). A segunda etapa est relacionada ao projeto da rede na qual temos a definio do modelo, da arquitetura e dos parmetros necessrios da rede.
CBPFNT 002/2008 respectivamente premnmx e postmnmx. A utilizao destas rotinas no matlab feita da seguinte forma:
Normalizao: [pn, minp, maxp] = premnmx(p). A funo premnmx recebe o conjunto utilizado para o treinamento (p) como parmetro e retorna o conjunto treinamento normalizado (pn) e o valor mnimo (minp) e mximo (maxp) do conjunto de treinamento. Desnormalizao: [p] = postmnmx (pn, minp, maxp). A funo postmnmx faz a condio inversa funo anterior. Ela recebe o valor normalizado (pn) e o valor mnimo e mximo do conjunto (p) e retorna o valor desnormalizado.
50000
40000
30000
20000
10000
CBPFNT 002/2008
60000 58000 56000 54000 52000 50000 48000 46000 44000 42000 40000 0 20 40 60 80 100 120 140
O modelo escolhido para fazer as previses do Ibovespa um modelo de rede neural feedforward com algoritmo backpropagation. Os parmetros da rede foram alterados ao longo do treinamento com a finalidade de se encontrar um modelo com um resultado mais satisfatrio. Para criar e simular todos estes parmetros foi criado um programa no matlab que permitiu alterar diferentes parmetros da simulao. Devido ao grande nmero de redes criadas e ao tempo gasto pelas redes na convergncia das mesmas o programa foi executado no Cluster Linux SSolar do CBPF. No programa proposto os parmetros alterados foram os seguintes:
Quantidade de camadas escondidas: foram adotadas arquiteturas com at duas camadas escondidas. Nmero de neurnios da primeira camada escondida: variou entre 3 e 30. Mais precisamente foram criadas redes com 3, 5, 10, 15, 20 e 30 neurnios. Nmero de neurnios da segunda camada escondida: 5, 12 e 20 neurnios.
10
CBPFNT 002/2008 Tamanho da janela: nmero de cotaes utilizado para treinamento. Exemplo: tamanho da janela igual a cinco, seriam utilizados cinco dias de cotaes do Ibovespa, ou seja, dias 1, 2, 3, 4, 5 para a previso do sexto dia. Esta tcnica ser detalhada na prxima seo. Os tamanhos de janela escolhidos para este trabalho foram de 5, 10, 15, 20, 25, 30, 40, 50 e 60.
Os demais parmetros da rede como funo de ativao e mtodo de treinamento no foram modificados ao longo do treinamento e receberam as mesmas funes e mtodos para todas as configuraes de rede possveis, ou seja, para a funo de ativao foi utilizada a funo tangente hiperblica (no matlab chamada de tansig), para o mtodo de treinamento foi utilizado o algoritmo resilient backpropagation (no matlab chamado de trainrp). Sendo assim os modelos de rede foram estruturados em uma camada de entrada, onde o nmero de neurnios foi definido pelo tamanho da janela, uma ou duas camadas escondidas com quantidades variadas ao longo do treinamento, e com apenas um neurnio na camada de sada, que representa a previso do Ibovespa no dia seguinte. Uma das possveis arquiteturas propostas pode ser visualizada na figura 4.3 abaixo onde temos uma rede que trabalha com uma janela de entrada de 5 dias, uma camada escondida e uma sada correspondente ao Ibovespa do sexto dia.
F(t-1) F(t-2) 5 valores do fechamento F(t-3) F(t-4) F(t) Valor previsto do fechamento
11
CBPFNT 002/2008
Conforme apontado anteriormente foram definidas duas janelas, uma de entrada (JI) e outra de sada (J0) de tamanhos fixos E (entrada) e S (sada) respectivamente, e desloc-las no tempo com um passo fixo de tamanho p. Sendo assim para um determinado tamanho de janela, a suposio que a seqncia de valores JI0,.. .. ,JIn est de alguma forma relacionada com a seqncia JO0,......,JOn e esta relao, embora desconhecida, est definida completamente no conjunto de dados [REFE]. No nosso caso a utilizao deste mtodo foi feita utilizando os pares de janela JI e JO como vetores de treinamento, onde os dados das janelas JIs e JOs formaro respectivamente os vetores de entrada formados pelas cotaes do Ibovespa (fechamento) com tamanho fixo E (entrada) conforme especificado acima e os vetores alvos correspondentes que formam os dados de sada com tamanho fixo S=1 (sada), ou seja, o fechamento do Ibovespa um dia frente. J o passo de tamanho p foi fixado em 1. Na figura abaixo 4.4 pode ser visualizada a criao de uma janela de previso com entrada E = 5 ( 5 dias de cotaes do Ibovespa) e sada S = 1 (dia de cotao do Ibovespa do 6 dia).
12
CBPFNT 002/2008
Com a rede treinada foi feita a previso utilizando os valores de entrada que a rede nunca viu antes, ou seja, o conjunto de teste. O primeiro passo para a simulao foi carregar o conjunto de teste e normalizar os dados no intervalo [-1,1]. Foi criado ento um padro de entrada para a rede com a mesma quantidade de cotaes (fechamento Ibovespa) utilizadas na matriz de treinamento. Com o primeiro padro construdo foi feita a simulao. A resposta obtida da simulao que corresponde primeira previso armazenada e um segundo padro ento construdo e apresentado para a simulao, e assim sucessivamente at que as 150 previses (tamanho do conjunto teste) foram concludas. A figura 4.5 mostra a estrutura do algoritmo proposto. 13
CBPFNT 002/2008
N S
A tabela 4.1 visualizada abaixo apresenta as redes com melhores desempenhos, juntamente com sua arquitetura, o parmetro tamanho da janela, e os respectivos Root Mean Square Erro (RMSE) obtidos.
Tamanho da Janela JE = 10 JE = 15 JE = 5
CBPFNT 002/2008 Rede4 Rede5 Rede6 Rede7 Rede8 Rede9 Rede10 Rede11 Rede12 Rede13 Rede14 Rede15 5x10x1 15x10x1 5x15x1 5x20x1 5x30x1 5x3x5x1 5x5x5x1 5x20x5x1 5x30x5x1 5x10x12x1 5x15x5x1 5x3x20x1 JE = 5 JE = 15 JE = 5 JE = 5 JE = 5 JE = 5 JE = 5 JE = 5 JE = 5 JE = 5 JE = 5 JE = 5 0,0181 0,0192 0,0172 0,0164 0,0172 0,0177 0,0170 0,0168 0,0176 0,0173 0,0168 0,0180
Na tabela acima: Arquitetura 10x3x1 significa 10 neurnios na camada de entrada, 3 neurnios na camada escondida, e apenas 1 neurnio na camada de sada. JE: nmero de dias na janela de entrada, os tamanhos da janela de sada e o passo a cada iterao no constam na tabela acima, pois eles receberam o valor 1 para todas as arquiteturas e RMSE (Root Mean Square Erro) mtrica utilizada para verificar a eficincia das previses.
15
CBPFNT 002/2008
5. Resultados e Discusso
Dentre as diversas tcnicas utilizadas para avaliar os resultados obtidos com RNAs podemos citar: comparao grfica, diagramas de disperso, raiz do erro mdio quadrtico, erro percentual mdio absoluto, coeficiente de U-Theil, entre outros. Neste trabalho, para avaliar os resultados obtidos foram utilizados algumas das tcnicas citadas acima como comparao grfica e a raiz do erro mdio quadrtico (RMSE). A equao do clculo do RMSE pode ser visualizada abaixo:
RMSE =
a y 1 k a k K= k N
N
Onde N o nmero de padres, neste trabalho N igual a 150, a k representa o valor real no instante t, e y k representa o valor previsto no instante t.
O histograma dos erros (RMSE) em todas as simulaes com todas as redes criadas neste trabalho est apresentado na figura abaixo, onde o valor mdio da distribuio de 2%.
16
CBPFNT 002/2008
50
40
30
counts
20
10
0 0,014
0,016
0,018
0,020
0,022
0,024
0,026
0,028
0,030
Rmse
Atravs da comparao grfica possvel ter uma melhor visualizao dos resultados. uma mtrica bem simples que no quantifica os resultados, mas permite fazer uma boa anlise visual. Na figura 4.7 pode ser visualizado o grfico com os valores alvos e as respectivas previses feitas pelas redes neurais que apresentou o menor Root
17
CBPFNT 002/2008
60000
56000
alvo previso
Fechamento Ibovespa
52000
48000
44000
Os menores erros (RMSE) encontrados durante as simulaes possuem tamanho de janela igual a 5 ou valores prximos do mesmo. Isto nos parece lgico uma vez com o tamanho de janela igual a cinco possvel de se construir um conjunto de treinamento mais representativo, o que no acontece quando usamos janela de tamanho igual a 60, por exemplo.
Quanto ao nmero de camadas escondidas para se obter bons resultados basta uma nica camada escondida. A utilizao de duas camadas escondidas no acrescentou nenhuma melhora nos resultados. Este um ponto importante uma 18
CBPFNT 002/2008 vez que pode otimizar o tempo gasto no treinamento com a utilizao de apenas uma camada escondida. Quanto ao erro no treinamento todas as redes criadas convergiram ao atingir o erro mnimo desejvel no treinamento (ordem de 10-3).
Quanto ao nmero mximo de pocas utilizadas para atingir o erro desejvel no treinamento (ordem de 10-3) ficou na faixa de 5000 a 10000 pocas. Sendo que como j era esperado, tamanhos de janelas maiores implica em um nmero maior de pocas para a convergncia. Quanto quantidade de vezes que uma determinada configurao foi apresentada ao treinamento (total de 50 vezes) foi possvel constatar que no houve muita diferena entre um treinamento e outro. O que nos leva a concluir que os diferentes pesos sinpticos utilizados na inicializao da rede no alteram significativamente os resultados.
Quanto s mtricas utilizadas possvel destacar que com os parmetros utilizados neste trabalho os erros (RMSE) encontrados ficam na faixa de 1.5 a 2%. E que analisando graficamente os resultados pode-se perceber que os valores de previso encontrados conseguem acompanhar os valores reais da srie.
19
CBPFNT 002/2008
6. Concluses Gerais
Neste trabalho foi estudado o mercado de aes brasileiro atravs do uso de redes neurais artificiais. Foram criadas e simuladas diferentes configuraes de RNAs com o objetivo de tentar prever o indicador mais importante da Bolsa de Valores de So Paulo, o Ibovespa. Os resultados obtidos permitiram concluir que:
O indicador Ibovespa pode ser previsto com erros mdios em torno de 2 %. A tcnica de janelamento permitiu otimizar os resultados mostrando-se uma ferramental til para a previso. O tamanho de janela igual a cinco produziu os melhores resultados.
Apenas uma camada escondida foi suficiente para a previso do indicador estudado. O erro no treinamento foi igual a 10-3. Este valor foi suficiente para obter previses razoveis do indicador estudado.
Por fim destacamos que estudos envolvendo redes neurais artificiais envolvem muito tempo na busca de parmetros para a rede que melhor representa os resultados almejados. Ns conferimos que estes parmetros so obtidos atravs da experimentao conforme um modelo de tentativa e erro. Neste ponto importante destacar que o Cluster
Linux SSolar do CBPF foi fundamental para tais simulaes, pois permitiu a otimizao
do tempo.
20
CBPFNT 002/2008
7. Bibliografia
[BOVE] http://www.bovespa.com.br
[HAYK] Haykin, S. Redes Neurais, Princpios e Prtica. 2.ed. Porto Alegre: Bookman, 2001.
[CHAK] - Chakraborty, K. Forecasting the behavior of multivariate Time Sries Using Neural Networks. Neural Networks, E.U.A., n. 5, p. 961-970, 1992.
[MATL] - Matlab Neural Network Toolbox Users Guide 1992-2002 by The MathWorks, Inc Verso 4.
[REFE] - Refenes, A. N. Francis, G, 1992. Currency exchange rate prediction and neuralnetwork design strategies. Neural computing & Aplications Journal. Londres, v. 1, n.1, p. 46-58. [TANG] Tang, Z.,. Time sries forecasting using neural network vs. Box- Jenkins methodology. Artificial Neural Network: forecasting time series. E.U.A., IEEE Press, p. 20-27, 1994.
21