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