10 Explore os seus dados

Existem dois grandes motivos para você explorar os seus dados antes de realmente começar uma análise mais profunda:

  • Conhecer um pouco mais dos dados que você irá trabalhar. Isso pode te ajudar a eliminar conceitos formados simplesmente pelo achismo e realmente começar a analisar os números. Ao explorar e conhecer melhor os dados, você também estará mais familiarizado com os dados e será mais fácil planejar ou, quando necessário, adaptar o seu projeto.

  • Verificar possíveis erros ou valores inconsistentes nos seus dados. É nessa fase de análise exploratória que você irá descobrir caso seus dados possuam valores ilógicos ou caso a sua variável numérica esteja classificada como texto, o que iria te impedir de realizar cálculos com ela.

Nesse capítulo irei mostrar os principais passos de uma Análise Exploratória.

Primeiramente, você deve ler os seus dados no RStudio. Como esse passo já foi explicado no Capítulo 5, vamos pular essa parte.

Vamos trabalhar com um dataset bem conhecido na Ciência de Dados, seu nome é iris. O dataset possui as medidas de 150 flores pertencentes a 3 diferentes espécies.

Para explicar um pouco sobre o Dataset, já vou usar uma função que pode ser utilizada na sua exploração: a função names().

Usamos essa função para conhecer os nomes das variáveis (colunas) do dataset.

10.1 Nome das colunas

names(iris)
## [1] "Sepal.Length" "Sepal.Width"  "Petal.Length" "Petal.Width"  "Species"

A primeira coluna representa o comprimento da sépala da flor (“Sepal.Length”), já a segunda coluna é largura da sépala (“Sepal.Width”).

A terceira coluna mostra o valor do comprimento da pétala (“Petal.Length”) e a quarta a largura da pétala (“Petal.Width”).

A última coluna indica qual a espécie da flor.

10.2 Estrutura do Dataset

Possivelmente este será o primeiro comando que você irá executar ao receber um dataset novo str(). A função str() mostra qual a estrutura de um objeto.

str(iris)
## 'data.frame':    150 obs. of  5 variables:
##  $ Sepal.Length: num  5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
##  $ Sepal.Width : num  3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
##  $ Petal.Length: num  1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
##  $ Petal.Width : num  0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
##  $ Species     : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

Então, de forma simples, podemos ver que temos um data frame com 150 observações e 5 variáveis.

Além disso, já sabemos que as 4 primeiras variáveis são numéricas (num) e a variável Species é categórica (Factor) e possui 3 diferentes categorias (Factor w/ 3 levels).

10.3 O começo e o final do seu conjunto de dados

Se tiver algum problema na importação dos seus dados para o R/Rstudio, é bem provável que você consiga notar isso avaliando as primeiras ou as últimas linhas de seu conjunto de dados.

# As primeiras linhas do seu conjunto de dados
head(iris)
##   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1          5.1         3.5          1.4         0.2  setosa
## 2          4.9         3.0          1.4         0.2  setosa
## 3          4.7         3.2          1.3         0.2  setosa
## 4          4.6         3.1          1.5         0.2  setosa
## 5          5.0         3.6          1.4         0.2  setosa
## 6          5.4         3.9          1.7         0.4  setosa
# As últimas linhas do seu conjunto de dados
tail(iris)
##     Sepal.Length Sepal.Width Petal.Length Petal.Width   Species
## 145          6.7         3.3          5.7         2.5 virginica
## 146          6.7         3.0          5.2         2.3 virginica
## 147          6.3         2.5          5.0         1.9 virginica
## 148          6.5         3.0          5.2         2.0 virginica
## 149          6.2         3.4          5.4         2.3 virginica
## 150          5.9         3.0          5.1         1.8 virginica

10.4 Frequência

A frequência é utilizada para conhecer melhor as variáveis categóricas. Porém, também é muito importante para encontrar erros em nossos dados.

Para encontrar erros utilizando a frequência, pressupõe-se que você tenha algum conhecimento prévio dos dados e possa assim identificar frequências discrepantes em alguma categoria. Também pode ser o caso de notar que uma das categorias deveria estar em seu conjunto de dados e não está.

Primeiramente, iremos utilizar a função table() para calcular a frequência de cada categoria da variável Species.

table(iris$Species)
## 
##     setosa versicolor  virginica 
##         50         50         50

A frequência também pode ser calculada utilizando o pacote dplyr:

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
iris %>%
  count(Species)
##      Species  n
## 1     setosa 50
## 2 versicolor 50
## 3  virginica 50

Caso não se lembre do operador pipe (%>%), releia a última parte do Capítulo de Manipulação de Dados com o dplyr - Capítulo 7.

10.5 Estatísticas descritivas básicas

A frequência mostrada no item anterior é útil para variáveis categóricas. Porém, para variáveis numéricas, faz muito mais sentido que se calcule algumas estatísticas básicas.

Repito, essa exploração tem dois objetivos: conhecer melhor os seus dados e prevenir que o conjunto de dados tenha algum valor discrepante que seja totalmente ilógico (ou seja, um erro).

As variáveis numéricas do conjunto de dados iris são: Sepal.Length, Sepal.Width, Petal.Length e Petal.Width.

As estatísticas básicas podem ser simplesmente calculadas pela função summary

summary(iris)
##   Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
##  Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
##  1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
##  Median :5.800   Median :3.000   Median :4.350   Median :1.300  
##  Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
##  3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
##  Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
##        Species  
##  setosa    :50  
##  versicolor:50  
##  virginica :50  
##                 
##                 
## 

Portanto, a função retornou as seguintes estatísticas para as variáveis numéricas:

  • Valor mínimo
  • 1º quartil (Valor que é maior do que 25% dos dados e menor do que os 75% restantes)
  • Mediana (Valor que é maior que 50% dos dados e menor do que os 50% restantes)
  • Média
  • 3º quartil (Valor que é maior do que 75% dos dados e menor do que os 25% restantes)
  • Valor máximo

Para a variável categórica Species, foram retornadas as frequências de cada categoria.

10.6 Gráficos usados na Análise Exploratória

Existem dois gráficos muito comuns para explorar uma variável e visualizar a distribuição de seus dados:

  • Histograma
  • BoxPlot

10.6.1 Histograma

O Histograma é um gráfico de frequência e mostra onde há maior concentração de valores.

Esse é o histograma para a variável Sepal.Length:

hist(iris$Sepal.Length)

10.6.2 Boxplot

O Boxplot (ou gráfico de caixa) representa graficamente o valor mínimo, o 1º quartil, a media, o 3º quartil e o valor máximo de uma variável.

Esse é o Boxplot para a variável Petal.Width:

boxplot(iris$Petal.Width)

www.luisotavio.pro