Esse documento tem dois objetivos:
1 - Analisar os critérios do R para a construção dos limites inferior e superior do boxplot
2 - Mostrar como construir um gráfico (boxplot do pacote básico de gráficos) incluindo valores
Introdução
Para quem não conhece a função de um boxplot, sua ideia é mostrar a distribuição e concentração dos dados em percentuais de 25%, isto é, entre 25 e 50, 50 (mediana) e 75%. Além de 75% e aquem de 25% são calculados limites, onde dados posicionados além desses limites são analisados, podendo ser considerados, aberrações, exceções, expurgos, pois poderão afetar modelos preditivos, média e outras medidas estatísticas.
O analista de dados deve entender, preferencialmente com o ‘dono da informação’, qual o significado deles, e se esses números devem ser mantidos ou expurgados da amostra analisada.
Ele funiona como complemento de um histograma para auma análise descritiva.
Obs: usaremos o dataset mtcars, que faz parte da biblioteca interna do R
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
# Nome das colunas
names(mtcars)
## [1] "mpg" "cyl" "disp" "hp" "drat" "wt" "qsec" "vs" "am" "gear"
## [11] "carb"
summary(mtcars)
## mpg cyl disp hp
## Min. :10.40 Min. :4.000 Min. : 71.1 Min. : 52.0
## 1st Qu.:15.43 1st Qu.:4.000 1st Qu.:120.8 1st Qu.: 96.5
## Median :19.20 Median :6.000 Median :196.3 Median :123.0
## Mean :20.09 Mean :6.188 Mean :230.7 Mean :146.7
## 3rd Qu.:22.80 3rd Qu.:8.000 3rd Qu.:326.0 3rd Qu.:180.0
## Max. :33.90 Max. :8.000 Max. :472.0 Max. :335.0
## drat wt qsec vs
## Min. :2.760 Min. :1.513 Min. :14.50 Min. :0.0000
## 1st Qu.:3.080 1st Qu.:2.581 1st Qu.:16.89 1st Qu.:0.0000
## Median :3.695 Median :3.325 Median :17.71 Median :0.0000
## Mean :3.597 Mean :3.217 Mean :17.85 Mean :0.4375
## 3rd Qu.:3.920 3rd Qu.:3.610 3rd Qu.:18.90 3rd Qu.:1.0000
## Max. :4.930 Max. :5.424 Max. :22.90 Max. :1.0000
## am gear carb
## Min. :0.0000 Min. :3.000 Min. :1.000
## 1st Qu.:0.0000 1st Qu.:3.000 1st Qu.:2.000
## Median :0.0000 Median :4.000 Median :2.000
## Mean :0.4062 Mean :3.688 Mean :2.812
## 3rd Qu.:1.0000 3rd Qu.:4.000 3rd Qu.:4.000
## Max. :1.0000 Max. :5.000 Max. :8.000
# Usaremos uma das colunas do dataset (hp) para o ensaio proposto
# Cálculo dos limites
LIC = quantile(mtcars$hp, probs = 0.25) - 1.5*(IQR(mtcars$hp))
LSC = quantile(mtcars$hp, probs = 0.75) + 1.5*(IQR(mtcars$hp))
# Limites do R
LIR <- boxplot.stats(mtcars$hp)$stats[1]
LSR <- boxplot.stats(mtcars$hp)$stats[5]
outliers <- boxplot.stats(mtcars$hp)$out
select(mtcars, hp) %>% filter(hp >260) %>% arrange(hp)
## hp
## 1 264
## 2 335
outliers
## [1] 335
limites <- data.frame(Limite_Inferior = c(LIC, LIR), Limite_Superior = c(LSC, LSR), row.names = c("Calculado", "R"))
limites
## Limite_Inferior Limite_Superior
## Calculado -28.75 305.25
## R 52.00 264.00
## 2 - Boxplot incluindo valores
valores <- as.integer(c(boxplot.stats(mtcars$hp)$out, boxplot.stats(mtcars$hp)$stats, LSC, LIC))
carros <- boxplot(mtcars$hp, main = "Boxplox (mtcars)", ylab = "hp")
text(y = valores, labels = valores, x = 1.25)