10 October, 2018

Dados

  • Podem ser representados de diferentes formas
  • Representação hierárquica. Ex.: árvore genealógica
  • Representação tabular. Ex.: pessoas, com peso, altura e idade

Dados tabulares

  • Cada linha é uma observação ou caso
  • Cada coluna é uma variável
  • Na estatística, estamos interessados nas características das variáveis e nas relações entre as variáveis

Dados tabulares

## Warning: package 'bindrcpp' was built under R version 3.3.2
genero idade altura exercicio pulsacao
F 18.250 173.00 Algum 92
M 17.583 177.80 Nenhum 104
M 16.917 NA Nenhum 87
M 20.333 160.00 Nenhum NA
M 23.667 165.00 Algum 35
F 21.000 172.72 Algum 64
M 18.833 182.88 Frequente 83

NA

  • No R, NA indica um valor faltante, isto é, um valor que não existe ou não foi coletado

Variáveis

Uma variável pode ser:

  • categórica
    • nominal (operações: igual ou diferente)
    • ordinal (operações: maior ou menor)
  • numérica
    • discreta (ex.: quantidade)
    • contínua (ex.: tempo)

Análise de dados

É o processo de inspecionar, limpar, transformar e modelar dados com o objetivo de descobrir informação útil, sugerindo conclusões e dando suporte à tomada de decisão

Etapas da análise de dados

  • requisitos
  • coleta
  • limpeza e transformação
  • análise exploratória
  • modelagem / análise
  • comunicação dos resultados

Requisitos

  • Quais são meus objetivos e que questões eu quero responder?
  • De quais dados preciso para responder às questões?
  • De que forma os dados devem estar representados?

Coleta: abordagens

  • Manuais
    • Formulários
    • Entrevistas
    • Observação
  • Automáticas
    • Instrumentação de software (software que registra o que o usuário faz)
    • Download de arquivos (ex.: dump de banco de dados, exportar como XML…)
    • Acesso a APIs remotas (ex.: GitHub API, Travis CI API)
    • Crawling (pegar informações de páginas na web)

Coleta: fontes de dados

  • Código-fonte (ex.: Java, C, Python)
  • Sistemas de controle de versão (ex.: Git, Subversion)
  • Gerenciadores de tarefas/bugs (ex.: Bugzilla, Redmine, Jira, GitHub)
  • Sistemas de revisão de código (ex.: Gerrit, Review Board)
  • Sistemas de integração contínua (ex.: Jenkins, Travis CI, GitLab CI)
  • Sites de perguntas e respostas (ex.: StackOverflow)
  • Listas de discussão, fóruns e bate-papo (ex.: Mailman, IRC, )
  • Sites e wikis
  • e outros…

Coleta

  • Coleta de dados históricos pode ser difícil
  • Na disciplina vamos usar conjuntos de dados já coletados
  • Alguns conjuntos de dados prontos para analisar:

Coleta: exemplo

Limpeza

O que fazer com dados…

  • incompletos?
    • Ex.: não sei de qual versão é este bug.
  • inconsistentes?
    • Ex.: Quem consertou o bug? Commit diz Fulano, bug diz Sicrano.
  • que possuem múltiplas representações?
    • Ex.: nome de usuário em SCM, issues e e-mails. “Será que os usuários que mais enviam e-mails introduzem mais bugs no código-fonte?”
  • extremos? (outliers)
    • Ex.: Fulano consertou 2 mil bugs em uma hora

Transformação

  • Cálculos simples
    • Ex.: Calcular densidade de bugs a partir de bugs e LOC.
  • Operações básicas de bancos de dados
    • Ordenação, filtragem, junção…
  • Reshaping
  • Agregação de dados
    • Contagem, soma, média…
  • Recuperação de informação
    • Extrair dados quantitativos a partir de texto
    • expressões regulares, tf-idf, latent semantic analysis, word cloud, ngrams

Modelagem

  • Tirar conclusões a partir dos dados
  • Estabelecer causas e efeitos
  • Criar um modelo do fenômeno estudado
  • (Será tema de outras aulas)

Comunicação de resultados

  • Texto
  • Tabelas
  • Gráficos
  • O objetivo é informar, não enganar!

Comunicação de resultados: visualização

  • O humano não é bom em detectar padrões em conjuntos de muitas informações
  • A não ser que essa informação seja apresentada de forma visual
  • Visualização significa criar imagens para comunicar informações

Comunicação de resultados: visualização