Melhorando a análise com o Boxplot

Melhorando a análise com o Boxplot
Daniel Siqueira
Daniel Siqueira

Compartilhe

O que é um BoxPlot?

Um boxplot (ou diagrama de caixa, numa tradução livre) mostra a distribuição quantitativa dos dados de um jeito que facilita a comparação entre as variáveis, ou através dos níveis categóricos das variáveis.

Essa caixa (“box”) mostra os quartis do dataset enquanto os “whiskers” mostram o resto da distribuição, exceto os pontos que são chamados de outliers.

Imagem mostra um boxplot, uma caixa que mostra a divisão da concentração dos dados em quartis, de forma gráfica.

A linha no centro da figura em verde, no nosso caso, representa a mediana. A linha azul que está na aresta esquerda da figura representa 25% da minha distribuição, e a linha que está na aresta direita representa 75% da distribuição dos dados.

Nas linhas roxas que estão nas extremidades de ambos lados, saem da figura central e mostram uma delimitação, temos o início e o fim da área dos quartis. Agora, repare que há alguns pontos após essa delimitação no lado esquerdo. Esses pontos são chamados de outliers, ou seja, são pontos “isolados” na nossa distribuição.

Para sabermos até onde vão os whiskers, que são esses “bigodinhos de gato” que delimitam os quartis e marcam onde se inicia os outliers, vamos fazer um cálculo. Uma vez que encontramos a mediana, o ponto central da distribuição, sabemos que temos 50% da distribuição à esquerda e 50% à direita. Após isso, vamos dividir novamente os lados na metade, para obtermos duas partes de 25% à direita e 25% à esquerda.

Agora que temos os 4 quartis, cada um com 25%, podemos desenhar a caixa, o “box”, e delimitamos com o 2º e o 3º quartis. Para encontrarmos então a delimitação dos wiskers vamos multiplicar a distância do 2º quartil até a mediana por 1,5. Fazemos o mesmo procedimento com a distância do 3º quartil até a mediana: vamos multiplicá-la por 1,5.

 Imagem mostra um boxplot, uma caixa que mostra a divisão da concentração dos dados em quartis, de forma gráfica, destacando as porcentagens dos quartis,os “outliers e como calcular os “whiskers”.

Em suma, o boxplot nos auxilia a visualizar a distribuição de dados divididos nos quartis. Ademais,mostra onde os dados estão mais concentrados e se há outliers fora dos nossos quartis.

Como gerar um BoxPlot usando Python?

Para gerar o Boxplot no Python vamos usar a biblioteca do Seaborn. Nós poderíamos também gerar o Boxplot através de outros métodos, porém uma das vantagens de se utilizar o Seaborn é que ele ficará mais bonito, claro e apresentável.

Imagem mostra um boxplot gerado no python com o auxílio da biblioteca seaborn. O boxplot mostra os salários dos funcionários da nossa base de dados.

Para alterar os eixos x e y do nosso diagrama podemos utilizar a biblioteca matplotlib, através do código: import matplotlib.pyplot as plt sns.boxplot(x = dados[‘Salario’]) plt.ylabel(‘Número de funcionários’) plt.show()

Imagem recortada do google colab que ilustra o boxplot gerado através do código sns.boxplot(x=dados[‘Salario’], agora com o título de “distribuição dos Salários”, e com o eixo x como “Salário” e o eixo y como “Número de funcionários”.

Fazendo análises e hipóteses com o BoxPlot

Analisando esse boxplot, percebemos que a maior parte dos dados estão um pouco acima dos 50000 e antes dos 100000. Se analisarmos o histograma gerado com esses mesmos dados (temos um artigo lançado, o link está logo abaixo), percebemos que as informações se complementam. Temos poucos dados (outliers) que estão acima de 100000 por ano.

Nós podemos ir além no uso dos boxplots. Podemos utilizar mais de um boxplot com diferentes categorias (colunas) para fazer análises de comparação entre elas.

Vamos fazer um experimento: analisar a que tipos de conclusões podemos chegar comparando o salário anual com o gênero do(a) funcionário(a). Para isso, vamos gerar o boxplot com o seguinte código:

Imagem recortada do google colab que ilustra o boxplot gerado através do código sns.boxplot(data=dados, x=’Gênero’, y=’Salario’, agora comparando dois boxplots dessas duas categorias: salário e gênero dos(as) funcionários(as)

Como na categoria do gênero feminino temos mais outliers, o gráfico ficou um pouco achatado. Vamos utilizar o matplotlib para melhorar um pouco a visualização:

Imagem recortada do google colab que ilustra o código utilizado: plt.figure(figsize=(8,12))sns.boxplot(data=dados, x=’Gênero’, y=’Salario’). Imagem recortada do google colab que ilustra os boxplots gerados anteriormente, porém com o ajuste para uma melhor visualização

Vamos analisar um pouco esses boxplots. Não conseguimos responder diretamente se os homens ganham mais que as mulheres, ao menos somente com este passo, já que percebemos que a mediana dos dois boxplots está bem próxima uma da outra. Mas conseguimos analisar que o 3º quartil do gênero feminino acaba bem antes do gênero masculino, o que pode nos dizer que conforme o salário anual aumenta temos uma maior concentração de pessoas do gênero masculino. Percebemos também que há muito mais outliers, dados atípicos na distribuição, de pessoas do gênero feminino que têm altos salários.

Agora é sua vez! Seguindo esses mesmos passos, analise um conjunto de dados. Você pode analisar, por exemplo, os salários de alguma empresa brasileira. Use o boxplot e nos diga nos comentários quais conclusões você pôde obter.

Quer saber mais sobre o assunto?

Para saber mais sobre o tema, você pode conferir o artigo de [histograma](https://www.alura.com.br/artigos/o-que-e-um-histograma. E também checar a documentação.

Daniel Siqueira
Daniel Siqueira

Daniel é instrutor na escola de Dados e professor de Matemática, Física, Química e Inglês. Tem verdadeira paixão em aprender coisas e assuntos novos, e transmitir seus conhecimentos.

Veja outros artigos sobre Data Science