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'])
- 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