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