COMPRENDIENDO LA MEDIA K-WINSORIZADA - UN EJEMPLO EN R

COMPRENDIENDO LA MEDIA K-WINSORIZADA - UN EJEMPLO EN R

INTRODUCCIÓN

La media k-winsorizada es una medida de posición central robusta, de fácil cálculo, que viene a paliar la extrema sensibilidad de la media muestral respecto de los outliers.

Lo que vamos a hacer en este artículo, es generar una muestra aleatoria de tamaño n=30 e insertarle outliers. Tras esto, usaremos boxplots para comparar el efecto de calcular la media antes y después de aplicar la “winsorización” de la muestra.

Esto permitirá visualizar con facilidad qué sucede cuando aplicamos este tipo de medidas de posición central robusta (media k-winsorizada, centrimedia, medias recortadas).

El código en R es muy sencillo y está hecho para que pueda ser copiado/pegado y adaptado facilmente a tus necesidades.

CÁLCULO DE LA MEDIA K-WINSORIZADA - CÓDIGO EN R

Mucho menos usada que la mediana, la media k-winsorizada se calcula de la siguiente forma:

set.seed(235) #garantizamos la reproducibilidad del ejemplo
k<-10
n<-30
x<-sample(200:500,n,replace=TRUE)
cat("muestra: ",x)
## muestra:  476 445 312 319 232 309 429 289 362 236 228 279 211 242 271 278 289 212 437 489 203 235 228 419 468 485 474 313 478 430

Para que el ejemplo sirva de algo, necesitamos forzar que tenga outliers. Puede hacerse de muchas formas, por ejemplo así:

x<-c(sample(1:10,5,replace=TRUE),x,sample(900:1000,5,replace=TRUE))
n<-length(x) #actualizar longitud n.
cat("muestra con outliers insertados:",x)
## muestra con outliers insertados: 2 5 5 6 8 476 445 312 319 232 309 429 289 362 236 228 279 211 242 271 278 289 212 437 489 203 235 228 419 468 485 474 313 478 430 933 944 988 923 959

Ahora que tenemos nuestro vector creado, vamos a calcular la media k-winsorizada y a compararla con la media estándard.

Empezaremos por echar un vistazo al vector x. Un boxplot es la mejor herramienta para visualizar los outliers:

boxplot(x,col="tomato",main="outliers del vector original",horizontal=TRUE)

Es evidente que tenemos una buena colección de outliers.

Lo primero que haremos será ordenar la muestra y eliminar los k primeros valores y los k-últimos. Hemos elegido un k alto, k=10, para que los elementos insertados en la muestra sean eliminados y reemplazados por los nuevos. De esta forma se entiende mejor qué pasa:

y<-sort(x)
cat("vector ordenado:",y)
## vector ordenado: 2 5 5 6 8 203 211 212 228 228 232 235 236 242 271 278 279 289 289 309 312 313 319 362 419 429 430 437 445 468 474 476 478 485 489 923 933 944 959 988

Ahora reemplazamos los k primeros elementos por el k+1 y los k ultimos por el n-k

y[1:k]<-y[k+1]
y[(n-k+1):n]<-y[n-k]
cat("vector tras reemplazar elementos:",y)
## vector tras reemplazar elementos: 232 232 232 232 232 232 232 232 232 232 232 235 236 242 271 278 279 289 289 309 312 313 319 362 419 429 430 437 445 468 468 468 468 468 468 468 468 468 468 468

Podemos ver cómo ha variado la media:

boxplot(y,x,main="comparación antes y después de winsorizar",names=c("despues","antes"),horizontal=TRUE,col=c("turquoise","tomato"))

Puede verse que los outliers han desaparecido. Además, la mediana continúa donde estaba (es una medida robuta) y hemos ganado también que Q1, que estaba desplazado, se ha movido a una posición más central. Eliminar los k primeros y k últimos términos ha producido una distribución más compacta

Finalmente, verifiquemos numéricamente qué ha sucedido con las distribuciones

summary(x)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     2.0   231.0   310.5   371.3   469.5   988.0
summary(y)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   232.0   232.0   310.5   339.9   468.0   468.0

Puede verse cómo las medianas son iguales, el rango intercuartílico también lo es (casi), pero los mínimos y máximos difieren notablemente.

EL INCONVENIENTE DE LA MEDIA K-WINSORIZADA

La media k-winsorizada tiene un severo problema: el valor elegido de k es totalmente arbitrario. De hecho, nosotros mismos, en nuestro ejemplo, hemos elegido k=10 porque así eliminábamos de la faz de la tierra los elementos más extremos.

Pero, ¿qué le pasa a k=5 o k=3? Son elecciones igualmente válidas.

Debemos insistir en que la eliminación de outliers no es algo trivial. Sólo se pueden eliminar datos de las muestras cuando estemos totalmente seguros de que son producto de un error de medición o algún otro error, jamás porque nos molestan en nuestros análisis. Al eliminar outliers sin un sólido motivo, estamos manipulando inadecuadamente el experimento forzando resultados que pueden ser totalmente falsos.

Comentarios

Entradas populares de este blog

UNA BREVE EXPLICACIÓN DE LA LEY DE LAS ESPERANZAS ITERADAS

UN EJEMPLO DETALLADO DE PRE-PROCESAMIENTO EN R - IMPUTACIÓN DE DATOS FALTANTES

Un mundo de sucesos imposibles - El "tongo" de la Bonoloto.