13  Diagramas de Extremos e Quartis

Data de Publicação

8 de maio de 2025

13.1 Introdução

O diagrama de extremos e quartis (DEQ) vulgarmente designado pelo termo inglês box plot serve para sumariar um conjunto de estatísticas sobre os dados em análise, sendo uma das visualizações mais utilizadas. O DEQ está descrito na Secção 4.3.2.

Para desenvolver este tutorial será utilizado o conjunto de dados chickwts incluído no R. Neste conjunto há duas variáveis relativas à observação de um conjunto de frangos: a variável weight, contendo o peso, em gramas, dos frangos às 6 semanas, e a variável categórica feed, que se refere à alimentação dos frangos.

summary(chickwts)
     weight             feed   
 Min.   :108.0   casein   :12  
 1st Qu.:204.5   horsebean:10  
 Median :258.0   linseed  :12  
 Mean   :261.3   meatmeal :11  
 3rd Qu.:323.5   soybean  :14  
 Max.   :423.0   sunflower:12  

Como se pode verificar, a variável feed já está corretamente codificada como categórica, pelo que se pode passar à análise.

13.2 Elaboração do DEQ

Para desenhar um diagrama de extremos e quartis basta invocar a função gráfica de alto nível boxplot() especificando quais os dados a utilizar. A Figura 13.1 e o código abaixo exemplificam o processo para a variável weight.

boxplot(chickwts$weight)
Figura 13.1: Exemplo de um DEQ (sem configurações adicionais)

A função boxplot() pode receber os dados em vários formatos: um vetor, vários vetores ou uma matriz, lista ou data frame contendo mais do que uma variável. Caso seja fornecida mais do que uma variável, serão desenhados vários diagramas no mesmo gráfico, como por exemplo na Figura 13.2, gerada pelo código seguinte.

boxplot(cars)
boxplot(cars$speed, cars$dist)
(a) fornecendo uma data frame
(b) fornecendo dois vetores
Figura 13.2: Exemplo de DEQ com mais do que uma variável

Existe ainda uma outra forma de especificar o DEQ que será explorada na Secção 13.4.

13.3 Configuração do DEQ

A função boxplot() pode receber os argumentos habituais para especificar títulos, eixos, escalas, cores, etc., e um conjunto de argumentos específicos, cujos mais importantes se enumeram na Tabela 13.1.

Tabela 13.1: Configuração do diagrama de extremos e quartis
Argumento Elemento
range = Para especificar o valor máximo dos extremos do diagrama. Por omissão, range = 1.5, ou seja, 1.5 vezes a amplitude interquartis. As observações para lá dos extremos são representadas como pontos
width =, varwidth = TRUE Para especificar a largura relativa de cada caixa. Alternativamente, varwidth = TRUE torna a largura das caixas proporcional à raiz quadrada do número de observações
names = Para especificar um vetor de texto para utilizar como rótulos de cada diagrama
horizontal = TRUE Para especificar que os diagramas devem ser desenhados na horizontal
add = TRUE, at = Utilizando add = TRUE, o diagrama será colocado sobre um gráfico existente. O argumento at = especifica em que coordenadas o diagrama será colocado, podendo ser um vetor, caso haja mais do que um diagrama
col =, border = Para especificar a cor do preenchimento e das linhas do diagrama
Parâmetros gráficos específicos

A função boxplot() permite configurar alguns parâmetros gráficos específicos do DEQ. Esses parâmetros são designados pelo nome do parâmetro tal como na função par() mais um prefixo específico. Os prefixos específicos são box, staple, med, whisk e out, para configurar a caixa, os extremos, a mediana, a extensão e os outliers, respetivamente. Há ainda os argumentos boxwex, staplewex e outwex para controlar a largura dos vários elementos do diagrama.

Por exemplo, outpch = configura o símbolo a utilizar nos outliers e boxlty = configura o tipo de linha a utilizar na caixa.

Para mais informação e exemplos pode consultar a documentação com ?bxp.

O código abaixo produz a Figura 13.3, onde se pode verificar o efeito de alguns ajustes realizados. Neste caso, o gráfico e os ajustes fazem pouco sentido e servem apenas para efeito de demonstração.

boxplot(
  head(chickwts$weight, 11), # primeiros 11
  tail(chickwts$weight, 11), # últimos 11
  horizontal = TRUE,
  main = "Peso de 22 frangos",
  names = c("primeiros", "últimos"),
  xlab = "Peso (g)",
  col = c("skyblue", "palegreen"), border = "violet",
  outpch = 8, outcol = "red", outcex = 2,
  medcol = "orange",
  staplelty = "dotted"
)
Figura 13.3: Exemplo de um DEQ com alguns ajustes

13.4 DEQ por categorias

Uma utilização bastante frequente do diagrama de dispersão é na comparação de categorias de uma variável categórica, separando as observações de uma variável numérica em função da categoria. No conjunto de dados chickwts haverá algum interesse em analisar o peso dos frangos alimentados com as diferentes dietas.

A função boxplot() permite especificar essa análise utilizando uma construção gramatical do R designado por fórmula.

Fórmulas no R

Sem entrar em grandes detalhes, geralmente, utiliza-se uma fórmula para especificar um modelo estatístico em que uma variável pode ser prevista a partir de um modelo linear de outras variáveis. Por exemplo, para especificar um modelo de regressão linear simples, utiliza-se a fórmula y ~ x, que se lê “a variável y depende linearmente da variável x

No contexto do DEQ pode utilizar-se uma fórmula para especificar que as observações de uma variável quantitativa, podemos designar por y, devem ser separadas pelas categorias de outra variável, x, que deve ser categórica.

Utilize-se um exemplo para ilustrar a aplicação de uma fórmula. No código que se segue utiliza-se uma fórmula para produzir a Figura 13.4.

boxplot(weight ~ feed, data = chickwts)
Figura 13.4: Exemplo de DEQ em que se utiliza uma fórmula

Quando se utilizam fórmulas com variáveis de uma data frame, basta indicar o nome da data frame com data = e deixa de ser necessário utilizar o $ para qualificar as variáveis. Outro argumento que poderá ser útil é subset =, onde se pode indicar uma condição que as observações devem cumprir (um filtro).