Não gosto de boxplots. #prontofalei

Não gosto de boxplots. E vocês?

Não que o fato de eu gostar ou não gostar de alguma coisa queira dizer algo. Só que acho eles bem pouco informativos, se apresentados sozinhos. Permitam-me exemplificar.

Imagine que você está estudando variação no comprimento de chifre de três populações de unicórnios: uma população de deserto, uma de floresta, e uma de montanha. Ao me referir à população de montanha não estou falando necessariamente de Monoceros montanus, espécie cuja estrutura populacional foi muito bem estudada pelo grande Stuart H. Hurlbert (1990); considerando a incrível capacidade de locomoção, dentre e entre mundos, de ao menos uma espécie de unicórnio (Sapkowki 1999), acredito que qualquer espécie de unicórnio poderia facilmente ter populações em diferentes ambientes, e, tendo ficado em um dado ambiente por tempo suficiente (por escolha, tornada possível pela já mencionada capacidade locomotora), variações inter-populacionais podem surgir. Não me parece impossível que uma destas variações seja no comprimento dos chifres, característica possivelmente sujeita a seleção sexual.

Embora realizar um censo dos unicórnios presentes em uma dada área não parece ser um trabalho muito difícil, especialmente se for feito de tarde quando os unicórnios estão menos ativos (Hurlbert 1990), medir o comprimento dos seus chifres é uma tarefa menos trivial. Para evitar provocar stress excessivo nestes animais, tais medições requerem muita paciência e apenas pessoas com um alto grau de especialização e certas características pessoas conseguem fazer com que unicórnios se aproximem delas o suficiente para estas medidas. Portanto, para tornar este exemplo mais realista, vamos supôr que 75 indivíduos de cada população foram amostrados; acredito que tal trabalho requereria em torno de um ano de trabalho, sendo apropriado, talvez, para uma pesquisa de mestrado em Monocerologia.

Tendo coletado os dados, existem diferentes formas de mostrar eles graficamente. Talvez a primeira forma que nos venha à mente seria um gráfico de barras mostrando a variação de tamanho médio entre as populações:

boxplot_bar1

Mostra que o tamanho médio é praticamente igual… E não mostra mais nada. Mostrar a média sem mostrar uma medida de variação ou de incerteza em relação à média não é muito informativo. Então adicionei intervalos de confiança – intervalo de confiança paramétrico, que assume normalidade dos dados, e intervalo de confiança por bootstrap, que tem premissas mais flexíveis:

boxplot_bar2

Um pouco melhor. Mostra também que a população de floresta é mais variável e a de montanha é a que varia menos, no que diz respeito ao comprimento dos seus chifres. É possível que as condições extremas na montanha exerçam uma pressão seletiva adicional sobre esta características…

Mas, novamente, esta informação ainda é pouca, e não diz nada sobre a distribuição dos dados. E é nesta situação que seríamos tentados a usar um boxplot; ou usaríamos o boxplot direto, sem nos preocupar com o gráfico de barras:

boxplot_box

O que este gráfico nos mostra? Essencialmente a mesma coisa que o anterior – menos variação na montanha, mais variação na floresta. Mas primeiro precisamos relembrar o que cada linha dele mostra. A linha central mostra a mediana – metade dos unicórnios amostrados tem chifres menores do que a mediana e metade tem chifres maiores. Mediana também pode ser chamada de “quantil 50%”; um quantil X% é o valor que está acima X% dos dados, ou seja, X% dos dados tem valores menores do que este quantil. Os limites da caixa são os quantis 25% e 75%, de modo que metade dos valores medidos estaria dentro da caixa. Estes valores são padronizados, ou seja, ao vermos um boxplot podemos ter quase certeza de estarmos olhando para mediana e os quantis 25% e 75%. A definição das outras duas linhas varia; neste caso, elas se estendem até os pontos mais extremos que não estejam mais longe da caixa do que o tamanho da caixa vezes 1.5. Pontos fora deste intervalo são mostrados como pontos.

E essa última parte é um dos motivos que me faz não gostar de boxplots. Nem sempre sabemos para o que exatamente estamos olhando. Como decidimos o que são outliers (pontos mostrados fora das linhas verticais) e o que não são? A definição é um tanto arbitrária.

Mas o motivo principal é que todos estes gráficos mostram apenas um resumo dos pontos, e a informação principal – os pontos em si – fica perdida em algum lugar do ciber-espaço (na melhor das hipóteses; muitas vezes é no HD ou nos cadernos de campo; ou perdida para sempre mesmo). Então por que não mostrar todos os pontos?

boxplot_jitter

Este é o que podemos chamar de jitter plot; a palavra jitter se refere ao ruído aleatório que é adicionado aos pontos para que não fiquem todos sobrepostos. E ele nos mostra bem claramente que os pontos na montanha estão muito concentrados; os do deserto estão mais concentrados que os da floresta; e, se olharmos com carinho, podemos ter a impressão de haver uma vazio por volta de 25 cm na floresta. A concentração de pontos é maior em valores baixos, por volta de 10-15 cm, e em valores mais altos, por volta dos 30-35 cm. Esta é uma informação que nenhum dos gráficos anteriores mostrava e que pode ser inferida a partir de um simples gráfico de dispersão.

Se preferirem, podemos adicionar médias e intervalos de confiança a este gráfico:

boxplot_jittermean

Ou até mesmo um boxplot, mostrando tanto os pontos quanto os quantis:

boxplot_jitterbox

Este boxplot incluse dá a impressão de que os pontos estejam concentrados perto dos quantis 25% e 75%. Tal concentração poderia indicar, por exemplo, dimorfismo sexual, ou talvez a existência de duas populações – ou quiçá espécies – nesta mesma amostra.

Para melhor explorar as frequências, podemos também fazer histogramas das populações, mostrando a frequência de diferentes classes de comprimento. Na verdade devíamos ter feito isso antes de fazer os outros gráficos. Deixei pro final pra dar um exemplo de como não se deve fazer. 🙂

boxplot_hist

Este gráfico mostra mais claramente a existência de dois picos nos comprimento dos chifres da população florestal. O problema é que padrões podem ser mascarados se forem usadas barras de tamanho muito pequeno ou muito grande. Mas eu recomendaria sempre fazer histogramas, pelo menos na etapa de exploração dos dados; e também sempre fazer jitter plots, tanto para mostrar a variação quanto para detectar outliers ou prováveis erros de medição ou de amostragem.

Agora, já imaginaram que legal seria juntarmos um jitter plot com um histograma?

A boa notícia é que é possível sim! É um gráfico chamado de bean plot, ou “gráfico de feijões” [tradução livre minha], que mostra os pontos e ajusta uma linha mostrando a distribuição de densidade destes pontos. Esta linha é como se fosse um histograma suavizado, ou seja, ao invés de mostrar barras mostramos uma linha que passa por elas:

boxplot_pirate

Aqui podemos ver com mais clareza a grande concentração de comprimentos perto da média na montanha; a maior dispersão no deserto; e a distribuição bimodal, podendo indicar duas populações diferentes, na floresta. A meu ver, este é o gráfico mais informativo; e novamente, linhas mostrando os quantis poderiam também ser adicionadas a ele. Fiz ele usando a função pirateplot do pacote yarrr no R.

Ah, aqui estão as funções de distribuições de densidade reais destas populações; a primeira é uma distribuição normal, a segunda é uma combinação de duas normais e a terceira é uma distribuição gamma.

boxplot_pdf

O código usado para amostrar os unicórnios e gerar os gráficos está disponível no meu github.

Referências

Hurlbert S. H. 1990. Spatial distribution of the montane unicorn. Oikos 58: 257-271

Sapkowski A. 1999. Pani jeziora. AST, Moscou.

Anúncios

5 pensamentos sobre “Não gosto de boxplots. #prontofalei

  1. Pingback: Digitando e conferindo dados – Mais Um Blog de Ecologia e Estatística

  2. Pingback: Gráficos de barras (e um pouco de ANOVA) em R – Mais Um Blog de Ecologia e Estatística

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s