#=============================================================================== #. Título: Remoção de outliers de data.frame com duas variáveis numéricas, #. com estrutura de covariância e NAs #. Autor : José Cláudio Faria/UESC/DCET # Curso : Introdução à estatística # Data : 2024-05-03 14:15:22 # Objetivos: #=============================================================================== # a) Remoção automática de outliers e NAs de dados com estrutura de covariância # b) Estender o conceito de programação em R #=============================================================================== #. Função remove_outlier_grupos <- function(x, type=2) { # Remover NAs x <- na.omit(x) while(1) { # Quartis qt.Y1 <- quantile(x[,1], type=type)[2:4] qt.Y2 <- quantile(x[,2], type=type)[2:4] # Distâncias interquartílicas - iqr iqr.Y1 <- qt.Y1[3] - qt.Y1[1] iqr.Y2 <- qt.Y2[3] - qt.Y2[1] # Identificação de outliers out <- subset(x, sub=x[1] >= qt.Y1[3] + 1.5 * iqr.Y1 | x[1] <= qt.Y1[1] - 1.5 * iqr.Y1 | x[1] < 0 | x[2] >= qt.Y2[3] + 1.5 * iqr.Y2 | x[2] <= qt.Y2[1] - 1.5 * iqr.Y2 | x[2] < 0) # Condição de saída if (dim(out)[1] == 0) return(x) # Remoção de outliers x <- subset(x, sub=x[1] < qt.Y1[3] + 1.5 * iqr.Y1 & x[1] > qt.Y1[1] - 1.5 * iqr.Y1 & x[1] >= 0 & x[2] < qt.Y2[3] + 1.5 * iqr.Y2 & x[2] > qt.Y2[1] - 1.5 * iqr.Y2 & x[2] >= 0) } }