Tag

seaborn Archives - Análise Macro

Saindo do Excel para o R e Python

By | Hackeando o R, Python

Para aqueles que desejam realizar o processo de análise de dados, o Excel pode ser útil, porém, é possível melhorar ainda mais esse processo utilizando o R e Python. Neste post de hoje, mostraremos para os usuários do Excel como é fácil realizar uma análise exploratória de dados, seguindo o procedimento de avaliar as estatísticas descritivas e a visualização de dados, obtendo resultados que podem ser adquiridos dentro do Excel, porém, de forma simplificada e rápida utilizando as linguagens R e Python.

R e Python são linguagens que se tornaram famosas pelo seu uso no processo de Análise de Dados, simplificando todo o processo de coleta, limpeza, visualização, modelagem e comunicação. De fato, as duas linguagens são diferentes, principalmente em seus propósitos, porém, se encaixaram muito bem na área. O interessante do R e do Python é que ambos são open source, ou seja, qualquer usuário pode criar pacotes e realizar sua divulgação, o que permite as soluções de diversos problemas possam ser compartilhados mundo afora.

Através deste mecanismo de criação de pacotes, tanto R e Python tiveram aqueles que mais se destacaram e que auxiliam no processo de análise exploratória de dados. Enquanto o R possui o Tidyverse (que na realidade é uma junção de diversos pacotes). O Python possui o numpy, o pandas e o matplotlib/seaborn para realizar o processo.

Nos exemplos abaixo, utilizaremos os pacotes citados, além de outros, para mostrar aos usuários do Excel como é fácil utilizar o R e o Python. O dataset utilizado como exemplo será o mpg, que traz informações sobre carros produzido no EUA, Asia e Europa na década de 70 e 80 e suas respectivas características. Você pode baixar o arquivo em .xlsx do mpg por aqui para poder reproduzir o código abaixo.

Análise Exploratória no R

Para realizar a análise exploratória no R utilizaremos três pacotes importante para realizar a manipulação, obter as estatísticas descritivas e auxiliar no processo de visualização de dados.

O primeiro passo para realizar a análise é importar a planilha do dataset no R utilizando a função read_excel(). Em seguida, devemos investigar a estrutura dos dados e suas variáveis, vasculhando as colunas e as observações do mesmo. Ao termos uma ideia de como é o Data Frame, selecionamos as colunas de interesse que iremos utilizar.

O resto do processo é analisar através das estatísticas descritivas e sumarização a configuração dos dados. Esse processo deve ser necessário para tirar insights e responder dúvidas: Em média, qual o peso dos carros? Os pesos dos carros variam muito? Há valores discrepantes nesta variável? Se separarmos por origem dos carros, o padrão de cada variável mudará? Esse formato de perguntas são necessários em qualquer análise exploratória, e auxilia também no processo de modelagem.

Nos códigos acima calculamos valores preciosos sobre as estatísticas descritivas do dataset. Primeiro realizando este cálculo para todas as variáveis como um todo, e depois, separando-as por categorias da origem dos carros. Veja que no processo utilizamos tanto o {dplyr} e o {skimr} (e os dois juntos) para obter os resultados.

Abaixo, o processo de análise também seguirá com as mesmas perguntas, porém, utilizaremos de métodos gráficos para obter a distribuição e o relacionamento das variáveis com o pacote {ggplot2}.

Análise Exploratória no Python

No Python, o processo seguirá o mesmo, com as mesmas perguntas, porém, obviamente, utilizaremos formas diferentes para calcular as estatísticas descritivas e a visualização. A intuição é a mesma, o que muda aqui é somente a sintaxe.

Importaremos os dataset com a função read_excel do pandas e inspecionaremos os dados para em seguida selecionar as variáveis de interersse.



Realizamos o processo de análise de dados sumarizando as estatísticas descritivas e separando os valores por categorias de origem do carros.

Por fim, visualizamos a distribuição e o relacionamento entre as variáveis do dataset.

Quer saber mais?

Veja nossos cursos de R e Python para Análise de dados. Também veja nossa trilha de Ciência de dados.

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

By | mercado financeiro

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

Python: Visualizando dados com Matplotlib e Seaborn

By | Python

O Python é uma linguagem que tem a notoriedade de ser amplamente utilizada no mundo da análise de dados em geral. Esse ponto forte não se dá somente por sua força na realização de cálculos, de forma rápida e fácil, mas também pela possibilidade de criar gráficos úteis para a análise dos dados e na comunicação de resultados. No post de hoje, mostraremos duas bibliotecas importantes do Python para a criação de gráficos: Matplolib e Seaborn.

Primeiro carregamos as bibliotecas necessárias para que possamos trabalhar com os dados no Python.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
# !pip install python-bcb
from bcb import sgs

Para os exemplos dos gráficos iremos importar os dados através do Sistema Gerenciador de Séries do Banco Central. Utilizaremos duas séries: a variação do IPCA mensal e o desemprego medido pela PNADC.

ipca = sgs.get({'IPCA' : 433}, start = "2010-01-01")
desemprego = sgs.get({'desemprego' : 24369})
data = desemprego.merge(ipca, on = 'Date', how = 'left')

Matplotlib

O Matplotlib é uma biblioteca do Python com a funcionalidade de criar gráficos 2D. Tem como ponto positivo a variedade de gráficos e formas de construção em conjuntos com diversas bibliotecas para análises de dados e entre outros formatos.

Matplotlib transformas os dados em figuras, cada uma contendo uma ou mais eixos, especificando os pontos gráficos em coordenadas x-y. Para cada tipo de gráfico existe um função específica, que a depender da forma em que os dados necessitam se dispor no gráfico, deve ser indicado pelos seus argumentos.

Vemos um exemplo com a série da variação mensal do IPCA. Como a data se insere dentro do índice do data frame, e existe uma única coluna contendo os dados, o plot do Matplotlib reconhece automaticamente como devem ser utilizados os eixos, sendo apenas necessário especificar os dados na função.

O resultado é um gráfico de série temporal em que o eixo x são as datas ordenadas e o eixo y corresponde aos valores do IPCA mensal. A cada mês demonstra a variação desses valores.


plt.plot(ipca)
plt.style.use('default')

Continuando com o mesmo data frame, vemos agora um gráfico de Histograma, que demonstra a frequência de valores da nossa série. Quanto mais frequentes determinado valores, maior será a barra denotada pelo eixo y.  Vemos que os valores entre 0,25% e 0,50% são os mais recorrentes para o IPCA mensal. Como queremos apenas um vetor de dados para criar este gráfico, acessamos a coluna IPCA para que seja possível utilizar o gráfico.
O Matplotlib também possibilita realizar mudanças estéticas e textuais nas figuras. Vamos realizar algumas mudanças:

plt.hist(x = ipca['IPCA'],
         color = "darkblue",
         bins = 20)
plt.title("valores de jan de 2010 a jan de 2022")
plt.suptitle("Histograma da variação mensal do IPCA")
plt.style.use('ggplot')

Podemos ver uma relação entre duas variáveis a partir de um gráfico de dispersão. Vemos qual a relação entre o desemprego e o IPCA.

plt.scatter(x = data['desemprego'], y = data['IPCA'])
plt.title("Relação Desemprego x IPCA")
plt.style.use('classic')

Seaborn

Outra biblioteca muito utilizada para a construção de gráficos com o Python é o Seaborn, que é baseado no Matplotlib e provê uma interface mais elaborada para construir gráficos com enfoque estatístico.
O Seaborn possui como propósito a simplicidade de construir um gráfico com enfoque para análise de dados, sem dar a preocupação ao usuário de ficar se preocupando com detalhes visuais.
Iremos repetir os gráficos construídos anteriormente, porém, com o Seaborn.
Assim como o Matplotlib, o Seaborn possui uma função para cada gráfico, a diferença está nos argumentos e os elementos padrões.
Vemos como podemos criar um gráfico de série temporal da variação mensal do IPCA.
sns.set_theme()
sns.lineplot(data = ipca)

Com o Seaborn, podemos ver a melhora gráfico e de elemento para o Histograma.

sns.displot(data = ipca, x = 'IPCA', kde = True)

E também a facilidade criar gráficos de correlação com retas de regressão.

sns.regplot(data = data, x = 'desemprego', y = 'IPCA')

Quer aprender mais sobre Python?

Confira nossos cursos de Estatística com Python e Python para Economistas. Nestes cursos elencamos os principais pontos para conhecer o mundo do Python e a aplicação de problemas reais.

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

Assinar Gratuitamente