Visualização e Análise Exploratória de Dados (EDA) em R
Hellen Sonaly Silva Alves
hellensilva.estat@gmail.com
http://lattes.cnpq.br/4845253626067527
Introdução
A Análise Exploratória de Dados (Exploratory Data Analysis – EDA) é uma etapa fundamental em Estatística e Ciência de Dados. Antes de aplicar testes estatísticos, ajustar modelos ou tirar conclusões, é essencial compreender a estrutura e as características dos dados.
Por meio da EDA, buscamos responder a perguntas como:
- Como as variáveis estão distribuídas?
- Existem valores faltantes ou inconsistências nos dados?
- Há presença de outliers?
- Quais são as relações entre as variáveis?
- Existem diferenças relevantes entre grupos?
Neste tutorial, realizaremos uma Análise Exploratória de Dados
utilizando o dataset iris, que já vem
disponível por padrão no R. O objetivo é apresentar, de forma prática,
algumas das principais técnicas e visualizações utilizadas nessa etapa
inicial da análise de dados.
Análise
Dataset
Antes de iniciar a análise exploratória, é necessário instalar e
carregar os pacotes que serão utilizados ao longo do tutorial. Neste
exemplo, usaremos os pacotes dplyr para
manipulação de dados e ggplot2 para
visualização.
## package 'dplyr' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\helle\AppData\Local\Temp\RtmpmKKW2L\downloaded_packages
##
## There is a binary version available but the source version is later:
## binary source needs_compilation
## ggplot2 3.5.1 4.0.1 FALSE
Em seguida, carregamos o conjunto de dados iris, que já
está disponível por padrão no R, e visualizamos as primeiras observações
para entender sua estrutura inicial.
Visualizando as primeiras linhas
## 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
Entendendo a estrutura dos dados
Antes de avançar para visualizações e análises mais detalhadas, é importante compreender a estrutura do conjunto de dados. Para isso, começamos inspecionando os tipos das variáveis e um resumo estatístico das observações.
## '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 ...
## 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
##
##
##
A função str() permite identificar:
- O número de observações e variáveis do dataset;
- O tipo de cada variável (numérica ou categórica);
- A forma como os dados estão organizados.
No dataset iris, observamos que:
- As variáveis Sepal.Length, Sepal.Width, Petal.Length e Petal.Width são numéricas;
- A variável Species é categórica (fator), indicando a espécie da flor.
Já a função summary() fornece estatísticas descritivas
básicas:
- Para variáveis numéricas: mínimo, primeiro quartil, mediana, média, terceiro quartil e máximo;
- Para variáveis categóricas: a contagem de observações em cada categoria.
Essas informações ajudam a ter uma visão geral da distribuição dos dados e a identificar possíveis assimetrias ou valores extremos.
Além disso, é fundamental verificar a presença de valores ausentes, pois eles podem impactar análises posteriores e a aplicação de modelos estatísticos.
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 0 0 0 0 0
Neste caso, observamos que o dataset iris não possui valores ausentes, o que facilita a continuidade da análise sem a necessidade de tratamento adicional dos dados.
Estatística descritiva
Nesta seção, calculamos algumas medidas estatísticas descritivas para
uma variável numérica. Como exemplo, utilizamos o comprimento da
pétala (Petal.Length), calculando média, mediana,
desvio padrão, valor mínimo e máximo.
iris %>%
summarise(
media_petal_length = mean(Petal.Length),
mediana_petal_length = median(Petal.Length),
desvio_padrao = sd(Petal.Length),
minimo = min(Petal.Length),
maximo = max(Petal.Length)
)## media_petal_length mediana_petal_length desvio_padrao minimo maximo
## 1 3.758 4.35 1.765298 1 6.9
Essas medidas ajudam a resumir o comportamento da variável e fornecem uma primeira visão sobre sua distribuição.
Dica: diferenças grandes entre a média e a mediana podem indicar assimetria na distribuição ou a presença de outliers.
Visualizações univariadas
A análise gráfica é uma etapa fundamental da Análise Exploratória de Dados, pois permite identificar padrões que nem sempre são evidentes apenas por meio de tabelas e estatísticas resumo.
Histograma
O histograma é utilizado para visualizar a forma da distribuição de uma variável numérica, permitindo identificar se ela é simétrica, assimétrica ou multimodal.
ggplot(iris, aes(x = Petal.Length)) +
geom_histogram(bins = 20, color = "white") +
labs(
title = "Distribuição do Comprimento da Pétala",
x = "Petal.Length",
y = "Frequência"
)A partir do histograma, podemos observar como os valores de Petal.Length estão distribuídos e verificar a presença de possíveis concentrações, assimetrias ou valores extremos.
Densidade
Uma alternativa ao histograma é o gráfico de densidade, que fornece uma estimativa suavizada da distribuição da variável. Ele é especialmente útil para identificar a forma geral da distribuição sem depender do número de classes (bins).
ggplot(iris, aes(x = Petal.Length)) +
geom_density() +
labs(
title = "Densidade do Comprimento da Pétala",
x = "Petal.Length",
y = "Densidade"
)O gráfico de densidade facilita a visualização de assimetrias e possíveis múltiplos picos na distribuição dos dados.
Boxplot (identificação de outliers)
O boxplot é uma ferramenta eficaz para resumir a distribuição de uma variável numérica, destacando a mediana, os quartis e possíveis valores extremos (outliers).
ggplot(iris, aes(y = Petal.Length)) +
geom_boxplot() +
labs(
title = "Boxplot do Comprimento da Pétala",
y = "Petal.Length"
)Neste gráfico:
A linha central representa a mediana;
A caixa corresponde ao intervalo entre o primeiro e o terceiro quartil;
Pontos fora dos limites indicam possíveis outliers.
Essas visualizações complementam as estatísticas descritivas e ajudam a entender melhor o comportamento da variável analisada.
Visualizações bivariadas (relação entre variáveis)
A análise bivariada tem como objetivo investigar a relação entre duas variáveis. Gráficos de dispersão são especialmente úteis para identificar padrões, tendências, correlações e possíveis agrupamentos nos dados.
Gráfico de dispersão: duas variáveis numéricas
Nesta etapa, analisamos a relação entre o comprimento e a largura da pétala, ambas variáveis numéricas.
ggplot(iris, aes(x = Petal.Length, y = Petal.Width)) +
geom_point(alpha = 0.7) +
labs(
title = "Relação entre Comprimento e Largura da Pétala",
x = "Petal.Length",
y = "Petal.Width"
)Esse tipo de gráfico permite observar se existe uma relação linear, não linear ou ausência de relação entre as variáveis.
Gráfico de dispersão com grupos
Ao colorir os pontos por espécie, conseguimos identificar padrões e possíveis agrupamentos que não seriam facilmente observados em um gráfico sem diferenciação de grupos.
ggplot(iris, aes(x = Petal.Length, y = Petal.Width, color = Species)) +
geom_point(alpha = 0.8) +
labs(
title = "Comprimento vs Largura da Pétala (por Espécie)",
x = "Petal.Length",
y = "Petal.Width"
)Neste gráfico, é possível notar que as espécies apresentam distribuições distintas, o que indica que as variáveis da pétala são informativas para diferenciar os grupos presentes no dataset.
Comparação entre grupos
A comparação entre grupos permite identificar diferenças no
comportamento de uma variável entre categorias distintas. No dataset
iris, utilizamos a variável Species para
comparar as distribuições das medidas da flor.
Boxplot por espécie
O boxplot é uma forma clássica e eficiente de comparar distribuições entre grupos, pois evidencia mediana, quartis e possíveis outliers.
ggplot(iris, aes(x = Species, y = Petal.Length, fill = Species)) +
geom_boxplot() +
labs(
title = "Comprimento da Pétala por Espécie",
x = "Espécie",
y = "Petal.Length"
) +
guides(fill = "none")Esse gráfico mostra claramente que o comprimento da pétala varia entre as espécies, indicando que essa variável é relevante para diferenciá-las.
Correlação
A correlação mede o grau de associação linear entre variáveis numéricas. É importante destacar que correlação não implica causalidade, mas pode indicar relações interessantes para investigações futuras.
Matriz de correlação entre variáveis numéricas
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## Sepal.Length 1.0000000 -0.1175698 0.8717538 0.8179411
## Sepal.Width -0.1175698 1.0000000 -0.4284401 -0.3661259
## Petal.Length 0.8717538 -0.4284401 1.0000000 0.9628654
## Petal.Width 0.8179411 -0.3661259 0.9628654 1.0000000
Para uma visualização rápida das relações entre todas as variáveis numéricas, utilizamos o pairs plot, que combina gráficos de dispersão para cada par de variáveis.
A partir desses gráficos, é possível observar relações fortes entre algumas variáveis, especialmente entre as medidas da pétala, reforçando os padrões identificados nas análises anteriores.
Conclusão
Principais insights da EDA
A partir das estatísticas descritivas e das visualizações
exploratórias, foi possível obter diversos insights relevantes sobre o
dataset iris. Em particular, a Análise Exploratória de
Dados permitiu:
- Visualizar a distribuição das variáveis numéricas;
- Detectar possíveis outliers e identificar padrões nos dados;
- Compreender relações entre variáveis, como entre Petal.Length e Petal.Width;
- Observar uma separação clara entre as espécies em algumas medidas da flor;
- Formular hipóteses que podem ser investigadas em etapas posteriores, como testes estatísticos ou modelos de classificação.
A EDA é um passo essencial para orientar decisões analíticas e evitar conclusões equivocadas. Ao combinar estatística descritiva com visualizações gráficas, conseguimos compreender de forma rápida e eficiente os principais padrões e relações presentes nos dados, servindo como base sólida para análises mais avançadas.