Aplicação de Regressão Logística no mercado financeiro

O objetivo do post de hoje será realizar a aplicação da Regressão Logística para prever a direção do movimento do preço de um ativo financeiro no Python.

Regressão Logística

O recurso que temos em mãos é poder estimar a probabilidade associada a ocorrência de determinado evento, usualmente binário. Como a ideia é estimar uma probabilidade, os resultados estarão contidos entre 0 e 1.  Se utiliza do estimador de máxima verossimilhança, como forma de maximizar a probabilidade de ocorrência da amostra, dado os coeficientes das variáveis independentes.

Por meio da regressão logística, podemos estimar a probabilidade da direção do preço do ativo se mover positivamente ou negativamente, utilizando como inputs a direção defasada do preço.

Aplicação

Vamos utilizar como exemplo a ação do ITUB4 no periodo de 2019 até 21/12/2022, no qual coletamos os dados por meio do pandas_datareader. Para a constituição dos inputs, utiliza-se apenas os dados do preço de fechamento para transforma-los em log-retornos e em seguida obtém o direcionamento do movimento do preço.


import pandas as pd
import numpy as np
import pandas_datareader.data as pdr
!pip install yfinance --upgrade --no-cache-dir
import yfinance as yf
yf.pdr_override()

</pre>
# datas
inicio = '2019-01-01'
fim = '2022-12-21'

# ticker
symbol = 'ITUB4.SA'

# importa os dados
data = pdr.get_data_yahoo(tickers = symbol,
                        start = inicio,
                        end = fim)[['Close']]

# Log retornos
data['returns'] = np.log(data / data.shift(1))

# Direção dos retornos (positivo/negativo)
data['direction'] = np.sign(data['returns'])
Em seguida, iremos construir funções para aplicar
  • a defasagem do preço/retorno de fechamento;
  • transformar o valor da direção do preço/retorno em binário, obtendo quatro possíveis combinações (0, 0), (0, 1), (1, 0), (1, 1).
  • aplicação do modelo e previsão usando o sklearn;
  • backtest vetorizado.

A construção de todos os procedimentos acima você pode obter fazendo parte do Clube AM, o repositório especial de códigos da Análise Macro.

Como resultado obtemos o seguinte resultado da aplicação da Regressão Logística para o ativo utilizado, em que returns refere-se aos retornos caso tivesse comprado somente o ativo, e strat_log_return a estratégia do modelo.

_____________________________________

Quer aprender mais?

Seja um aluno da nossa trilha de Macroeconomia Aplicada e aprenda a criar projetos voltados para a Macroeconomia

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como tratar dados no Python? Parte 5: renomeando colunas

Como dar novos nomes significativos para as colunas em uma tabela de dados usando Python? Neste tutorial mostramos os métodos de renomeação de colunas disponíveis na biblioteca pandas, que tem como vantagem sua sintaxe simples e prática.

Como tratar dados no Python? Parte 4: operações por grupos

Como mensalizar dados diários? Ou como filtrar os valores máximos para diversas categorias em uma tabela de dados usando Python? Estas perguntas são respondidas com os métodos de operações por grupos. Neste tutorial mostramos estes métodos disponíveis na biblioteca pandas, que tem como vantagem sua sintaxe simples e prática.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.