• Nenhum resultado encontrado

Redes neurais, filtragem e programação aplicadas a finanças

N/A
N/A
Protected

Academic year: 2021

Share "Redes neurais, filtragem e programação aplicadas a finanças"

Copied!
59
0
0

Texto

(1)

Universidade Federal Fluminense

Escola de Engenharia

Curso de Gradua¸

ao em Engenharia de

Telecomunica¸

oes

Felipe Carvalho Siqueira

Redes neurais, filtragem e programa¸c˜

ao aplicadas a

finan¸cas

Niter´

oi – RJ

2019

(2)

1 Felipe Carvalho Siqueira

Redes neurais, filtragem e programa¸c˜ao aplicadas a finan¸cas

Trabalho de Conclus˜ao de Curso apresentado ao Curso de Gradua¸c˜ao em Engenharia de Teleco-munica¸c˜oes da Universidade Federal Fluminense, como requisito parcial para obten¸c˜ao do Grau de Engenheiro de Telecomunica¸c˜oes.

Orientador: Prof. Dr. Tadeu Nagashima Ferreira

Niter´oi – RJ 2019

(3)

ii .

(4)

iii Felipe Carvalho Siqueira

Redes neurais, filtragem e programa¸c˜ao aplicadas a finan¸cas

Trabalho de Conclus˜ao de Curso apresentado ao Curso de Gradua¸c˜ao em Engenharia de Teleco-munica¸c˜oes da Universidade Federal Fluminense, como requisito parcial para obten¸c˜ao do Grau de Engenheiro de Telecomunica¸c˜oes.

Aprovada em 09 de Julho de 2019.

BANCA EXAMINADORA

Prof. Dr. Tadeu Nagashima Ferreira - Orientador Universidade Federal Fluminese - UFF

Prof. Dra. Paula Brand˜ao Harboe Universidade Federal Fluminese - UFF

Prof. Dra. Jacqueline Silva Pereira Universidade Federal Fluminese - UFF

Niter´oi – RJ 2019

(5)

iv

Resumo

O trabalho apresentado a seguir tem como objetivo unir os aprendizados do curso de Engenharia de telecomunica¸c˜oes com os conhecimentos almejados e obtidos no Mercado Financeiro durante o est´agio do autor. Este documento vislumbra sintetizar a beleza da matem´atica, programa¸c˜ao e processamento de sinais no universo de Finan¸cas, evidenci-ando que o conhecimento adquirido no curso pode ser utilizado em diversos cen´arios. Nele ser´a apresentado e definido o que ´e uma S´erie Temporal, um Teste de Hip´oteses e Filtro de Wiener, todos os trˆes t´opicos abordados com embasamento matem´atico e de programa¸c˜ao, utilizando Redes Neurais e o Teste T de Student em linguagem Python para mostrar apli-ca¸c˜oes destes temas. A S´erie Temporal de pre¸cos de ativos ´e a ferramenta principal deste estudo, procurando auxiliar no processo de tomada de decis˜ao. A rela¸c˜ao de dependˆencia entre os dados das s´eries figura como personagem principal, que ser´a o fator determinante para se estabelecer uma previs˜ao de pre¸co. Foi implementada uma RNA para testarmos a precis˜ao da previs˜ao de pre¸co do ativo PETR4, a¸c˜ao preferencial da Petrobras, utilizando uma amostra de quatro anos. No caso do Teste de Hip´oteses, foi testada a presen¸ca do Efeito Segunda-Feira no ´ındice Ibovespa, e foi conclu´ıdo que n˜ao existe essa anomalia, que ser´a explicada no documento.

(6)

v

Abstract

The following document aims to unite the learning of Telecommunications Engineering course with the knowledge sought and obtained in the Financial Market during the author’s internship. This document glimpses to synthesize the beauty of mathematics, programming and signal processing in the universe of Finance, evidencing that the knowl-edge acquired in the course can be used in several scenarios. In it, Time Series, Hypothesis Test and Wiener Filter will be presented and defined, all three topics covered with mathe-matical and programming bases, using Neural Networks and Student’s T Test in Python language to show applications about these topics. The Temporal Series of asset prices is the main tool of this study, seeking to assist in the decision making process. The relati-onship of dependence between the data of the series appears as main character, which will be the determining factor to establish a price forecast. An Artificial Neural Network was implemented to test the accuracy of the PETR4 asset price forecast, a preferential share of Petrobras, using a four-year sample. In the case of the Hypothesis Test, the presence of the Monday Effect was tested on the Ibovespa index, and it was concluded that there is no such anomaly, which will be explained in the document.

(7)

vi

”Aqueles que s˜ao loucos o suficiente para acharem que podem mudar o mundo s˜ao os que realmente mudam.” - Steve Jobs

(8)

vii

Agradecimentos

Gostaria de agradecer a todos que sempre me motivaram e me apoiaram em toda a minha trajet´oria, em especial aos meu pais, Teresa e Marcus e, meus irm˜aos, Fl´avio e Patricia, que me incentivam diariamente a ser melhor. Obrigado a todos os professores do curso de Engenharia de Telecomunica¸c˜oes, que foram fundamentais no meu desenvolvi-mento profissional, destacando a professora Paula Harboe, que pˆode me ensinar um pouco sobre a melhor forma de lecionar durante dois anos como monitor de Eletromagnetismo I. Obrigado ao meu amigo de gradua¸c˜ao, Carlos Eduardo Bonon, que foi capaz de me auxiliar atrav´es do direcionamento dos estudos de Redes Neurais aplicadas ao Mercado Financeiro.

(9)

viii

Lista de Figuras

3.1 Produ¸c˜ao de leite mensal norte-americana de 1962-1976. Retirada de: [1] . 9

3.2 Sazonalidade na produ¸c˜ao de leite. Retirada de: [2] . . . 9

3.3 Tendˆencia ao longo da produ¸c˜ao de leite. Retirada de: [3] . . . 10

4.1 Representa¸c˜ao de um neurˆonio humano. Retirada de: [4] . . . 12

4.2 Modelo de unidade de McCullock e Pitts. Retirada de: [4] . . . 13

4.3 Topologia em camadas de uma RNA. Retirada de: [4] . . . 13

4.4 Arquitetura feed-foward. Retirado de: [5] . . . 16

4.5 Arquitetura de uma RNR evidenciando o feedback. Retirado de: [5] . . . . 16

5.1 Curva Normal. Retirado de: [6] . . . 22

5.2 Diagrama de blocos da estima¸c˜ao de Wiener. Retirada de: [7] . . . 28

5.3 Demonstra¸c˜ao dos sinais s e w. . . 29

6.1 Treino da rede. . . 35

6.2 Rede sendo validada com uma previs˜ao de dados j´a vistos. . . 35

6.3 Rede prevendo com dados nunca vistos. . . 36

6.4 Ibovespa de Novembro de 2018. . . 37

6.5 Resultado Teste T. . . 39

6.6 Resultado do teste Dickey-Fuller para a s´erie n˜ao estacion´aria. . . 41

(10)

ix

Lista de Tabelas

5.1 Erros do Tipo I e II. Retirado de: [8] . . . 23 5.2 Tabela T de Student. Retirada de: [9] . . . 25

(11)

Sum´

ario

Resumo iv

Abstract v

Agradecimentos vii

Lista de Figuras viii

Lista de Tabelas ix

1 Introdu¸c˜ao 1

1.1 Motiva¸c˜ao . . . 2

2 Entendendo a dinˆamica do Mercado 4 2.1 O Mercado e seus agentes . . . 4

2.2 O Mercado Financeiro . . . 5

3 S´eries Temporais 7 3.1 Apresenta¸c˜ao . . . 7

3.2 Componentes de uma S´erie Temporal . . . 7

4 Aplica¸c˜ao de Redes Neurais 11 4.1 Entendendo uma Rede Neural Artificial . . . 11

4.1.1 Treinamento de uma Rede Neural Artificial . . . 12

4.1.2 Aprendizado de uma Rede Neural . . . 14

4.1.3 Redes Neurais Recorrentes . . . 15

5 T´ecnicas aplicadas aos dados financeiros 20 5.1 Teste de Hip´oteses . . . 20

(12)

xi

5.1.1 Inferˆencia Estat´ıstica . . . 20

5.1.2 Teste de Hip´oteses . . . 21

5.1.3 Teste T de Student . . . 24

5.1.4 Teste do Efeito Segunda-feira . . . 26

5.2 Filtro de Wiener . . . 27

6 Aplica¸c˜oes e resultados 31 6.1 Aplica¸c˜ao da RNA no Python . . . 31

6.1.1 Resultado da Rede Neural . . . 34

6.2 Aplica¸c˜ao do Teste da Segunda-feira em Python . . . 36

6.2.1 Resultado do Teste T . . . 38

6.3 Aplica¸c˜ao do Filtro de Wiener . . . 39

6.3.1 Resultados do Filtro de Wiener . . . 41

(13)

Cap´ıtulo 1

Introdu¸

ao

Com o atual cen´ario pol´ıtico visitando intensamente a quest˜ao de crescimento econˆomico brasileiro, as ferramentas da engenharia em conjunto com a matem´atica podem ser um bom instrumento de an´alise t´ecnica a fim de se obter bons resultados nessa conjuntura. A cada nova informa¸c˜ao, os movimentos de mercado se remodelam da forma que o pr´oprio mercado aprova ou desaprova cada decis˜ao macroeconˆomica. Como ningu´em ´e capaz de prever o futuro, a engenharia e a matem´atica podem ser uma excelente ferramenta para, pelo menos, conseguirmos prever algo parecido com que o mercado, de fato, ir´a produzir. ´

E poss´ıvel tomar decis˜oes certas a fim de ganhar mais dinheiro, de supor certos indica-dores, entre outros n´umeros dif´ıceis de prever, atrav´es da utiliza¸c˜ao da engenhosidade da matem´atica, que permite analisar poss´ıveis tendˆencias de subida ou queda, seja de pre¸co de commodities, a¸c˜oes, ou qualquer outro ativo. Existem diversas discuss˜oes sobre a eficiˆencia desses modelos, visto que s˜ao incapazes de lidar com situa¸c˜oes in´editas. Sendo assim, duas linhas distintas de an´alise surgiram: uma que defende a eficiˆencia do mercado, em que todas as informa¸c˜oes chegam ao mesmo tempo para todos os agentes, de forma que n˜ao haja possibilidade de arbitragem (obter lucros sem riscos), e sendo assim, qualquer distor¸c˜ao nos pre¸cos ´e rapidamente corrigida, baseado nos ciclos, tendˆencias e sazonalida-des, e uma que defende a ineficiˆencia do mercado, embasada no ponto de que o mercado ´e um sistema completamente aleat´orio, com dependˆencia n˜ao linear, sendo previs´ıvel, tal-vez, em curto prazo, por´em n˜ao em longo prazo. Uma frase muito famosa do mercado, do professor de finan¸cas da Copenhagen Business School, Lasse Pedersen, o mercado deve ser ”eficientemente ineficiente”, de forma que os investidores procuram comprar informa¸c˜ao e vender lucro. E para ser um investidor ativo, deve-se procurar tanto a ineficiˆencia quanto

(14)

a eficiˆencia, pois a ineficiˆencia gera as oportunidades, e diante dessas oportunidades, cabe a eficiˆencia torn´a-las em altos retornos. Com um embasamento matem´atico e automati-zado, a possibilidade de achar e transformar os cen´arios de ineficiˆencia em tomadas de decis˜oes eficientes fica melhor sustentado. O ponto aqui, estudo do comportamento do mercado, ser´a defendido com base em s´eries temporais, ou seja, ser´a verificado se h´a exis-tˆencia de padr˜oes de comportamento entre vari´aveis passadas que comp˜oem tal s´erie, e sendo assim, se existe uma previsibilidade de algum dado futuro, nesse caso, o pre¸co de um ativo.

1.1

Motiva¸

ao

No estudo de Engenharia, o contato com a matem´atica ´e constante e inevit´avel, o que torna poss´ıvel perceber que existe um universo complexo de modelos eficientes que traduzem a importˆancia da Engenharia de Telecomunica¸c˜oes, n˜ao s´o para produzir tecnologia, mas como forma de adapta¸c˜ao de diversos outros mundos da ciˆencia.

A discuss˜ao objeto desse estudo ´e unir o Mercado Financeiro com a ciˆencia exata que encanta e impressiona qualquer estudante de n´umeros, a matem´atica e a engenharia. Resumidamente, em Engenharia de Telecomunica¸c˜oes, podemos modelar muitas coisas como uma caixa preta, algo que para produzir um resultado, necessite apenas de inputs, sem precisar alterar as opera¸c˜oes dentro da mesma, por mais que sejam aplica¸c˜oes distintas. Uma vez que demos os inputs, essa caixa preta produz resultados que embasam as diversas tomadas de decis˜oes de forma robusta.

As in´umeras aplica¸c˜oes que existem fundindo as t´ecnicas de filtragens, que regem o universo das Telecomunica¸c˜oes, com os modelos de previs˜ao elegem essa metodologia de an´alise como uma das mais populares no Mercado Financeiro.

Algumas formas de utilizar essas caixas pretas, mostrando o que existe dentro delas, se consolidam como pesquisa e ponto principal desta abordagem, fazendo com que deixem de ser caixas pretas e se transformem em artif´ıcios de tomada de decis˜ao.

O cap´ıtulo 2 abordar´a uma vis˜ao macro sobre o mercado, evidenciando quem s˜ao os agentes e a dinˆamica existente. O cap´ıtulo 3 j´a come¸ca a introduzir a no¸c˜ao sobre as S´eries Temporais e como elas s˜ao observadas no mercado. Como extens˜ao dele, o cap´ıtulo 4 apresenta uma aplica¸c˜ao de Redes Neurais na tentativa de previs˜ao de pre¸co.

(15)

3 J´a o capitulo 5 abordar´a a aplica¸c˜ao de t´ecnicas em dados financeiros, sustentadas puramente por no¸c˜oes de estat´ıstica.

O cap´ıtulo 6 encerra o estudo com a implementa¸c˜ao dos processos idealizados no cap´ıtulo 5, evidenciando os resultados obtidos em cada experimento.

Por fim, o cap´ıtulo 7 resume o aprendizado conquistado ao longo do intervalo de tempo de execu¸c˜ao deste trabalho, comentando cada aplica¸c˜ao realizada e cada resultado obtido.

(16)

Cap´ıtulo 2

Entendendo a dinˆ

amica do Mercado

2.1

O Mercado e seus agentes

O Mercado, em geral, se caracteriza como as rela¸c˜oes dos microagentes e macroagentes, que s˜ao, respectivamente, um elemento espec´ıfico do mercado, como um Banco Central, e aqueles que simbolizam um agregado de um tipo de agente em uma economia, como as fam´ılias. Em suma, o Mercado ´e a rela¸c˜ao dos Agentes Econˆomicos.

Um Agente Econˆomico ´e um indiv´ıduo, conjunto de indiv´ıduos, instituic˜oes e con-juntos de institui¸c˜oes capazes de tomar decis˜oes que influenciam na economia. S˜ao eles:

• Fam´ılias: Indiv´ıduo ou conjunto de indiv´ıduos que s˜ao respons´aveis pelas decis˜oes quanto ao consumo de bens e servi¸cos.

• Empresas: Institui¸c˜oes ou conjunto de institui¸c˜oes que produzem bens e servi¸cos. Investem em equipamentos e outros meios de produ¸c˜ao.

• Estado: Autoridade que define a pol´ıtica fiscal e a pol´ıtica monet´aria. Define as condi¸c˜oes de consumo e de investimento.

• Resto do Mundo: S˜ao todos os agentes citados anteriormente que tomam as mesmas decis˜oes. O resto do mundo ´e usado para identificar os pa´ıses com quais um determinado agente nacional estabelece rela¸c˜ao econˆomica, em um cen´ario de economia aberta (economia em que ocorre opera¸c˜oes de com´ercio e investimento internacionais).

(17)

5

2.2

O Mercado Financeiro

O Mercado Financeiro pode ser definido como um universo que engloba opera¸c˜oes de compra e venda de ativos, por exemplo: a¸c˜oes, debˆentures, cˆambio, entre outros.

Esse enorme universo pode ser subdividido em quatro segmentos de mercado. S˜ao eles:

• Mercado de Capitais: basicamente, ´e um mercado que visa gerar liquidez (fazer com que um ativo se transforme em dinheiro rapidamente) aos pap´eis de d´ıvida emitidos por empresas, permitindo o seu processo de capitaliza¸c˜ao. Ou seja, os investidores ”em-prestam” dinheiro para as empresas financiarem suas atividades, em troca de remunera¸c˜ao via pagamento de juros ou flutua¸c˜ao do valor da companhia, como debˆentures e a¸c˜oes, respectivamente.

• Mercado de Cr´edito: mercado em que ocorrem as opera¸c˜oes de empr´estimo, fi-nanciamento, arrendamento, em que institui¸c˜oes financeiras ou institui¸c˜oes n˜ao-financeiras realizam essas opera¸c˜oes para curto, m´edio ou longo prazo.

• Mercado Monet´ario: talvez o segmento mais popular, ´e o mercado em que ocorre o controle de inje¸c˜ao e circula¸c˜ao de moeda com o objetivo de manter a economia l´ıquida. • Mercado de Cˆambio: ´e o mercado de negocia¸c˜ao de compra e venda de moedas. Considerando que a maioria das pessoas ´e gananciosa, ou seja, visam ganhar mais dinheiro, ´e imposs´ıvel falar de retorno (quanto de lucro um determinado investimento ´e capaz de gerar) sem atrelar a vari´avel risco (probabilidade de que o retorno real seja inferior aos retornos hist´oricos e projetados).

´

E nesse momento que as ferramentas de previs˜ao de mercado entram em a¸c˜ao: quando vocˆe deseja ter mais certeza na sua tomada de decis˜ao, minimizando o risco. Este documento ser´a focado no primeiro segmento do Mercado Financeiro, o Mercado de Capitais, mais especificamente para o mercado de a¸c˜oes. A volatilidade, que ´e a medida de oscila¸c˜ao de um ativo em uma determinada janela de tempo, e pode ser entendida como o grau de dispers˜ao dos retornos do mesmo, ´e vari´avel dependente da for¸ca das massas de compradores e vendedores, ou resumidamente, da oferta e demanda pelo papel. Ou seja, se muitos investidores est˜ao vendendo tal a¸c˜ao, a tendˆencia ´e que o pre¸co dela caia. J´a no sentido contr´ario, se muitas pessoas est˜ao comprando tal a¸c˜ao, a tendˆencia ´e que o pre¸co dela suba. Como a a¸c˜ao ´e uma fra¸c˜ao da empresa, cada empresa projeta fluxos de caixa futuros at´e chegar no valor presente dela, e sendo assim, dividem pela quantidade

(18)

6 de a¸c˜oes emitidas para chegar no pre¸co de cada a¸c˜ao. ´E por isso que cada empresa possui um pre¸co diferente para o seu papel.

No Mercado, a estimativa de volatilidade dos ativos ´e uma excelente ferramenta para previs˜ao de acontecimentos. Como esse parˆametro n˜ao ´e determin´ıstico, ou seja, n˜ao ´e o cen´ario em que uma causa gera um efeito, utilizam-se modelos que envolvem S´eries Temporais ou regress˜oes lineares.

(19)

Cap´ıtulo 3

eries Temporais

3.1

Apresenta¸

ao

S´erie Temporal ´e uma cole¸c˜ao de dados armazenados de forma sequencial observados ao longo do tempo, de forma que a ordem dessas coletas seja de suma importˆancia, uma vez que, para a aplica¸c˜ao deste trabalho, o objetivo da utiliza¸c˜ao da s´erie temporal ´e achar, analisar e modelar a dependˆencia entre as observa¸c˜oes sequentes. Para isso, ´e importante coletar os dados num´ericos em intervalos de tempo constantes.

Para uma melhor compreens˜ao dessas s´eries, vale mencionar as componentes para an´alise de uma s´erie temporal.

3.2

Componentes de uma S´

erie Temporal

Para entender as s´eries temporais, alguns t´opicos precisam ser abordados. S˜ao eles: • Sazonalidade: repeti¸c˜ao de fenˆomenos em per´ıodos de tempo idˆenticos;

• Tendˆencia: parˆametro que mostra as rela¸c˜oes entre dados com a s´erie, ou seja, ocorre quando h´a aumento ou queda de longo prazo nos dados;

• Ciclo: esse parˆametro s´o pode ser percebido se for considerado um grande per´ıodo de tempo, por exemplo, d´ecadas. Pode ser entendido como uma repeti¸c˜ao de um comporta-mento ao longo da s´erie.

Para mostrar melhor as componentes de sazonalidade e tendˆencia, que s˜ao me-nos intuitivas, foi evidenciada a produ¸c˜ao mensal de leite norte-americana na figura 3.1 durante os anos de 1962 at´e 1976, e desta curva, foram separadas as duas componentes

(20)

8 inicialmente citadas. As imagens a seguir s˜ao utilizadas apenas para a representa¸c˜ao dos parˆametros citados.

(21)

9

Figura 3.1: Produ¸c˜ao de leite mensal norte-americana de 1962-1976. Retirada de: [1] Da figura 3.1, foi extra´ıda a componente de sazonalidade:

Figura 3.2: Sazonalidade na produ¸c˜ao de leite. Retirada de: [2]

A figura 3.2 mostra a produ¸c˜ao de leite sem a componente de sazonalidade. Para evidenciar a tendˆencia, obtem-se a curva da figura 3.3.

A figura 3.3 apresenta a tendˆencia da produ¸c˜ao de leite na janela de tempo citada. Esse processo pode ser observado ao realizar o c´alculo da m´edia m´ovel, por exemplo.

Uma s´erie ´e somente determin´ıstica quando a sua fun¸c˜ao matem´atica pode ser escrita somente por vari´aveis perfeitamente determin´ısticas.

Uma s´erie que apresenta a parte aleat´oria precisa ter uma componente estoc´astica, que ´e fruto de uma fam´ılia de vari´aveis aleat´orias.

Resumidamente, as S´eries Temporais se estabelecem neste documento como um modelo de previs˜ao de acontecimentos com base em dados passados.

H´a in´umeras aplica¸c˜oes de s´eries temporais, dentre elas, a previs˜ao de comporta-mento ´e uma forma de tentar ganhar dinheiro no Mercado Financeiro, buscando padr˜oes

(22)

10

Figura 3.3: Tendˆencia ao longo da produ¸c˜ao de leite. Retirada de: [3]

nos acontecimentos, por exemplo, na Bolsa de Valores, auxiliando a hora de entrar ou vender a sua posi¸c˜ao.

Em geral, quando se deseja estudar uma s´erie temporal, o interesse est´a em analisar e modelar a s´erie para ent˜ao trabalhar na previs˜ao. A an´alise de estacionariedade e an´alise de autocorrela¸c˜ao s˜ao duas formas de avalia¸c˜ao da s´erie. A primeira leva em considera¸c˜ao que a s´erie oscila, independentemente do tempo, sobre uma m´edia constante (esperan¸ca da amostra) e com uma variˆancia (grau de dispers˜ao dos dados em rela¸c˜ao ao valor espe-rado) dos dados tamb´em constante. A segunda an´alise j´a busca achar rela¸c˜oes entre as observa¸c˜oes passadas e atuais. Ap´os isso, modelos de previs˜ao podem ser aplicados, como por exemplo, implementa¸c˜ao de uma Rede Neural Artificial, RNA.

As formas e recursos que ser˜ao aqui apresentados se baseiam em ferramentas pre-sentes no curso de Engenharia de Telecomunica¸c˜oes.

(23)

Cap´ıtulo 4

Aplica¸

ao de Redes Neurais

Uma forma de tentar realizar uma previs˜ao (ato de afirmar o que acontecer´a no futuro), que corresponderia `a utopia de antever um acontecimento, ´e implementando uma RNA. Ao longo desse cap´ıtulo ser´a explicado o que ´e uma RNA e uma aplica¸c˜ao da mesma, em linguagem Python, na tentativa de previs˜ao de pre¸cos de ativos no Mercado Financeiro.

4.1

Entendendo uma Rede Neural Artificial

Para entender a modelagem da RNA propriamente dita ´e preciso estar disposto a uma certa abstra¸c˜ao, visto que existe a apropria¸c˜ao de um nome puramente humano voltado para o universo computacional. Ao implementar uma RNA, ´e poss´ıvel observar que esse modelo se traduz a um estudo puramente matem´atico em maior parte da sua abordagem, envolvendo fun¸c˜oes n˜ao-lineares, operador gradiente, entre outras ferramentas.

RNA’s s˜ao modelos matem´aticos traduzidos em t´ecnicas computacionais inspiradas e baseadas no neurˆonio (estrutura neural) de seres inteligentes e capazes de desenvolverem seu desempenho a partir do aprendizado. Assim como um c´erebro humano, uma RNA pode ter uma quantidade enorme de neurˆonio.

´

E imposs´ıvel caracterizar um modelo inspirado na estrutura cerebral de seres inte-ligentes sem, ao menos, migrarmos minimamente para o universo da Biologia.

Os neurˆonios s˜ao, basicamente, um conjunto de c´elulas que contribuem para o racioc´ınio do ser humano.

(24)

12

Figura 4.1: Representa¸c˜ao de um neurˆonio humano. Retirada de: [4]

Sua forma¸c˜ao, exemplificada de forma mais detalhada na figura 4.1, mostra os terminais de entrada, chamados de dendritos, o corpo central, e os terminais de sa´ıda, chamados de axˆonios.

Os neurˆonios podem estar conectados sequencialmente, ligando os axˆonios de um, aos dendritos dos outros. Isso possibilita a comunica¸c˜ao entre eles, denominada sinapse.

Uma sinapse ´e uma regi˜ao onde dois neurˆonios entram em contato e estabelecem uma comunica¸c˜ao atrav´es de um impulso nervoso.

A comunica¸c˜ao entre eles leva uma s´erie de fatores em considera¸c˜ao, tais como geo-metria da sinapse, tipo de neurotransmissor, polaridade da membrana, entre outros fatores que acabam fugindo do escopo deste trabalho. Esse breve resumo serve como um bom embasamento para sustentar o que ser´a apresentado aqui: o treinamento e aprendizado de uma RNA.

4.1.1

Treinamento de uma Rede Neural Artificial

Uma RNA ´e formada por v´arias unidades de processamento (neurˆonios). Essas unidades recebem sinais e esses s˜ao levados por canais que possuem pesos. Por sua vez, esses canais convergem para um somador que pondera cada sinal de entrada pelo peso do canal. Esse resultado ´e comparado a um limite, chamado threshold, e a unidade produz uma certa sa´ıda. Esse foi um dos primeiros modelos de RNA propostos, produzidos por McCullock e Pitts em 1943, que serviu de base para o desenvolvimento de diversas outras arquiteturas. Esse modelo pode ser observado na figura 4.2.

(25)

13

Figura 4.2: Modelo de unidade de McCullock e Pitts. Retirada de: [4]

A beleza da montagem de uma RNA est´a no fato de permitir um treinamento para a mesma, momento em que os pesos s˜ao ajustados de acordo com os padr˜oes de dependˆencia entre as vari´aveis. Em outras palavras, a rede ´e ajustada para obter um aprendizado mais eficiente (chegar ao objetivo de forma mais r´apida e correta) atrav´es dos exemplos mostrados para a rede.

As RNA’s s˜ao montadas atrav´es de um modelo de camadas, layers, e esses parˆ ame-tros podem ser alterados para cada aplica¸c˜ao. As camadas s˜ao, geralmente, classificadas em:

• Camada de Entrada: Onde os sinais (exemplos) s˜ao apresentados `a rede;

• Camada Escondida (Hidden Layer ) ou Camadas Intermedi´arias: onde ocorre maior parte do processamento de dados. Ao passar pela camada escondida, a rede extrai as caracter´ısticas dos dados.

• Camada de Sa´ıda: onde a rede apresenta seu resultado final. O modelo em camadas pode ser observado na figura 4.3.

(26)

14

4.1.2

Aprendizado de uma Rede Neural

Para uma RNA obter sucesso, ou seja, bom desempenho, ´e necess´ario desenvolver uma habilidade de aprendizado. Essa habilidade ´e fruto dos ajustes de peso. Esse ajuste ´e um processo chamado de treinamento.

O aprendizado ´e estabelecido quando a RNA identifica as solu¸c˜oes vi´aveis para a aplica¸c˜ao. Ou seja, achar a solu¸c˜ao vi´avel significa achar solu¸c˜oes para um problema, dadas as regras e restri¸c˜oes estabelecidas. Ao identificar um problema, uma s´erie de limita¸c˜oes surgem, que no universo matem´atico acabam sendo denominadas como restri¸c˜oes. Essas restri¸c˜oes podem ser algum n´umero (limite) que uma determinada equa¸c˜ao do problema n˜ao pode ultrapassar, por exemplo. Ap´os isso, as solu¸c˜oes que seguem tal regra s˜ao as solu¸c˜oes vi´aveis. Portanto, cabe ao algoritmo achar a melhor solu¸c˜ao desse universo de equa¸c˜oes que atendem tal restri¸c˜ao, chamada solu¸c˜ao ´otima.

Os algoritmos de aprendizado se resumem ao conjunto de regras e restri¸c˜oes defi-nidos, fazendo com que cada algoritmo se distinga atrav´es da modifica¸c˜ao dos pesos.

Existem algumas formas de aprendizado, s˜ao elas:

• Aprendizado Supervisionado: em que um agente externo mostra para a rede qual resposta ´e a certa para um dado padr˜ao de entrada. Ou seja, para uma rede acertar que um animal mostrado ´e um cachorro, uma pessoa fica expondo para a mesma um cachorro e ”dizendo” que aquele animal ´e um cachorro, para assim, a rede entender o que ´e ent˜ao um cachorro.

• Aprendizado n˜ao Supervisionado: neste tipo de aprendizado n˜ao existe um agente externo mostrando a resposta desejada. A rede se auto-organiza. ´E um tipo de abordagem em que nenhum r´otulo (padr˜ao) ´e mostrado para a rede, fazendo com que ela esteja sozinha para encontrar padr˜oes nas estradas fornecidas. Esse tipo de aprendizado pode ser um objetivo pr´oprio da rede ou um meio para atingir um determinado fim. Um exemplo disso ´e para aplica¸c˜ao de distribui¸c˜ao de produtos nas prateleiras de um mercado de acordo com o consumo de determinados grupos de cliente. A rede tentar´a separar dados em grupos semelhantes, sem saber que grupos s˜ao esses. Um resultado plaus´ıvel para esse caso ´e a divis˜ao dos clientes em um grupo que consome produtos industrializados e outro grupo que consome produtos frescos. Esse exemplo pode ser classificado como ”um meio para atingir um determinado fim”, pensando como uma estrat´egia do dono do mercado agrupar produtos semelhantes para conseguir maior n´umero de vendas, buscando maior lucro.

(27)

15 • Refor¸co: em que um cr´ıtico externo (indiv´ıduo que opera a RNA) avalia a resposta da rede, que por sua vez, aprende atrav´es da tentativa-erro, e quando erra, ´e punida por esse cr´ıtico.

Outro fator relevante no universo das RNA’s ´e o modo com que a rede corrige seus pesos. S˜ao eles:

• Modo Padr˜ao: em que a rede corrige os pesos `a medida em que ocorre uma apresenta¸c˜ao de sinal. A corre¸c˜ao se baseia somente no erro do exemplo apresentado em uma determinada itera¸c˜ao.

• Modo Batch: em que a rede s´o corrige os pesos uma vez que todos os dados de entrada (sinais) j´a foram apresentados, corrigindo atrav´es do erro m´edio do ciclo.

4.1.3

Redes Neurais Recorrentes

Para a aplica¸c˜ao que ser´a apresentada posteriormente, vale comentar a respeito das RNR, Redes Neurais Recorrentes, ou RNN (Recurrent Neural Networks) e tamb´em sobre o modelo LSTM (Long short-term memory), que foram utilizados por serem comumente aplicadas no mercado financeiro.

Uma RNR ´e uma classe de Rede Neural que cont´em loops, de forma que seja poss´ıvel processar novos inputs enquanto armazenam outras informa¸c˜oes j´a fornecidas. Uma associa¸c˜ao poss´ıvel de se fazer com um c´erebro humano ´e o fato dele n˜ao precisar formular sempre pensamentos do in´ıcio. Por exemplo, ao ler um texto ou ver um filme, o c´erebro recebe novas informa¸c˜oes e armazena as que j´a foram lidas ou vistas anteriormente, de maneira que seja poss´ıvel haver persistˆencia. Esse tipo de mem´oria faz com que as RNR sejam ideais para aplica¸c˜oes em que dados passados devam ser armazenados, como uma S´erie Temporal, objeto de estudo em quest˜ao.

Para melhor entendimento, ´e poss´ıvel comparar as arquiteturas das Redes Neurais tradicionais, por exemplo a rede feed-foward com as RNRs. Nas redes feed-foward um vetor de inputs alimenta a rede, as camadas escondidas extraem os comportamentos dos dados e, eventualmente, temos os outputs. Essa arquitetura pode ser observada na figura 4.4.

J´a na arquitetura de uma RNR ´e poss´ıvel armazenar um hist´orico de entradas, ponto imprescind´ıvel para o estudo de uma s´erie temporal. Na arquitetura feed-foward, um vetor de dados isolados ´e ´util para a rede. J´a em uma s´erie temporal, dados isolados j´a n˜ao

(28)

16

Figura 4.4: Arquitetura feed-foward. Retirado de: [5]

s˜ao mais ´uteis. No exemplo do filme, uma s´erie de fotografias ´e mostrada sequencialmente para o observador, por´em, muitas das vezes, essas fotografias isoladas n˜ao dizem muito o que est´a a acontecer no filme. Quando armazenadas, essas fotografias passam a fazer sentido para o andamento do filme. O mesmo acontece na RNR. A RNR oferece um vetor de inputs, as camadas escondidas processam os dados e se realimentam, realizando um feedback atrav´es dos context nodes, neurˆonios que formam uma camada de estados, que ret´em a mem´oria de inputs anteriores. A arquitetura de uma RNR pode ser observada na figura 4.5.

Figura 4.5: Arquitetura de uma RNR evidenciando o feedback. Retirado de: [5] Para a aplica¸c˜ao envolvendo as RNRs, foi escolhida uma rede do tipo LSTMs (Long short-term memory). As redes LSTMs s˜ao redes capazes de extrair dependˆencia de

(29)

17 longo prazo. Foram introduzidas por Hochreiter e Schmidhuber em 1997 e aperfei¸coadas posteriormente, com comportamento padr˜ao de recordar informa¸c˜oes por longo per´ıodo de tempo. Basicamente, as LSTM n˜ao possuem apenas uma camada de rede neural, as LSTM incluem um port˜ao de esquecimento, denominado forget-gate, que permite o trei-namento individual de neurˆonios, podendo ensin´a-los quais informa¸c˜oes s˜ao importantes e por quanto tempo essas informa¸c˜oes s˜ao importantes.

Outro parˆametro importante a ser mencionado ´e o modo de ativa¸c˜ao dos neurˆonios. Mas antes disso, ´e necess´ario explicitar o que ´e e por qual motivo precisa-se de fun¸c˜oes de ativa¸c˜ao. A resposta expressa deve-se ao fato da necessidade de introdu¸c˜ao de n˜ ao-linearidade, ou seja, as redes neurais podem aprender mais do que as rela¸c˜oes lineares entre vari´aveis dependentes e vari´aveis independentes, visto que deixam de estar sujeitas as restri¸c˜oes de modelos lineares, como normalidade, independˆencia e homocedasticidade (variˆancia constante dos erros). A fun¸c˜ao de ativa¸c˜ao ´e justamente uma maneira de ativar o neurˆonio, de modo que o processo se torne eficiente. Essa fun¸c˜ao avalia se a informa¸c˜ao fornecida ´e caracterizada como relevante ou se deve ser ignorada.

Considerando uma rede neural com duas camadas escondidas, temos o seguinte modelo definido pela equa¸c˜ao 4.1:

y = φ(φ((XW1)W2))w (4.1)

de forma que X seja a matriz de dados de entrada, W1 e W2 os pesos das camadas

escondidas e w os pesos da camada de sa´ıda. φ ´e um operador n˜ao-linear como a fun¸c˜ao de ativa¸c˜ao.

y = XW1W2w

y = Xa

(4.2) Se o operador φ for omitido, o que sobra ´e apenas a multiplica¸c˜ao de W1W2w,

chamada de a, ou seja, sem uma fun¸c˜ao de ativa¸c˜ao, a RNA vira um modelo de regress˜ao linear, com as restri¸c˜oes citadas anteriormente. Dito isso, a fun¸c˜ao φ ´e vista como a fun¸c˜ao de ativa¸c˜ao, podendo ser a Sigmoid, Tangente Hiperb´olica, ELU, Leaky ReLU (mostrada na equa¸c˜ao 4.3), entre outras. A fun¸c˜ao escolhida para essa aplica¸c˜ao foi a fun¸c˜ao n˜ ao-linear ReLU, que possui como principal vantagem a n˜ao ativa¸c˜ao de todos os neurˆonios ao mesmo tempo, o que permite uma maior eficiˆencia da rede.

(30)

18 A fun¸c˜ao ReLU ´e definida como o m´aximo entre zero e a entrada, ou seja:

ReLU = M ax(0, x) (4.3) ´

E poss´ıvel julgar a capacidade de previs˜ao de uma rede atrav´es da compara¸c˜ao da sa´ıda (output ) da rede com o resultado esperado. Se a rede gera uma sa´ıda com valor 10 e o resultado esperado ´e 20, a rede ”errou” por 10, que ´e a diferen¸ca entre o resultado esperado e o real. Portanto, esse ´e o erro de uma previs˜ao. Para achar a rela¸c˜ao de erros ´e necess´ario fazer uma m´edia de todos esses erros de previs˜ao juntos. Essa fun¸c˜ao dos erros ´e chamada de Fun¸c˜ao Custo e uma forma de c´alculo ´e o MSE (Mean Square Error). Dito isso, o objetivo da rede ´e prever com acur´acia, se tornando necess´ario minimizar essa Fun¸c˜ao Custo.

Para minimizar esse custo, a rede precisa saber para onde indica o maior acr´escimo dessa fun¸c˜ao, e isso pode ser calculado pelo operador matem´atico ”gradiente”. O gradiente trata sobre a maximiza¸c˜ao de uma fun¸c˜ao, por´em, o objetivo n˜ao ´e obter o m´aximo da Fun¸c˜ao Custo, e sim, o m´ınimo. Para isso, deve-se subtra´ı-lo dos pesos de maneira que o resultado real se aproxime do esperado. Os respons´aveis por calcular o gradiente da Fun¸c˜ao Custo a fim de ajustar os pre¸cos para a melhoria da previs˜ao s˜ao os Otimizadores. O Otimizador implantado no c´odigo foi o Adam, que possui maior recorrˆencia nesse tipo de abordagem para previs˜oes de pre¸co. O otimizador Adam ´e um dos que convergem mais r´apido e tamb´em ´e um dos mais utilizados com redes LSTM. J´a o tipo de perda aplicado foi o MSE, entre o que a rede testa e o que a rede treina.

O ´ultimo parˆametro relevante ´e o campo epochs, ou seja, ´epocas, que se refere a quantidade de vezes que a rede vai olhar para a amostra fornecida e realizar o treino. Denomina-se ´epoca a sess˜ao de treinamentos que a rede realiza a cada vez que uma amostra ´e apresentada para ajuste dos pesos sin´apticos e limiares da rede. O interessante disso ´e que pode ser intuitivo pensar que quanto maior o n´umero de ´epocas, melhor a capacidade de previs˜ao da rede, enquanto o que acontece na verdade, ´e achar um ”meio-termo”, nem tantas ´epocas e nem poucas ´epocas, simplesmente porque quanto menor o n´umero de vezes que a rede olha seu banco de dados, pior para seu desempenho, ao passo que se ela estuda muito seu banco de dados, a rede pode acabar se viciando e perdendo a capacidade de decis˜ao. Portanto, nessa abordagem, a rede olha para a amostra 100 vezes. Isso ser´a mostrado posteriormente.

(31)

19 A implementa¸c˜ao de uma RNA pode ser verificada no cap´ıtulo 6.

(32)

Cap´ıtulo 5

ecnicas aplicadas aos dados

financeiros

5.1

Teste de Hip´

oteses

5.1.1

Inferˆ

encia Estat´ıstica

A Inferˆencia Estat´ıstica ´e a afirma¸c˜ao baseada em n´ıvel de confian¸ca, ou seja, ´e assumido que a popula¸c˜ao (universo) ´e muito maior do que o conjunto de dados observados (amos-tra), ou seja, na medi¸c˜ao da altura m´edia dos habitantes do planeta Terra, a amostra de pessoas escolhida para representar todos os indiv´ıduos ser´a menor do que os sete bi-lh˜oes aproximados de indiv´ıduos que caracterizam o universo de habitantes. Dito isso, popula¸c˜ao ´e o conjunto de todos os elementos ou resultados sob investiga¸c˜ao. Amostra ´e qualquer subconjunto da popula¸c˜ao. Inferir ´e deduzir um resultado com base na inter-preta¸c˜ao de dados dispon´ıveis, por l´ogica, ou seja, o resultado de uma inferˆencia ´e fiel ou n˜ao dependendo da qualidade da amostra.

Aplicando ao mercado financeiro, um exemplo de inferˆencia estat´ıstica pode ser observado ao querer medir o volume negociado de uma a¸c˜ao desde quando a mesma foi listada na Bolsa de Valores. Um bom exemplo seria a a¸c˜ao PETR4 da Petrobras, que ´e a a¸c˜ao mais negociada e uma das mais antigas da Bolsa brasileira.

Neste exemplo, a popula¸c˜ao ´e o conjunto de todos os volumes negociados desse pa-pel historicamente na Bolsa e nesse estudo, ´e plaus´ıvel associar o volume di´ario negociado ao longo do tempo. Sendo assim, a escolha da amostra levar´a em conta os dias que ser˜ao

(33)

21 contabilizados para form´a-la, interessando o volume de a¸c˜oes PETR4 negociados nesses tais dias. Isso define exatamente uma vari´avel aleat´oria, um elemento que associa um ponto do espa¸co amostral a um n´umero real.

Dito isso, a popula¸c˜ao em quest˜ao pode ser representada pela vari´avel aleat´oria X, que significa o ”volume de PETR4 negociado no dia”. Como essa v.a. (vari´avel aleat´oria) ´e cont´ınua, ´e razo´avel assumir que essa densidade de probabilidades segue uma distribui¸c˜ao Normal (ser´a explicada ao longo deste cap´ıtulo na se¸c˜ao 5.1.2). Formalmente, a popula¸c˜ao em quest˜ao ´e representada por uma vari´avel aleat´oria X N(µ, σ2). Basta obter os valores de µ e σ2 para ter informa¸c˜oes completas sobre a popula¸c˜ao.

5.1.2

Teste de Hip´

oteses

O Teste de Hip´oteses ´e um instrumental estat´ıstico para tomada de decis˜ao a partir de dados experimentais ou amostrais.

Consiste em estabelecer a Hip´otese Nula (H0), que ´e a suposi¸c˜ao a ser testada, uma

hip´otese conservadora. Em geral, deseja-se rejeitar H0. E a Hip´otese Alternativa (H1),

que ´e a op¸c˜ao que resta quando H0 ´e rejeitada. Em geral, ´e o que queremos provar.

Para a realiza¸c˜ao desse processo, ´e necess´ario estabelecer uma estat´ıstica teste correta, geralmente ´e utilizado a distribui¸c˜ao Normal (Z) ou t de Student (T) e escolher o n´ıvel de confian¸ca/significˆancia do seu teste. Isso significa dar coerˆencia para uma tomada de decis˜ao justa do teste. Isso ser´a mais detalhado a seguir.

Ao trabalhar com a teoria das probabilidades, as chances de erro est˜ao sempre embutidas. Como mencionado anteriormente, ´e necess´ario fazer a escolha da distribui¸c˜ao de probabilidades que o teste em quest˜ao segue.

(34)

22

Figura 5.1: Curva Normal. Retirado de: [6]

Supondo a estat´ıstica mais cl´assica e mais utilizada para modelar fenˆomenos natu-rais, a figura 5.1 mostra a distribui¸c˜ao de probabilidades Normal ao longo da curva. Como representado nela, para esse tipo de estat´ıstica, um valor na m´edia (µ, representado por x barrado na figura 5.1) tem mais chances de acontecer, ou seja, maior probabilidade. J´a para os eventos muitos distantes da mesma, ou seja, que apresentam menores chance de acontecerem, s˜ao representados pelas caudas. Integrar a ´area abaixo da curva significa achar a probabilidade para um evento desejado, sendo assim, a integral da ´area abaixo da curva inteira ´e igual a 1. Dito isso, ´e poss´ıvel verificar na figura 5.1 o quanto de ´area da Curva de Gauss ´e compreendida em fun¸c˜ao da quantidade de desvios padr˜oes (σ) que se anda para direita e esquerda da m´edia.

Isso ´e evidenciado porque ao escolher as Hip´otese Nula e Alternativa, dois tipos de erro podem acontecer:

• Erro do Tipo I: Quando a Hip´otese Nula (H0) ´e rejeitada e a Alternativa ´e

verdadeira;

• Erro do Tipo II: Quando a Hip´otese Nula (H0) n˜ao ´e rejeitada e a Alternativa ´e

falsa;

A tabela 5.1 mostra os Erros do Tipo I e II em conjunto da importˆancia de uma boa escolha para o n´ıvel de confian¸ca e significˆancia do seu teste. Ou seja, ao arbitrar esses intervalos, as probabilidades de se cometer um Erro do Tipo I ou II andam juntas, pois, escolher um n´ıvel de confian¸ca (γ), logo um n´ıvel de significˆancia (α; γ = 1 − α), significa dizer que em α % das vezes a Hip´otese Nula ´e rejeitada quando ela ´e verdadeira,

(35)

23

Tabela 5.1: Erros do Tipo I e II. Retirado de: [8] cometendo o Erro do Tipo I.

Para reduzir as chances de ocorrer um Erro do Tipo I, intuitivamente, reduz-se o n´ıvel de significˆancia do teste (reduz α), por´em, aumenta-se a probabilidade de ocorrˆencia do Erro do Tipo II (β). Com base em [10], a potˆencia estat´ıstica do teste ´e medida justamente quando se rejeita a Hip´otese Nula e ela ´e de fato falsa (1-β).

Como falado anteriormente, as escolhas dos n´ıveis de confian¸ca e significˆancia do seu teste servem para dar coerˆencia nos seus resultados, justamente porque a significˆancia serve para ”punir” o tamanho da sua amostra em rela¸c˜ao a popula¸c˜ao para inferir qualquer coisa. Geralmente utilizam-se n´ıveis de confian¸ca de 99,9%, 99%, 95,5% e 95%, com n´ıveis de significˆancia de 0,1%, 1%, 0,5% e 5%, respectivamente, por´em para cada caso ´e necess´ario ser justo na escolha. Em outras palavras, deseja-se testar uma hip´otese colhendo uma amostra bem pequena de uma popula¸c˜ao enorme, ou seja, ´e preciso aumentar o n´ıvel de significˆancia do teste, punindo mais o mesmo, o que se traduz em aumentar o tamanho das caudas da distribui¸c˜ao, fazendo com que exista uma chance maior de rejeitar a hip´otese nula quando ela ´e verdadeira (Erro do Tipo I) visto que a representa¸c˜ao da sua popula¸c˜ao ´e dada por uma amostra bem reduzida. Essa puni¸c˜ao oferece coerˆencia na aplica¸c˜ao do teste. Uma amostra pequena representando um universo enorme de dados pode determinar significˆancia estat´ıstica ao ser testada, mesmo que no restante dos dados n˜ao coletados pela amostra n˜ao ocorra essa significˆancia. Dito isso, ´e razo´avel admitir que a chance de concluir algo errado no teste ´e maior, dado que a amostra retirada e testada representa bem pouco do universo de dados.

Por fim, para a tomada de decis˜ao ´e sustentada por um n´umero chamado p-valor ou valor p. Esse ´e o menor valor com que se pode rejeitar a Hip´otese Nula (H0) dado o

(36)

24

5.1.3

Teste T de Student

´

E necess´ario comentar brevemente sobre a distribui¸c˜ao probabil´ıstica utilizada na aplica-¸c˜ao que ser´a apresentada, que ´e a T de Student.

A distribui¸c˜ao mencionada foi elaborada por um cientista da cervejaria Guinness, corpora¸c˜ao que n˜ao permitia a publica¸c˜ao de nenhum trabalho cient´ıfico com seu nome verdadeiro. Sendo assim, William Sealy Gosset, autor da distribui¸c˜ao de probabilidades t de Student, colocou seu pseudˆonimo de Student.

A distribui¸c˜ao t ´e sim´etrica e companiforme (forma de sino), muito parecida com a distribui¸c˜ao Normal, por´em com caldas mais largas, e com dado chamado graus de liberdade (degrees of freedom). Matematicamente, o grau de liberdade ´e a dimens˜ao da amostra, n´umero de determina¸c˜oes independentes, menos o n´umero de parˆametros estat´ıs-ticos avaliados em uma popula¸c˜ao. Contextualizando, os graus de liberdade representam a quantidade de dados que se pode gastar em uma an´alise. Por exemplo, ao aumentar o tamanho da amostra, obt´em-se mais informa¸c˜oes sobre a popula¸c˜ao, logo, ocorre um aumento dos graus de liberdade. Por outro lado, ao adicionar parˆametros em um determi-nado modelo em quest˜ao (aumentando o n´umero de termos da regress˜ao), maior o gasto de informa¸c˜ao dos dados, logo, ocorre uma diminui¸c˜ao dos graus de liberdade. Quando maior esse n´umero de graus de liberdade, mais pr´oxima a distribui¸c˜ao t de Student fica da Normal.

Dito isso, o Teste T ´e um teste de Hip´oteses com uma distribui¸c˜ao de probabilidades que segue a distribui¸c˜ao t de Student. Esse teste ´e utilizado quando o tamanho da amostra ´e menor ou igual a 30 dados coletados e se desconhece a variˆancia populacional (do universo estudado), permitindo utilizar a variˆancia amostral (da fra¸c˜ao utilizada para representar o universo).

Quando se trata das Distribui¸c˜oes Normal (Z) e T de Student, esses valores s˜ao mapeados em tabelas, economizando o tempo de c´alculo. O p-valor ´e fun¸c˜ao do n´ıvel de significˆancia arbitrado para o seu teste e do grau de liberdade da sua amostra. Tendo isso, ´e poss´ıvel chegar ao seu p-valor olhando a tabela 5.2.

(37)

25

Tabela 5.2: Tabela T de Student. Retirada de: [9]

A tabela 5.2 mostra a Tabela T de Student. Por coluna se diferem os n´ıveis de significˆancia e por linha os graus de liberdade. A intersec¸c˜ao dos dois ´e o p-valor.

Cada Teste T ´e designado para um problema e podem ser separados da seguinte forma:

• Testes que comparam a m´edia de uma amostra;

• Testes que comparam a m´edia de duas amostras de tamanhos iguais; • Testes que comparam amostras de tamanhos diferentes e variˆancias iguais; • Testes que comparam amostras de tamanhos diferentes e variˆancias tamb´em

(38)

26 diferentes.

Na aplica¸c˜ao da se¸c˜ao 6.2 foi implementado o teste para compara¸c˜ao de duas amostras de tamanhos e variˆancias diferentes.

Para o Teste T de compara¸c˜ao de duas amostras com tamanho e variˆancias dife-rentes, temos as seguintes express˜oes:

t = x1− x2 Sx1−x2

(5.1) , para o valor do Teste, em que:

S x1−x2= r s12 n1+s22n2 (5.2) Para o c´alculo de graus de liberdade, temos a Equa¸c˜ao de Welch-Satterthwaite

Df = s12 n1 + s22 n2 ((s1)2 n1 )2 (n1−1) + ((s2)2 n2 )2 (n2−1) (5.3)

Um Teste de Hip´oteses apresenta um passo-a-passo da seguinte forma: 1. Defini¸c˜ao da hip´otese nula a ser testada contra a hip´otese alternativa; 2. C´alculo da estat´ıstica do teste;

3. Compara¸c˜ao com o valor cr´ıtico (de acordo com o n´ıvel de confian¸ca do teste) ou c´alculo do p-valor associado, segundo a distribui¸c˜ao probabil´ıstica que a estat´ıstica segue;

4. Conclus˜ao do Teste:

- N˜ao rejeitar H0: a amostra n˜ao fornece ind´ıcios de que H0 seja falsa, ou

- Rejeitar H0: a amostra fornece ind´ıcios de que H0 seja falsa.

Uma aplica¸c˜ao dessa ferramenta ´e, por exemplo, o teste do Efeito Segunda-Feira sobre o IBOVESPA.

5.1.4

Teste do Efeito Segunda-feira

O efeito segunda-feira tenta mostrar uma anomalia nas opera¸c˜oes di´arias, enfatizando que na segunda-feira as opera¸c˜oes n˜ao apresentam bons resultados. Um estudo feito nos anos 70 e 80 mostra que os retornos nas segundas-feiras s˜ao, na m´edia, menores que os retornos nos outros dias.

(39)

27 O IBOVESPA ´e uma carteira composta pelas a¸c˜oes com maior volume negociado na Bolsa de Valores (B3), servindo de indicador para aqueles que querem ter uma exposi¸c˜ao as a¸c˜oes (ter seu dinheiro investido nessa classe), por exemplo.

Dito isto, o Teste de Hip´oteses pode ajudar a concluir se o IBOVESPA, nos ´ultimos 5 anos, sofreu desse efeito, da seguinte forma:

- Atrav´es de uma regress˜ao linear simples, estabelecemos a rela¸c˜ao entre retorno e ´ındice IBOVESPA:

Ri,t = αi+ βi∗ IBOVi,t+ Et (5.4)

Em que Et ´e o erro associado. αi ´e o coeficiente linear e βi o coeficiente angular.

IBOVi,t representa os retornos do ´ındice de a¸c˜oes IBOVESPA. Sendo assim, αi + βi ∗

IBOVi,t ´e a sensitividade. Essa regress˜ao linear ´e conhecida no mercado como Modelo

CAPM (Capital Asset Price Model ).

- Buscar o ´ındice IBOVESPA hist´orico nos ´ultimos 5 anos, das segunda-feiras e o dos outros dias, e fazer as compara¸c˜oes nesse cen´ario.

- H0: retorno depende da segunda-feira

- H1: retorno n˜ao depende da segunda-feira

- Achando o p-valor, que ´e o menor n´ıvel de significˆancia para o qual H0pode ainda

ser rejeitado, ´e poss´ıvel concluir sobre o problema.

- Se o valor do teste for maior que o p-valor, n˜ao se deve rejeitar H0, ou seja, pode

ser que o IBOVESPA sofra do efeito segunda feira.

A implementa¸c˜ao desse teste pode ser verificada no cap´ıtulo 6.

5.2

Filtro de Wiener

Para a ´ultima t´ecnica apresentada neste documento, ser´a necess´ario o envolvimento com o universo da estat´ıstica em conjunto com o de processamento digital de sinais. A t´ecnica de filtragem de Wiener busca fazer a estima¸c˜ao e previs˜ao de sinais, podendo traduzir este ´

ultimo como s´erie temporal, atrav´es dos c´alculos de erro por MSE (Mean Square Error -Erro Quadr´atico M´edio) e utilizando um ponto dessa curva, o MMSE (Minimum Mean Square Error - Erro Quadr´atico M´edio M´ınimo).

(40)

28 Para essa aplica¸c˜ao, ser´a implementado um filtro causal, que requer dados passados, necessitando uma amostra grande desses dados.

O Filtro de Wiener busca estimar o erro atrav´es de um modelo utilizado. Em outras palavras, por se tratar de um estudo de s´eries temporais, o objetivo ´e achar rela¸c˜ao entre dados de uma amostra, ou seja, significa dizer que para um dado valor de uma amostra, esse valor tem rela¸c˜ao com n dados anteriores da amostra, ponderado por pesos diferentes, e ´e da´ı que surge o modelo. Pode-se utilizar uma rela¸c˜ao de uma, ou duas, trˆes ou n vari´aveis passadas apenas para descrever qual a rela¸c˜ao de dependˆencia entre as vari´aveis utilizadas em um determinado modelo. Por fim, chega-se ao ru´ıdo de modelagem, que pode ser apresentado como o quanto a s´erie diverge do modelo em vigor suposto.

A modelagem do Filtro de Wiener pode ser pensada de diversas formas. A escolhida para esse estudo foi a partir da estima¸c˜ao do erro.

Figura 5.2: Diagrama de blocos da estima¸c˜ao de Wiener. Retirada de: [7]

A figura 5.2 exemplifica a modelagem abordada, em que os sinais s e w representam partes do mesmo sinal. O sinal s ´e caracterizado como o valor presente de uma dado da amostra. J´a w ´e explicado como uma ”janela” do sinal, ou seja, ´e uma parcela do sinal atrasada em rela¸c˜ao a s, que ir´a se mover a medida que o dado s[n] varia.

A sa´ıda do filtro x[n] ´e descrita como:

x[n] =

N

X

i=0

aiw[n − i] (5.5)

A figura 5.3 mostra um determinado sinal amostrado, evidenciando o valor presente de s[n] e a janela de quatro dados anteriores, descrevendo w[n]. Ou seja, para esse modelo, por exemplo, o dado atual depende de quatro dados passados. Dito isso, cabe ao filtro de Wiener agora achar a melhor solu¸c˜ao via MSE a fim de se obter os melhores pesos de ai para descrever essa rela¸c˜ao, que ´e justamente o sinal x[n], visto que este ´ultimo atribui

pesos para cada dado de w[n]. Sendo assim, movendo a janela w[n], ´e poss´ıvel prever valores para determinados s[n].

(41)

29

Figura 5.3: Demonstra¸c˜ao dos sinais s e w.

A demonstra¸c˜ao matem´atica foi realizada com embasamento em alguns t´opicos abordados no livro Probability, Random Variables, and Stochastic Process, do Athanasios Papoulis [11].

Dito isso, para se estimar o erro, basta subtrair o sinal x[n] do sinal s[n], realizando os passos exibidos a seguir:

e[n] = x[n] − s[n] (5.6) ´

E preciso saber o MSE, logo, basta aplicarmos a esperan¸ca de e[n] ao quadrado:

E[e2[n]] = E[(x[n] − s[n])2] (5.7) Ao abrir x[n] como o somat´orio em fun¸c˜ao dos termos ai e o sinal w[n] deslocado,

´e necess´ario realizar o produto not´avel e fazer as arruma¸c˜oes precisas:

E[e2[n]] = E[(x2[n] − 2x[n]s[n] + s2[n])] E[e2[n]] = E[(( N X i=0 aiw[n − i]) 2 − 2 N X i=0 aiw[n − i]s[n] + s2[n])] (5.8)

Para chegar no MMSE basta fazer a derivada parcial em rela¸c˜ao a ai e igualar a

(42)

30 ∂E[e2[n]] ∂ai = E[(2( N X i=0 aiw[n − i])( N X j=0 w[n − j]) − 2 N X j=0 w[n − j]s[n])] 0 = E[2( N X j=0

ajw[n − j]w[n − i])] − 2E[w[n − i]s[n]] N

X

j=0

ajE[w[n − j]w[n − i]] = E[w[n − i]s[n]]

(5.9)

Feito isso, chega-se na auto-correla¸c˜ao de w e de w com s, podendo ser reescrito da forma:

N

X

j=0

ajRw[j − i] = Rws[i] (5.10)

Essa rela¸c˜ao vale para qualquer i = 0,...,N.

Sabendo que, para uma amostra de tamanho N, ou seja, tamanho da janela w[n]:

Rw[k] = 1 N N −1 X n=0 w[n]w[n − k] (5.11) Rsw[k] = 1 N N −1 X n=0 s[n]w[n − k] (5.12) A equa¸c˜ao (5.10) ´e a solu¸c˜ao final do filtro de Wiener, ou seja, a solu¸c˜ao busca achar os melhores pesos de forma a se obter o menor erro quadr´atico m´edio para um dado modelo de dependˆencia entre dados de amostra.

(43)

Cap´ıtulo 6

Aplica¸

oes e resultados

Este cap´ıtulo mostrar´a as aplica¸c˜oes de RNA’s na tentativa de previs˜ao de pre¸cos no mercado financeiro em linguagem Python e seus resultados, assim como a implementa¸c˜ao do teste T de Student tamb´em na linguagem Python e seus resultados. Nesta etapa ser´a poss´ıvel verificar como foi montado e executado cada c´odigo e o que se pode avaliar em cada resultado obtido.

6.1

Aplica¸

ao da RNA no Python

Para mostrar o funcionamento de uma RNA na sua forma mais genu´ına, ou seja, na programa¸c˜ao computacional, foi desenvolvido um c´odigo na linguagem Python para tentar prever uma tendˆencia de alta ou queda de pre¸cos da a¸c˜ao PETR4 (a¸c˜ao preferencial da empresa Petrobras).

Basicamente, o c´odigo engloba quatro etapas:

• Forma¸c˜ao e tratamento do banco de dados: onde ser´a feito o featuring, que ´e basicamente a adequa¸c˜ao do hist´orico de datas para a rede;

• Processamento dos dados: onde os dados se tornam utiliz´aveis;

• Implementa¸c˜ao de modelo: onde ser˜ao escolhidos os parˆametros e o tipo de RNA a ser utilizada;

• Otimiza¸c˜ao: ajuste fino para obter melhores resultados de perda e acur´acia. O c´odigo implementado foi inspirado no c´odigo de [12], e todas as adequa¸c˜oes e resultados do c´odigo ser˜ao explicitadas a seguir.

Foi utilizado o terminal Bloomberg para formar o banco de dados da RNA. Com

(44)

32 a fun¸c˜ao do excel

BDH=BDH(”PETR4 BZ Equity”, ”px last”;”02/01/2014”;”28/12/2018”) (6.1) foi poss´ıvel importar todos os pre¸cos de fechamento di´arios de PETR4 desde 02/01/2014 at´e 28/12/2018. Feito isso, um conversor de arquivo .xlsx (excel) para .csv (Comma separated-values) foi utilizado simplesmente para poder aproveitar a parcela do c´odigo do autor Vivek [12] de leitura de arquivo.

No Python, foi preciso importar as seguintes packages: • tensorflow: para especificar a arquitetura da RNA; • Pandas: para ler o arquivo em csv;

• DataProcessing: classe criada para o featuring do modelo para fazer treino e teste. O c´odigo cria uma maneira de estabelecer uma rela¸c˜ao temporal somente com os pre¸cos, sem precisar passar para a rede as datas. Ou seja, o dia, o mˆes ou o ano em que aconteceu tal pre¸co n˜ao interessa para a rede, e sim em qual sequˆencia;

• Sklearn: utilizado apenas para normaliza¸c˜ao dos dados de entrada para treino e teste. i m p o r t p a n d a s as pd i m p o r t n u m p y as np i m p o r t t e n s o r f l o w as tf fr om p r e p r o c e s s i n g i m p o r t D a t a P r o c e s s i n g fr om s k l e a r n . p r e p r o c e s s i n g i m p o r t S t a n d a r d S c a l e r

A classe DataProcessing possui trˆes fun¸c˜oes, uma que cria os vetores vazios e inclui dado `a medida que as vari´aveis s˜ao chamadas, se caracterizando como uma fun¸c˜ao de inicializa¸c˜ao. Uma fun¸c˜ao de treino e outra de teste, ambas com os parˆametros de tamanho de janelas (quantidade de pre¸cos anteriores) que precisam ser observadas. Nesse caso, a rede olha para os 10 pre¸cos anteriores para achar rela¸c˜ao de dependˆencia para o pre¸co atual.

Quando as fun¸c˜oes de treino e teste s˜ao chamadas, o programa cria colunas e as separa em blocos de 10 pre¸cos para procurar as rela¸c˜oes de dependˆencia, criando ent˜ao quatro outputs de vari´aveis: Xtrain, Y train, Xtest e Y test, que ser˜ao comentadas mais a frente.

(45)

33

c l a s s D a t a P r o c e s s i n g:

def _ i n i t _ ( self , file, t r a i n ):

se lf .fi le = pd . r e a d _ c s v (file, sep=’ ; ’) se lf . t r a i n = t r a i n

se lf . i = int( s elf . t r a i n * len( se lf .f ile) ) se lf . s t o c k _ t r a i n = sel f .fil e [0: se lf . i]

se lf . s t o c k _ t e s t = s elf .f ile [s elf . i: ]

se lf . i n p u t _ t r a i n = [ ]

se lf . o u t p u t _ t r a i n = [ ]

se lf . i n p u t _ t e s t = [ ]

se lf . o u t p u t _ t e s t = [ ] def g e n _ t r a i n ( self , s e q _ l e n ):

for i in r a n g e((len( s elf . s t o c k _ t r a i n )//s e q _ l e n )*s e q _ l e n

-s e q _ l e n - 1 ): x = np .a r r a y( se lf . s t o c k _ t r a i n . ilo c[i: i + seq_len , 0]) y = np .a r r a y([s elf . s t o c k _ t r a i n . i loc[i + s e q _ l e n + 1 , 0] ] , np . f l o a t 6 4 ) se lf . i n p u t _ t r a i n .a p p e n d( x ) se lf . o u t p u t _ t r a i n .a p p e n d( y ) se lf . X _ t r a i n = np .a r r a y( sel f . i n p u t _ t r a i n ) se lf . Y _ t r a i n = np .a r r a y( sel f . o u t p u t _ t r a i n ) def g e n _ t e s t ( self , s e q _ l e n ):

for i in r a n g e((len( s elf . s t o c k _ t e s t )//s e q _ l e n )*s e q _ l e n

-s e q _ l e n - 1 ): x = np .a r r a y( se lf . s t o c k _ t e s t . i loc[i: i + seq_len , 0]) y = np .a r r a y([s elf . s t o c k _ t e s t . ilo c[i + s e q _ l e n + 1 , 0] ], np . f l o a t 6 4 ) se lf . i n p u t _ t e s t .a p p e n d( x ) se lf . o u t p u t _ t e s t .a p p e n d( y ) se lf . X _ t e s t = np .a r r a y( s elf . i n p u t _ t e s t ) se lf . Y _ t e s t = np .a r r a y( s elf . o u t p u t _ t e s t )

No c´odigo principal as fun¸c˜oes come¸cam a ser chamadas conforme abaixo:

dfp = D a t a P r o c e s s i n g (" P E T R 4 - 2 014 - 2 018 . csv ", 0 . 9 ) dfp . g e n _ t r a i n ( 10 ) X _ t r a i n = dfp . X _ t r a i n .r e s h a p e(( 1099 , 10 , 1 ) ) s c a l e r = S t a n d a r d S c a l e r () s c a l e d _ X _ t r a i n = s c a l e r . f i t _ t r a n s f o r m ( dfp . X _ t r a i n ) Y _ t r a i n = p r o c e s s . Y _ t r a i n dfp . g e n _ t e s t ( 10 ) X _ t e s t = dfp . X _ t e s t .r e s h a p e( 109 , 10 , 1 ) s c a l e r = S t a n d a r d S c a l e r () s c a l e d _ X _ t e s t = s c a l e r . f i t _ t r a n s f o r m ( dfp . X _ t e s t ) Y _ t e s t = dfp . Y _ t e s t

A vari´avel dfp recebe a classe DataProcessing passando como parˆametro o arquivo a ser lido, com os pre¸cos da a¸c˜ao preferencial da Petrobras, e qual a parcela da amostra que ser´a utilizada para treino, no caso, 90%.

A vari´avel Xtrain ´e definida como um conjunto de 10 pre¸cos dentro dos 90% do tamanho da amostra passados para a fun¸c˜ao de treino. A vari´avel Ytrain nasce para come¸car a fazer os testes de previs˜ao, estabelecendo um par (Xtrain, Ytrain), de forma que para cada 10 pre¸cos de input (Xtrain) tem-se um output do treino (Ytrain).

(46)

Poste-34 riormente, as vari´aveis Xtest e Ytest testam o modelo com os 10% da amostra restante para valida¸c˜ao. Essas quatro vari´aveis aparecem neste ´ultimo bloco do c´odigo de forma normalizada, apenas introduzindo uma dimens˜ao a mais na mesma para poder ser lida pelo tensorflow.

Por´em, at´e ent˜ao nenhum modelo foi especificado, criado, testado e nem validado. A seguir observa-se a rede LSTM com 20 neurˆonios e uma hidden layer. A rede ´e ent˜ao alimentada com os blocos de 10 pre¸cos e utiliza fun¸c˜ao de ativa¸c˜ao ReLU.

m o d e l = tf . k e r a s . S e q u e n t i a l ()

m o d e l . add ( tf . k e r a s . l a y e r s . LS TM ( 20 , i n p u t _ s h a p e=( 10 , 1 ) , r e t u r n _ s e q u e n c e s

= Tr ue) ) m o d e l . add ( tf . k e r a s . l a y e r s . LS TM ( 20 ) )

m o d e l . add ( tf . k e r a s . l a y e r s . D e n s e ( 1 , a c t i v a t i o n=tf . nn . rel u ) )

Por fim, a fun¸c˜ao model.compile cria de fato o modelo de rede, a fun¸c˜ao model.fit treina a rede e a fun¸c˜ao model.evaluate valida o modelo.

A fun¸c˜ao model.predict realiza a previs˜ao da rede. Como a amostra vai at´e o final de 2018, primeiramente foi feita uma esp´ecie de valida¸c˜ao da previs˜ao da rede passando um vetor de 10 pre¸cos que a rede j´a viu e j´a treinou anteriormente, para prever um que a mesma tamb´em j´a viu. Posteriormente, foi realizado o teste real, passando 10 pre¸cos nunca vistos para prever de fato qual seria o pr´oximo pre¸co. Essas apura¸c˜oes ser˜ao mos-tradas nos resultados.

m o d e l .c o m p i l e( o p t i m i z e r=" ada m ", los s=" m e a n _ s q u a r e d _ e r r o r ", m e t r i c s= [’ a c c u r a c y ’])

m o d e l . fit ( s c a l e d _ X _ t r a i n , Y_train , e p o c h s=100 ) m o d e l . p r e d i c t ( X _ t r a i n[7].r e s h a p e( 1 , 10 , 1 ) )

6.1.1

Resultado da Rede Neural

Ap´os experimentar a rede diversas vezes, alguns parˆametros foram testados com o intuito de ajustar a previs˜ao para melhores resultados, como fun¸c˜ao de ativa¸c˜ao, alternando entre Sigmoid, fun¸c˜ao que assume valores entre 0 e 1 e que possui dificuldades no treinamento (devido a satura¸c˜ao da sua derivada, fazendo com que os valores tendam a zero fora de um limiar) e Tangente Hiperb´olica, fun¸c˜ao que assume valores entre -1 e 1, at´e chegar no melhor resultado com a ReLU. Outro parˆametro variado ao longo do experimento foi o n´umero de ´epocas, concluindo que o n´umero de 100 epochs realizou uma boa previs˜ao,

(47)

35 que ser´a mostrada em breve. A normaliza¸c˜ao dos vetores X train e X test foi o destaque para o bom desempenho da rede, considerando que n˜ao ´e uma rede sofisticada, ou seja, com muitos ajustes finos. Essa normaliza¸c˜ao ´e realizada subtraindo a m´edia da amostra de cada valor e dividindo sobre o desvio padr˜ao da amostra.

Figura 6.1: Treino da rede.

Na figura 6.1 ´e poss´ıvel verificar a rede treinando, mostrando a perda (loss) dimi-nuindo `a medida que as ´epocas passam.

(48)

36 A figura 6.2 mostra a primeira previs˜ao, que serviu como valida¸c˜ao da rede. Foram passados 10 pre¸cos j´a utilizados pela rede esperando que ela fosse prever o pr´oximo pre¸co de forma exata. Todas essas rela¸c˜oes de dependˆencia a rede j´a havia treinado.

Por fim, foram utilizados 10 pre¸cos sequenciais de PETR4 do mˆes de mar¸co de 2019, que a rede nunca tinha visto. O pr´oximo pre¸co que ela deveria prever era R$ 28,94, e dado que ´e uma rede sem muita robustez, a previs˜ao foi a melhor dentro dos experimentos testados.

Figura 6.3: Rede prevendo com dados nunca vistos.

A figura 6.3 mostra o vetor dos 10 pre¸cos nunca vistos pela rede sendo passados como input. A rede conseguiu prever R$ 21,54, errando por R$ 7,40 os R$ 28,94 esperados. O erro representa aproximadamente 25% do valor da a¸c˜ao. Isso pode ser melhorado.

6.2

Aplica¸

ao do Teste da Segunda-feira em Python

Para fins pr´aticos, foi elaborado um algoritmo em Python para calcular o teste de Hi-p´oteses parecido com o descrito na se¸c˜ao 5.1.4. Para n˜ao exigir muito processamento da m´aquina, ao inv´es de utilizar 5 anos de hist´orico de dados, foi utilizado o mˆes de Novembro de 2018, com elei¸c˜oes definidas e o mercado j´a otimista com o resultado. Vale mencionar que com uma amostra t˜ao grande como a de 5 anos, a probabilidade de encontrar uma significˆancia estat´ıstica ´e menor do que com a de um mˆes apenas.

O procedimento utilizado foi coletar os dados hist´oricos do mˆes de Novembro de 2018 com os fechamentos di´arios dos pre¸cos do Ibovespa nas segundas-feiras e nos outros dias da semana, exceto segunda-feira, para testar se existem os efeitos de pouca negocia¸c˜ao no primeiro dia ´util da semana.

Com a ajuda do terminal Bloomberg, foi poss´ıvel utilizar a fun¸c˜ao do excel mos-trada pela equa¸c˜ao 6.2 para fazer dois arquivos com esses pre¸cos: um arquivo com os

(49)

37 fechamentos de pre¸co das segundas-feiras e outro dos demais dias.

BDH=BDH(”IBOV Index”, ”px last”;”01/11/2018”;”30/11/2018”) (6.2)

Figura 6.4: Ibovespa de Novembro de 2018.

A figura 6.4 mostra o hist´orico de pre¸cos do ´ındice Ibovespa ao longo do mˆes de Novembro de 2018.

No Python foi feito o c´odigo do Teste T, que lˆe como input os arquivos em excel e os compara a fim de tomar a decis˜ao de rejeitar ou n˜ao a hip´otese nula (H0: n˜ao existe o

efeito segunda-feira).

Para a montagem do c´odigo, foi necess´ario instalar os seguintes m´odulos: • statistics: para os c´alculos de m´edia e desvio padr˜ao;

• math: para efetuar as ra´ızes quadradas;

• openpyxl: para o c´odigo fazer a leitura do arquivo em excel.

O c´odigo foi dividido em duas fun¸c˜oes, realizando uma programa¸c˜ao segmentada. A primeira fun¸c˜ao, denominada TesteT, recebe os dois vetores, lidos pela segunda fun¸c˜ao retrieve values, que recebe o arquivo em excel a ser lido e a janela de c´elulas que possuem as informa¸c˜oes necess´arias. A fun¸c˜ao TesteT realiza o Teste T de Student descrito acima, levando em considera¸c˜ao os cuidados em rela¸c˜ao ao tamanho da amostra e as variˆancias.

(50)

38 Abaixo ´e apresentado o c´odigo em Python:

i m p o r t s t a t i s t i c s , mat h

i m p o r t o p e n p y x l

def T e s t e T ( vec1 , v ec2 ):

r1=len( ve c1 ) s1=s t a t i s t i c s . s t d e v ( ve c1 ) m1= s t a t i s t i c s .me an( ve c1 ) r2=len( ve c2 ) s2=s t a t i s t i c s . s t d e v ( ve c2 ) m2= s t a t i s t i c s .me an( ve c2 ) d e n o m i n a d o r = m ath .s qrt((( s1**2 )/r1 )+(( s2**2 )/r2 ) ) n u m e r a d o r = m1 - m2 d f n u m e r a d o r = ( ((( s1**2 )/r1 )+(( s2**2 )/r2 ) )**2 ) d f d e n o m i n a d o r = (( (( s1**2 )/r1 )**2 )/( r1-1 ) )+(( (( s2**2 )/r2 )**2 )/( r2-1 ) ) t = n u m e r a d o r/d e n o m i n a d o r df = d f n u m e r a d o r/d f d e n o m i n a d o r r e t u r n [ t , df] def r e t r i e v e _ v a l u e s ( w o r k b o o k _ n a m e , c e l l _ r a n g e ): w o r k b o o k = o p e n p y x l . l o a d _ w o r k b o o k ( w o r k b o o k _ n a m e , d a t a _ o n l y= Tru e) w o r k s h e e t = w o r k b o o k[" P l a n i l h a 1 "] t e m p _ v e c t o r = w o r k s h e e t[c e l l _ r a n g e] v e c t o r= [ ] for li ne in t e m p _ v e c t o r: v e c t o r .a p p e n d( lin e[1]. v a l u e ) r e t u r n v e c t o r v e c t o r S e g u n d a s = r e t r i e v e _ v a l u e s (’ TCC - I B O V S e g N o v 2 0 1 8 . x lsx ’, " A7 : B10 ") v e c t o r E x S e g u n d a s = r e t r i e v e _ v a l u e s (’ TCC - I B O V e x S e g N o v 2 0 1 8 . xl sx ’, " A7 : B21 ") p r i n t( T e s t e T ( v e c t o r S e g u n d a s , v e c t o r E x S e g u n d a s ) )

Com esses parˆametros, a escolha do n´ıvel de confian¸ca do teste foi 90% (γ = 1 − α), com n´ıvel de significˆancia igual a 10%.

Os outputs do c´odigo s˜ao t, que ´e o valor do teste, e o df, que s˜ao os degrees of freedom ou grau de liberdade, explicado anteriormente. Os graus de liberdade n˜ao interferem na tomada de decis˜ao.

Ao executar o c´odigo, ser´a poss´ıvel saber se o efeito segunda-feira existe, para essa amostra de novembro. Basta verificar se a vari´avel t ´e menor do que p-valor.

6.2.1

Resultado do Teste T

Em seguida temos os outputs do teste:

(51)

39

Figura 6.5: Resultado Teste T.

teste t e os graus de liberdade. Com 4 graus de liberdade (n´umero inteiro mais pr´oximo da sa´ıda do c´odigo, aproximadamente 4.1568) e 10% de significˆancia, obt´em-se um p-valor igual 2,1318. O resultado do teste foi, aproximadamente, - 0,2978.

Como valor do teste T ´e menor que o p-valor, ´e poss´ıvel rejeitar a Hip´otese Nula com 90% de confian¸ca, mostrando que a amostra fornece ind´ıcios de que H0 seja falsa.

Em outras palavras, inferimos que o ´ındice Ibovespa n˜ao sofre do Efeito Segunda-Feira dada a amostra teste do mˆes de Novembro.

6.3

Aplica¸

ao do Filtro de Wiener

A aplica¸c˜ao do Filtro de Wiener que ser´a apresentada ´e voltada para a previs˜ao de pre¸co da Petrobras.

Para a utiliza¸c˜ao do filtro na maneira que foi descrito na se¸c˜ao 5.2, ´e necess´ario assumir uma s´erie temporal estacion´aria. Por´em, a s´erie hist´orica de pre¸cos n˜ao ´e estacio-n´aria, e para isso, foi necess´ario realizar o processo de Primeira Diferen¸ca, conhecido como First Difference, de primeira ordem. Esse processo consiste em subtrair um valor do seu anterior. A n˜ao estacionariedade da s´erie foi observada utilizando o software estat´ıstico EVIEWS, que realiza o teste Dickey-Fuller. O processo de Primeira Diferen¸ca tamb´em foi feito no software.

Esse teste foi utilizado somente para a comprova¸c˜ao da estacionariedade da s´erie e n˜ao ser´a explicado a fundo neste documento, mas, basicamente, o teste busca rejeitar a hip´otese nula em que a s´erie tenha uma raiz unit´aria, o que faz dela uma s´erie n˜ao estacion´aria.

Dito isso, atrav´es de um arquivo em excel com pre¸cos de PETR4, o EVIEWS realizou a Primeira Diferen¸ca e comprovou a estacionariedade da s´erie, permitindo a utiliza¸c˜ao da mesma para o filtro.

Referências

Documentos relacionados

In this work, improved curves are the head versus flow curves predicted based on the correlations presented in Table 2 and improved by a shut-off head prediction

Segundo o mesmo autor, a animação sociocultural, na faixa etária dos adultos, apresenta linhas de intervenção que não se esgotam no tempo livre, devendo-se estender,

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

Algumas sementes e castanhas vão ficar só nessa etapa de hidratação pois já passaram por um processo térmico no caso de algumas castanhas e nozes, outras sementes descascadas

No código abaixo, foi atribuída a string “power” à variável do tipo string my_probe, que será usada como sonda para busca na string atribuída à variável my_string.. O

psicológicos, sociais e ambientais. Assim podemos observar que é de extrema importância a QV e a PS andarem juntas, pois não adianta ter uma meta de promoção de saúde se

II - os docentes efetivos, com regime de trabalho de 20 (vinte) horas semanais, terão sua carga horária alocada, preferencialmente, para ministrar aulas, sendo o mínimo de 8 (oito)