Só porque o resumo de cinco números é idêntico, não significa que a distribuição é idêntica. Isso mostra quantas informações são perdidas quando apresentamos dados graficamente em um gráfico de caixa!
Talvez a maneira mais fácil de ver o problema seja que o resumo de cinco números não diz nada sobre a distribuição dos valores entre o quartil mínimo e inferior, ou entre o quartil inferior e a mediana, e assim por diante. Você sabe que a frequência entre o quartil mínimo e o inferior deve corresponder à frequência entre o quartil inferior e a mediana (com as exceções óbvias, por exemplo, se tivermos dados em um quartil, ou pior, se dois quartis estiverem amarrados), mas não soubermos quais valores da variável essas frequências são alocadas. Podemos ter uma situação como esta:
Essas duas distribuições têm o mesmo resumo de cinco números, portanto, seus gráficos de caixas são idênticos, mas eu escolhi para ter uma distribuição uniforme entre cada quartil, enquanto tem uma distribuição com baixas frequências próximas aos quartis e altas frequências no meio de dois quartis. Efetivamente, a distribuição de foi formada retirando a distribuição de e movendo a maioria dos dados que estão próximos a um quartil para mais longe; meu código realmente faz isso ao contrário, começando com a distribuição irregular de e nivelando as frequências realocando dados dos picos para preencher os vales.Y Y X YXYYXR
Y
EDIT: Como @Glen_b diz, isso se torna ainda mais óbvio quando você olha para as distribuições cumulativas. Adicionei linhas de grade para mostrar a localização dos quartis, que são os mesmos para as duas distribuições, para que seus CDFs empíricos se cruzem.
Código R
yfreq <- 2*rep(c(1:10, 10:1), times=4)
xfreq <- rep(mean(yfreq), times=length(yfreq))
x <- rep(1:length(xfreq), times=xfreq)
y <- rep(1:length(yfreq), times=yfreq)
ecdfX <- ecdf(x)
ecdfY <- ecdf(y)
plot(ecdfX, verticals=TRUE, do.points=FALSE, col="blue", lwd=2, yaxt="n",
main="Empirical CDFs", xlab="", ylab="Relative cumulative frequency")
plot(ecdfY, verticals=TRUE, do.points=FALSE, add=TRUE, col="black",
yaxt="n", lwd=2)
axis(side=2, at=seq(0, 1, by=0.1), las=2)
abline(h=c(0.25,0.5,0.75,1), col="lightgrey", lty="dashed")
abline(v=summary(x), col="lightgrey", lty="dashed")
legend("right", c("x", "y"), col = c("blue", "black"),
lty = "solid", lwd=2, bty="n")
par(mfrow=c(2,2))
hist(x, col="steelblue", breaks=((0:81)-0.5), ylim=c(0,25))
hist(y, col="grey", breaks=((0:81)-0.5), ylim=c(0,25))
boxplot(x, col="steelblue", main="Boxplot of x")
boxplot(y, col="grey", main="Boxplot of y")
summary(x)
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 1.00 20.75 40.50 40.50 60.25 80.00
summary(y)
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 1.00 20.75 40.50 40.50 60.25 80.00