Los valores atípicos se definen como muestras que son significativamente diferentes de los datos restantes. Esos son puntos que se encuentran fuera del patrón general de distribución. Las medidas estadísticas como la media, la varianza y la correlación son muy susceptibles a valores atípicos.
Para la realización de este analisis de valores atipicos se utilizará la base de datos faithfull. De toda la base de datos analizaremos la variable waiting, que es el tiempo de espera para la siguiente erupción del geyser old Faitfull del parque nacional de yellowstone. Para la identificación de estos valores con estas carácterísticas utilizaremos el método de Tukey, que toma el rango intercuatílico como criterio para identificarlos. El gráfico por excelencia de este método es el diagráma de cajas o boxplot, el cual puede dar una visión rápida de la existencia de estos.
Primero observamos la distribución de la variable de tiempo de espera waiting.
attach(faithful)
par(mar= c(6,4,3,1))
hist(waiting, probability = T, main = "Histograma del tiempo de espera en minutos de las erupciónes", sub= "Las línea discontinuas representa el gráfico de densidad de masa de probabilidad")
d <- density(waiting)
lines(d, col="blue", lty= 3, lwd = 4)
Se observa una distribucíon bimodal para la variable waiting, por lo que se sugiere dividir en dos muestras los datos para los rangos de minutos de 43 hasta 70, y de 71 hasta 96.
library(dplyr)
m1 <- filter(faithful, waiting <= 70)
m2 <- filter(faithful, waiting > 70)
par(mfrow = c(1,2),oma = c(0, 0, 2, 0)) #Cración de parcelas y ajuste de marco global de la parcela
hist(m1$waiting, probability = T, main = "Muestra 1") ; d1 <- density(m1$waiting) #Cálculo de gráfico de densidad de la muestra 1.
lines(d1, col= "blue", lty= 2, lwd= 2) #Agregando gráfico de densidad al Histograma de la muestra 1.
hist(m2$waiting, probability = T, main = "Muestra 2"); d2 <- density(m2$waiting) #Cálculo de gráfico de densidad de la muestra 2.
lines(d2, col= "blue", lty= 2, lwd= 2) #Agregando gráfico de densidad al Histograma de la muestra 2.
mtext("Histogramas de la variable -Waiting- de cada muestra ", outer = T)
Se observa que ambas distribuciónes son normales. Ahora surge una pregunta, Existen valores atipicos en estos datos? para ello utilizaremos el metodo de tukey para averiguarlo.
faithful2 <-faithful
faithful2$Muestra <- if_else(faithful2$waiting <= 70, "Muestra 1", "Muestra 2") #Agregando variable a la base de datos de pertenecia de muestra de cada observación
boxplot(faithful2$waiting ~ faithful2$Muestra, main= "Diagrama de cajas de cada muestra", xlab = "", ylab = "Waiting (minutos)", sub= "La líneas intermitentes representan la mediana en minutos por cada muestra")
abline(h=c(median(m1$waiting), median(m2$waiting)), col= c("red", "blue"), lty= 3, lwd=3) #Agregando lineas de mediana a la trama.
text(x= c(1,2),y= c(median(m1$waiting)+2,median(m2$waiting)+2), #Etiquetas de mediana
labels = c(paste0("Mediana = ",median(m1$waiting)),paste0("Mediana = ",median(m2$waiting)))
)
Para el caso de la muestra 2 la gráfica de cajas apoya la teoria de existencia de valores atipicos, para el caso de la muestra 1 no se evidencian atípicos. De todos modos observaremos mas a fondo la muestra 1.
#Muestra 1
q1m1 <- quantile(m1$waiting, probs = 0.25) #Calculo del cuartil 1 de la muestra 1.
q3m1 <- quantile(m1$waiting, probs = 0.75) #Calculo del cuartil 3 de la muestra 1.
iqr1 <- IQR(m1$waiting) #Calculo del rango intercuartílico (q3 - q1), en lo adelante (IQR)
Li1 <- q1m1 - 1.5 * iqr1 #Límite inferior a menos 1.5 veces el IQR del primer cuartil (q1).
Ls1 <- q3m1 + 1.5 * iqr1 #Límite superior a mas de 1.5 veces el IQR del tercer cuartil (q3).
#Muestra 1
par(mar= c(6,3,4,1)) #Ajuste de marco del gráfico.
plot(m1$waiting, ylim = c(25,90),
main = "Análisis de valores atípicos \n Tiempo de espera de la próxima erupción (muestra 1)",
sub = "Las líneas discontinuas representan la frontera de 1.5 veces el rango intercuartilico \n de los cuartiles 1 y 3",
ylab = "Waiting", xlab = "")
abline(h= c(Ls1, Li1), col= "red", lty= 2) #Agregando líneas de frontera a mas y menos 1.5 IQR del primer y tercer cuartil respectivamente.
Para la muestra 1 se confirma la teoria de que no existen valores atípicos según el método de Tukey, pues todos los valores se hallan dentro de la frontera de 1.5 veces el rango intercuartílico mas allá de los cuartiles 1 y 3.
#Muestra 2
#repetición de los pasos de la muestra 1 pero en la muestra 2
q1m2 <- quantile(m2$waiting, probs = 0.25)
q3m2 <- quantile(m2$waiting, probs = 0.75)
iqr2 <- IQR(m2$waiting)
Li2 <- q1m2 - 1.5 * iqr2
Ls2 <- q3m2 + 1.5 * iqr2
#Muestra 2
par(mar= c(6,3,4,1))
plot(m2$waiting, ylim = c(60,100),
main = "Análisis de valores atípicos \n Tiempo de espera de la próxima erupción (muestra 2)",
sub = "Las líneas discontinuas representan la frontera de 1.5 veces el rango intercuartilico \n de los cuartiles 1 y 3",
ylab = "Waiting", xlab = ""
)
points(x=which.max(m2$waiting),y=max(m2$waiting), col= 2, pch= 20)
abline(h= c(Ls2, Li2), col= "red", lty= 2)
text(label= "Atípico", x=which.max(m2$waiting)+10 , y=max(m2$waiting)+2) #agregando etiqueta de señalización.
Para la Muestra 2 también se confirma la teoría de que si existen valores atípicos según el método de Tukey, existe un valor con esta característica con un tiempo para erupcionar (waiting) de 96 minutos como se mostró en el diagrama de caja de bigotes anterior.
Una vez se detectan los valores atípicos que pueden afectar el análisis lo recomendable es averiguar que produjo ese valor, en caso de que sea un error corregirlo y en caso contrario eliminarlo.