mercado financeiro

Gráficos para análises e operações no Python

Um dos melhores métodos para realizar análise e tirar insights sobre uma determinada variável econômica ou financeira é através de uma análise gráfica. É possível criar diversos estudos de visualização com diferentes tipos de gráficos, cada qual com seu propósito para a análise. No post de hoje, iremos realizar um exercício de como podemos usar gráficos para analisar duas variáveis do mundo financeiro através do Python.

Antes de realizar a nossa análise, iremos importar as bibliotecas que utilizaremos. Além das necessárias para a análise de dados e visualização (numpy, pandas, matplotlib e seaborn), importaremos também a biblioteca yfinance para coletar nossos dados via Yahoo Finance.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import pandas_datareader.data as web
import seaborn as sns
!pip install yfinance --upgrade --no-cache-dir
import yfinance as yf
yf.pdr_override()

Aqui iremos importar duas variáveis: o dólar e o Índice Ibovespa. Queremos investigar os seus respectivos comportamentos durante o ano de 2021, e realizar uma análise comparativa e de relação entre elas.

Traçamos um gráfico de série temporal, de forma que possamos ver os períodos em que seus valores aumentam ou descressem, isso é útil pois é possível ver que há momento dos quais há uma correlação entre as duas.

dolar_ibov = web.get_data_yahoo(['^BVSP', 'USDBRL=X'],
                                start = '2021-01-01',
                                end = '2021-12-31')['Close']

dolar_ibov = dolar_ibov.dropna()

sns.set()

dolar_ibov.plot(subplots = True, figsize = (20, 6))

Para obter uma resposta sobre a correlação, podemos construir um gráfico de dispersão, traçando uma reta de regressão. Vemos que há uma correlação negativa entre a duas, com uma dispersão dos dados, bem como a forma da distribuição de ambas as variáveis.

sns.jointplot(x = 'USDBRL=X', y = '^BVSP', data = dolar_ibov, kind = 'reg')

Como forma de entender melhor a distribuição dos dados das variáveis, construímos um KDE plot para estimar a densidade de probabilidade das duas variáveis. Vemos há grande densidade em uma área no gráfico, com uma leve densidade abaixo.

sns.jointplot(x = 'USDBRL=X', y = '^BVSP', data = dolar_ibov, kind = 'kde')

Por fim, podemos traçar um gráfico de correlação móvel no tempo das duas variáveis, de forma que possamos visualizar os períodos em que estavam positivamente ou negativamente correlacionadas. Vemos abaixo a correlação móvel mensal.

dolar_ibov['USDBRL=X'].rolling(22).corr(dolar_ibov['^BVSP']).plot(figsize = (20, 6))

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

Assinar Gratuitamente