Conheço uma generalização de gráficos de caixa padrão nos quais os comprimentos dos bigodes são ajustados para dar conta de dados distorcidos. Os detalhes são melhor explicados em um white paper muito claro e conciso (Vandervieren, E., Hubert, M. (2004) "Um boxplot ajustado para distribuições distorcidas", veja aqui ).
Existe uma implementação deste ( robustbase :: adjbox () ), bem como uma implementação do matlab (em uma biblioteca chamada libra ).Rrobustbase::adjbox()libra
Pessoalmente, acho que é uma alternativa melhor à transformação de dados (embora também seja baseada em uma regra ad-hoc, consulte o white paper).
Aliás, acho que tenho algo a acrescentar ao exemplo do whuber aqui. Na medida em que discutimos o comportamento dos bigodes, também devemos considerar o que acontece quando consideramos dados contaminados:
library(robustbase)
A0 <- rnorm(100)
A1 <- runif(20, -4.1, -4)
A2 <- runif(20, 4, 4.1)
B1 <- exp(c(A0, A1[1:10], A2[1:10]))
boxplot(sqrt(B1), col="red", main="un-adjusted boxplot of square root of data")
adjbox( B1, col="red", main="adjusted boxplot of data")
Nesse modelo de contaminação, B1 possui essencialmente uma distribuição log-normal, exceto 20% dos dados que estão parcialmente à esquerda e meio à direita (o ponto de interrupção do adjbox é o mesmo que o de boxplots regulares, ou seja, assume que no máximo 25% dos dados podem estar incorretos).
Os gráficos representam os gráficos de caixa clássicos dos dados transformados (usando a transformação de raiz quadrada)
e o boxplot ajustado dos dados não transformados.
Comparada aos gráficos de caixa ajustados, a opção anterior mascara os valores discrepantes reais e rotula bons dados como valores discrepantes. Em geral, será possível ocultar qualquer evidência de assimetria nos dados, classificando os pontos ofensivos como outliers.
Neste exemplo, a abordagem do uso do boxplot padrão na raiz quadrada dos dados encontra 13 valores discrepantes (todos à direita), enquanto o boxplot ajustado encontra 10 discrepantes à direita e 14 à esquerda.
EDIT: gráficos de caixa ajustados em poucas palavras.
Nos boxplots 'clássicos', os bigodes são colocados em:
Q1Q3
Q1Q3
Essa regra prática é ad-hoc: a justificativa é que, se a parte não contaminada dos dados for aproximadamente gaussiana, menos de 1% dos bons dados serão classificados como ruins usando essa regra.
Uma fraqueza dessa regra de vedação, conforme apontado pelo OP, é que o comprimento dos dois bigodes é idêntico, o que significa que a regra de vedação só faz sentido se a parte não contaminada dos dados tiver uma distribuição simétrica.
Uma abordagem popular é preservar a regra geral e adaptar os dados. A idéia é transformar os dados usando alguma transformação monótona de correção de inclinação (raiz quadrada ou log ou, mais geralmente, transformações box-cox). Essa é uma abordagem um pouco confusa: ela se baseia na lógica circular (a transformação deve ser escolhida de modo a corrigir a assimetria da parte não contaminada dos dados, que neste momento é inaceitável) e tende a dificultar a interpretação dos dados. visualmente. De qualquer forma, esse permanece um procedimento estranho, pelo qual se modifica os dados para preservar o que é afinal uma regra ad-hoc.
Uma alternativa é deixar os dados intocados e alterar a regra do bigode. O boxplot ajustado permite que o comprimento de cada bigode varie de acordo com um índice que mede a assimetria da parte não contaminada dos dados:
Q1exp(M,α)Q3exp(M,β)
Mα β
M≈0
MMαβ
Q1exp(−4M)1.5*IQR and Q3+exp(3M)1.5*IQR, if M≥0
Q1-exp(−3M)1.5*IQR and Q3+exp(4M)1.5*IQR, if M<0