Tag

numpy 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.

Introdução ao NumPy

By | Python

O NumPy, abreviatura de Numerical Python, é a biblioteca básica mais importante para o uso da análise de dados com Python. Os recursos do uso desse pacote permitem ao usuário realizar operações matemáticas, manipulação de vetores e dados entre outras diversas funcionalidade. No post de hoje, mostremos os pontos básicos mais importante do NumPy.

Entre os principais recursos que pode se encontrar com NumPy, estão:

  • ndarray: um vetor multidimensional, que oferece operações aritméticas rápidas;
  • funções matemáticas para operações com vetores;
  • alinhamento e manipulação de dados.

ndarray

o objeto ndarray é uma classe de objeto no Python que permite a utilização de conjunto de dados como um vetor ou um conjunto de vetores, ou seja, permite realizar operações matemáticas e estatísticas, bem como também é possível manejar os dados de forma mais facilitada.

Um exemplo de calculo que podemos utilizar é multiplicar um número inteiro com um vetor de dados. Assim como na matemática, vemos que o valor escalar repete a operação em todos os valores do vetores (algo que não ocorre sem o NumPy sem definir uma operação de fluxo com for) , isto é chamado de vetorização.

import numpy as np
data = np.random.randn(2, 3)

data

# array([[-1.09422288, -0.40715412, 1.09270467],
#         [ 0.77296148, 0.48996521, -0.76444864]])

# data * 5

# array([[-5.47111441, -2.03577062, 5.46352336],
#       [ 3.86480742, 2.44982605, -3.82224319]])

data + data

# array([[-2.18844577, -0.81430825, 2.18540935],
#        [ 1.54592297, 0.97993042, -1.52889728]])

Outra questão, é que o ndarray é um vetor e necessita que os dados sejam homogêneos, ou seja, não se pode ter valores do tipo float64 junto com strings ou booleans.

data.dtype
# dtype('float64')

Para criar um array no NumPy é extremamente simples. Se utiliza array para criar um vetor a partir de uma lista.


arr1 =  np.array([1, 2, 3, 4, 5])
Para controlar o array, um modo simples de criar um vetor ordenado é utilizar arange. Para fatiar os valores, utiliza-se o colchete define o fatiamento conforme a coodernada do valor dentro do array.

np.arange(10)

arr1[1:3]

# array([2, 3])

Para criar arrays multidimensionais (como matrizes), o processo de criação segue igual a criação de um vetor, a diferença é que separamos o valores com colchetes.


arr3d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]])
arr3d
# array([[ 1, 2, 3],
#       [ 4, 5, 6],
#       [ 7, 8, 9],
#       [10, 11, 12]])
arr3d * 2

# array([[ 2, 4, 6],
#        [ 8, 10, 12],
#        [14, 16, 18],
#        [20, 22, 24]]

Para realizar cálculos estatístico, o próprio NumPy oferece meios de realizar os cálculos.


# Média
arr1.mean()

# Soma
arr1.sum()

# Desvio Padrão
arr1.std()

# Mínimo
arr1.min

# Máximo
arr1.max

Neste post apresentamos os pontos básicos do NumPy, de forma que iniciantes possam compreender o intuito da biblioteca. As possiblidades que o NumPy oferece são diversas, de modo que seja possível realizar tantas outras tarefas. Caso se interesse em meios de realizar análise de dados de forma mais compreensiva, veja nossos Cursos aplicado de Python.

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

Estruturas de Dados no Python

By | Python

O ponto inicial de aprendizado do Python, principalmente para a análise de dados, configura-se em entender os tipos de dados e suas estruturas. Essa etapa se mostra fundamental na trilha para quem inicia nesse mundo, e quem decide pular essa etapa acaba obtendo dificuldades futuras. No post de hoje iremos apresentar os pontos fundamentais dos tipos e estrutura de dados do Python, focando para análise de dados.

Tipos de dados

Os tipos de dados são os tipos dos objetos atribuídos dentro do Python. Vamos elencar quatro importantes

  • String: usualmente caracteres, envoltos de aspas  - 'Analise', 'macro', 'python!';
  • Float: são números reais separados por decimal - 4.2, 3.5, 3.8;
  • Integer: são números reais inteiros - 8, -5, 1;
  • Boolean: são valores lógicos - True, False.

Vamos realizar um exercício e ver a forma que eles se inserem dentro do Python. Iremos atribuir objetos dados e ver quais os seus tipos com a função type().


analise = 'Análise Macro'

type(analise)

# str
first_float = 8.7

type(first_float)

# float
first_integer = 5

type(first_integer)

# int
first_boolean = True

type(first_boolean)

# bool

Estruturas de dados

Agora que vimos quais são os tipos de dados, devemos entender o que ocorre quando agrupamos eles em múltiplos valores juntos. Esse agrupamento de dados possui o nome de coleção (collection). O Python, por padrão, possui diversas coleção de tipos de objetos, também é possível trabalhar com outros (como vamos ver) importando módulos.

Começaremos com a coleção lista, que compreende-se em um conjunto de valores (homogêneos ou heterogêneos) , que pode ser juntados por meio de um colchete.


lista = [5, 3, 9, 0]

type(lista)

# list

lista_ = [5, 6, 9, 'analise', True]

NumPy - Arrays

NumPy é um módulo do Python para computação numérica. As arrays do NumPy podem ser definidas como uma coleção de dados do mesmo tipo em n dimensões.  Mostraremos primeiro uma array de uma dimensão.


import numpy

array = numpy.array([5, 4, 2, 9])

type(array)

# numpy.ndarray

Como vimos, a função array do NumPy transforma uma lista de valores em uma nova estrutura de dados.

Pandas - DataFrames

Data Frames são as mais conhecida estruturas de dados das linguagens de programação focadas em análise de dados. É possível utilizar no Python através do módulo Pandas (um dos mais conhecidos do Python). O nome desse módulo é uma abreviação de panel data of econometrics. O segredo do Pandas está em poder utilizar a estrutura de dados do numpy em conjunto de suas funções para realizar a montagem e manipulação de dados.

import pandas as pd

linha_1 = numpy.array(['Luiz', 80, False])

linha_2 = numpy.array(['João', 70, True])

linha_3 = numpy.array(['Lorenzo', 85, False])


data = pd.DataFrame(data = [linha_1, linha_2, linha_3], columns = ['nome', 'peso', 'doente'])

data

Aprenda mais!

Para conhecer mais sobre a linguagem Python, e descobrir como você pode realizar sua aplicação no mundo real, veja nossos cursos de Estatística usando R e Python, e R e Python para Economistas.

____________________

Oferta Especial!

No próximo dia 17, das 9h às 19h da manhã, você terá a chance de participar do pré-lançamento do treinamento Análise de Dados Macroeconômicos e Financeiros no R. Para concorrer a uma das vagas com desconto, acesse o link e conheça os detalhes.

____________________

 

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

Assinar Gratuitamente