Para dados distribuídos aproximadamente normalmente, os boxplots são uma ótima maneira de visualizar rapidamente a mediana e a propagação dos dados, bem como a presença de quaisquer valores extremos.
No entanto, para distribuições de cauda mais pesada, muitos pontos são mostrados como outliers, uma vez que os outliers são definidos como estando fora do fator fixo do IQR, e isso acontece naturalmente com muito mais frequência com distribuições de cauda pesada.
Então, o que as pessoas usam para visualizar esse tipo de dados? Existe algo mais adaptado? Eu uso o ggplot no R, se isso importa.
r
distributions
data-visualization
data-transformation
ggplot2
static_rtti
fonte
fonte
Respostas:
O problema central do OP parece ter é que eles têm dados de cauda muito-pesados - e eu não acho que a maioria dos actuais respostas realmente lidar com essa questão em tudo , então eu estou promovendo meu comentário anterior para uma resposta.
Se você quiser ficar com boxplots, algumas opções estão listadas abaixo. Eu criei alguns dados no R que mostra o problema básico:
A metade do meio dos dados é reduzida para uma faixa minúscula com alguns mm de largura. O mesmo problema afeta a maioria das outras sugestões - incluindo gráficos de QQ, diagramas de tira, gráficos de colméia / abelha quente e gráficos de violino.
Agora, algumas soluções em potencial:
1) transformação ,
Se os logs ou inversos produzem um gráfico de caixa legível, eles podem ser uma ideia muito boa e a escala original ainda pode ser mostrada no eixo.
O grande problema é que às vezes não há transformação "intuitiva". Há um problema menor que, embora os quantis se traduzam com transformações monotônicas o suficiente, as cercas não; se você plotar os dados transformados em caixa (como eu fiz aqui), os bigodes terão valores x diferentes dos do gráfico original.
Aqui eu usei um pecado hiperbólico inverso (asinh); é um tipo de log nas caudas e semelhante ao linear próximo de zero, mas as pessoas geralmente não consideram uma transformação intuitiva; portanto, em geral, eu não recomendaria essa opção, a menos que uma transformação bastante intuitiva como o log seja óbvia. Código para isso:
2) quebras de escala - pegue valores extremos extremos e comprima-os em janelas estreitas em cada extremidade com uma escala muito mais comprimida do que no centro. Eu recomendo uma pausa completa em toda a escala, se você fizer isso.
3) recorte de valores extremos extremos (o que eu normalmente não recomendaria sem indicar isso muito claramente, mas parece o próximo gráfico, sem os "<5" e "2>" em cada extremidade), e
4) o que chamarei de "flechas" extremas - semelhantes ao corte, mas com a contagem de valores aparados indicados em cada extremidade
fonte
Pessoalmente, gosto de usar um stripplot com jitter pelo menos para ter uma ideia dos dados. O gráfico abaixo é com retículo em R (desculpe, não ggplot2). Gosto dessas tramas porque são muito fáceis de interpretar. Como você diz, uma razão para isso é que não há nenhuma transformação.
O pacote beeswarm oferece uma ótima alternativa para stripplot (obrigado a @January pela sugestão).
Com seus dados, como são distribuídos aproximadamente normalmente, outra coisa a tentar pode ser um qqplot, qqnorm nesse caso.
fonte
beeswarm
embalagem.Você pode ficar com boxplots. Existem diferentes possibilidades para definir bigodes. Dependendo da espessura da cauda, número de amostras e tolerância a valores extremos, você pode escolher dois quantis mais ou menos extremos. Dado o seu problema, eu evitaria bigodes definidos pelo IQR.
A menos, é claro, que você queira transformar seus dados, o que, nesse caso, dificulta o entendimento.
fonte
Suponho que esta pergunta seja sobre a compreensão de dados (em vez de "gerenciá-los").
Se os dados são pesados e / ou multimodais, considero essas "camadas" do ggplot2 muito úteis para a finalidade:
geom_violin
egeom_jitter
.fonte