Os outliers são a quebra do padrão, pontos fora da curva que são comuns em dados reais e merecem atenção.
Um ponto fora da curva
Outliers em estatísticas são observações que estão significativamente distante das demais observações em um conjunto de dados e podem distorcer a interpretação geral nas análises dos dados se não forem identificados e tratados adequadamente.
Esses valores podem aparecer por várias causas, incluindo erro de medição, variação natural nos dados ou uma ocorrência incomum. A identificação dessas observações ocorre através de uma variedade de abordagens estatísticas, as mais comuns são os gráficos de dispersão e box-plot, para confirmar é possível realizar o teste z-score.
Após a identificação essas observações podem ser apenas excluídas do conjunto de dados, tratadas alterando os dados ou empregando métodos estatísticos robustos que são menos afetados por outliers.
Como identificar outliers?
Existem vários gráficos que podem ser usados para identificar outliers em um conjunto de dados, mas os seguintes são os mais comuns:
Box-plot: Um gráfico de caixa é uma representação gráfica da distribuição de uma coleção de dados. Ele representa o mínimo, o primeiro quartil, a mediana, o terceiro quartil e o máximo dos dados. Outliers são pontos que estão fora dos "bigodes" do box plot.
Histograma: Um histograma é um gráfico que descreve a distribuição de frequência de um conjunto de dados. Outliers podem ser mostrados como picos ou lacunas em um histograma.
Gráfico de dispersão: Esses gráficos descrevem a associação entre duas variáveis. Os outliers podem aparecer como pontos isolados longe de outros locais.
Gráfico de controle: Usado para acompanhar o progresso de um processo ao longo do tempo. Um outlier pode estar presente se houver um ponto muito acima ou abaixo da linha de controle, esse gráfico é muito utilizado em linhas de produção para identificar falhas na qualidade do processo.
Quais problemas os outliers podem provocar?
Compreender e tratar outliers é fundamental para análises de dados. Lembrando que um outlier é um valor que se desvia muito da maioria dos dados em um conjunto de dados, portanto esses pontos com desvios maiores dos dados podem alterar significativamente a estimativa de indicadores de posição e variação.
Outliers também podem ter uma influência substancial na modelagem de dados. Eles podem prejudicar modelos estatísticos que presumem uma distribuição de dados normal dado o problema de distorção dos indicadores, no caso da normal média e desvio padrão.
Abaixo trouxe 3 problemas que outliers podem causar em modelagem:
Viés na modelagem: outliers podem distorcer a relação entre as variáveis e prejudicar a modelagem dos dados. Isso pode resultar em modelos ineficazes ou imprecisos.
Problemas na generalização: outliers podem levar a modelos que são excessivamente específicos para o conjunto de dados em questão, o que torna mais difícil a sua generalização para outros conjuntos de dados.
Problemas na detecção de padrões: outliers podem ocultar padrões ou relações importantes nos dados, tornando mais difícil a detecção desses padrões.
Como tratar os outliers?
Os outliers podem ser tratados de diferentes maneiras, dependendo do objetivo e do contexto do estudo ou análise. Alguns métodos comuns para tratamento de outliers incluem:
Remoção dos outliers: Os outliers são removidos do conjunto de dados neste método fácil e direto, que envolve a remoção dos valores considerados outliers. Esse método pode ser útil em algumas circunstâncias, mas se a proporção de outliers for muito alta, pode resultar na perda de informações cruciais e em descobertas distorcidas.
Transformação dos dados: A existência de um outlier pode ocasionalmente ser diminuída ou eliminada com a ajuda da modificação de dados. Por exemplo, uma transformação logarítmica pode ser usada para reduzir números extremos.
Substituição dos outliers: Substituir valores atípicos por outros considerados mais representativos ou realistas é outra estratégia. A média ou mediana de valores não discrepantes pode ser usada, por exemplo, para substituir os dados originais.
Tratamento por análise estatística: Métodos estatísticos mais sofisticados podem ser úteis em algumas circunstâncias para localizar e lidar com outliers. Para encontrar valores extremos com base em um modelo estatístico, por exemplo, o método de detecção de outlier baseado em distância de Mahalanobis pode ser utilizado.
Análise separada dos outliers: Pode ser útil, em algumas circunstâncias, realizar um exame separado dos valores discrepantes para compreender suas características e possíveis causas. Por exemplo, outliers podem refletir uma parte dos dados que precisam de consideração e análise espacial para compreender os dados de forma mais completa.
Exemplo em R
Para vocês entenderem melhor, abaixo trouxe um exemplo utilizando o software R e as bibliotecas dplyr e ggplot.
Os códigos criam uma tabela de dados com outliers, identifica a existência de dados através de um gráfico de box plot e um de dispersão, aplica algumas das soluções apresentadas para “tratar” os outliers.
1 - Criar data frame de exemplo e adicionar outliers
# Criando dataframe de exemplo
set.seed(123)
df <- data.frame(
col1 = rnorm(100),
col3 = sample(c("A", "B", "C"), 50, replace = TRUE),
col4 = sample(c("X", "Y", "Z"), 50, replace = TRUE)
)
df$col2 = df$col1 + runif(100)
# Adicionando alguns outliers
df[10,1] <- 4
df[20,1] <- 6
df[30,1] <- 5
df[40,1] <- 6
2 - Printa o blox plot e o gráfico de dispersão.
# Criando gráficos boxplot
library(ggplot2)
boxplot <- ggplot(df, aes(x = col3, y = col1, fill = col3)) +
geom_boxplot() +
ggtitle("Boxplot para Coluna 1") +
theme(plot.title = element_text(hjust = 0.5))
# Mostrando gráfico
boxplot
# Criando gráficos de dispersão
scatterplot <- ggplot(df, aes(x = col2, y = col1)) +
geom_point() +
ggtitle("Gráfico de Dispersão para Coluna 1 e 2") +
theme(plot.title = element_text(hjust = 0.5))
# Mostrando gráfico
scatterplot
3 - Método entre quartis
library(dplyr)
#Definindo limites do método da diferenca entre quartis
q1 <- quantile(df$col1, 0.25)
q3 <- quantile(df$col1, 0.75)
iqr <- q3 - q1
outlier_threshold <- 1.5 * iqr
# Identificando colunas com outliers
dffiltrado = df %>%
mutate(outlier_col1 = col1 < q1 - outlier_threshold | col1 > q3 + outlier_threshold) %>%
filter(outlier_col1 == FALSE)
# Visualizando dados sem outliers com boxplot
ggplot(dffiltrado, aes(x = col3, y = col1, fill = col3)) +
geom_boxplot() +
ggtitle("Boxplot para Coluna 1 (Sem Outliers)") +
theme(plot.title = element_text(hjust = 0.5))
4 - Método das medianas
# Substituindo outliers pela mediana
df_mediana <- df
df_mediana$col1[abs(df$col1) > 2] <- median(df$col1, na.rm = TRUE)
df_mediana$col2[abs(df$col2) > 2] <- median(df$col2, na.rm = TRUE)
# Visualizando dados scom outliers substituidos pela mediana
ggplot(df_mediana, aes(x = col3, y = col1, fill = col3)) +
geom_boxplot() +
ggtitle("Boxplot para Coluna 1 (Sem Outliers)") +
theme(plot.title = element_text(hjust = 0.5))
Comentários
Postar um comentário