Análise Exploratória de Dados
Letícia Portella
@leportella
@leleportella
leportella.com
Exploratória?
A análise exploratória de dados não pode ser a história toda, mas nada serve como a pedra fundamental - como um primeiro passo
John Tukey
- Detecação de erros
- Checagem de hipóteses
- Determinação de relação entre variáveis
- Determinação de relações grosseiras entre variáveis de entrada e de saída
- Seleção preliminar de modelos e variáveis
- Determinar a necessidade de novas variáveis
O que eu preciso?
Utilizando os módulos
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from datetime import date
Começando pelo começo...
Começando pelo começo...
import pandas as pd
ano2016 = pd.read_csv('./orcamento_estado_2016.csv')
De CSV para DataFrame!
ano2016 = pd.read_csv('./orcamento_estado_2016.csv')
ano2015 = pd.read_csv('./orcamento_estado_2015.csv')
ano2014 = pd.read_csv('./orcamento_estado_2014.csv')
ano2016.head()
... mas 3 variáveis foram geradas!
ano2016 = pd.read_csv('./orcamento_estado_2016.csv')
ano2015 = pd.read_csv('./orcamento_estado_2015.csv')
ano2014 = pd.read_csv('./orcamento_estado_2014.csv')
... sem problemas!
orcamento = pd.concat([ano2016, ano2015, ano2014])
Hora de arrumar a casa!
As datas devem ser... datas!
meses = []
for item, linha in orcamento.iterrows():
ano = linha['ano']
mes = linha['mes']
data = date(ano, mes, 1)
meses.append(data)
orcamento['data'] = pd.Series(meses).values
orcamento.head()
Séries temporais!
orcamento = orcamento.sort_values(by='data')
Colunas desnecessárias devem ser removidas
orcamento.drop(['ano', 'mes'], inplace=True, axis=1)
Lembre-se do seu coleguinha ao criar variáveis!
orcamento = orcamento.rename(
columns={
'vl_inicial': 'valor_inicial',
'vl_empenhado': 'valor_empenhado',
'vl_atualizado': 'valor_atualizado',
'vl_liquidado': 'valor_liquidado',
'vl_pago': 'valor_pago',
}
)
E por que tudo isso?
Análises Gráficas
Porque olhar para os dados?
N = 11
Média em X = 9,0
Variância em x = 11,0
Média em Y = 7,5
Variância em Y = 4,125
Desvio Padrão = 1,236
Correlação = 0,816
Equação da Reta = 3 + 0,5x
Quarteto de Anscombe
N = 11
Média em X = 9,0
Variância em x = 11,0
Média em Y = 7,5
Variância em Y = 4,125
Desvio Padrão = 1,236
Correlação = 0,816
Equação da
Reta = 3 + 0,5x
Olhe para seu dado!
fig = plt.figure(figsize=(15, 5), dpi=100)
plt.plot(orcamento['data'], orcamento['valor_liquidado'], 'r')
plt.title('Valor Liquidado - Orçamento do Governo de Alagoas - 2014 a 2016')
plt.ylabel('Gastos em Reais')
Pense rápido!
Quanto vale isso?
645806565.3220588
Pense rápido!
Quanto vale isso?
645,80 mi
Você sempre pode achar alguma "limpeza"que precisa ser feita no meio do processo!
Tratando os milhões
colunas = ['valor_inicial', 'valor_empenhado',
'valor_atualizado', 'valor_liquidado',
'valor_pago']
for coluna in colunas:
valor_em_milhoes = []
for item, linha in orcamento.iterrows():
valor_linha = linha[coluna]
valor_em_milhoes.append(valor_linha/10**6)
nome_variavel = '{}_milhoes'.format(coluna)
variavel = pd.Series(valor_em_milhoes)
orcamento[nome_variavel] = variavel.values
Tipos de Análises
Univariadas
Gráficas
Univariadas
Não-Gráficas
Multi-variadas
Gráficas
Multi-variadas
Não-Gráficas
Univariadas Não-gráficas
Tendência Central: Média, Mediana, Moda
Tendência de distribuição: variância, desvio padrão e range interquartil
Assimetria e curtose
Univariadas Não-gráficas
liquidado_media = orcamento['valor_liquidado_milhoes'].mean()
liquidado_mediana = orcamento['valor_liquidado_milhoes'].median()
liquidado_variancia = orcamento['valor_liquidado_milhoes'].var()
liquidado_desvio_padrao = orcamento['valor_liquidado_milhoes'].std()
Univariadas Gráficas
Multivariadas
E muito mais!
Análise por Contexto
Mapas de Calor (Heatmaps)
Mapas de Localização
Parece simples?
Próximos passos...
Modelagem e Algoritmos
Qual pergunta você deseja responder?
Questão ou Problema
Aquisição dos dados
Preparação dos dados
Analisar e explorar o dado
Modelar, prever e responder as perguntas
Visualizar, apresentar e reportar os resultados
Letícia Portella
@leportella
@leleportella
leportella.com
Análise Exploratória de Dados
By Leticia Portella
Análise Exploratória de Dados
- 1,749