Máximos y mínimos en R, cómo y dónde encontrarlos

Creo que es una buena práctica que mientras estemos realizando el análisis de datos, justo antes de meternos en faena y dar por válido un archivo de datos (en mi caso, un .CSV), exploremos los datos, para ver qué es lo que tenemos entre manos. Después del tedioso y poco reconocido trabajo de depurar una sentencia SQL que me incluya y seleccione los datos que quiero, tengo que asegurarme de que estos datos son de calidad: que no haya demasiados valores vacíos, y lo peor de todo, que no haya valores outlier.

Un valor outlier, o los outliers, son valores extremos y atípicos, numéricamente distantes del resto de los datos. Los valores estadísticos que calculemos serán erróneos, y no reflejarán la realidad. Como ejemplo, mi propia experiencia. Tras mucho esfuerzo he conseguido el fichero .CSV, así que lo primero que hago en R es:

patients <- read.table("research.csv", header=TRUE, sep=",")
attach(pacients)
sumary(patients)

Lo que me encuentro es lo siguiente:

Veo algunas variables que son claramente valores anómalos, como por ejemplo, peso, Hbglic y glucemia. Evidentemente, es difícil que nadie pese 670 Kg, o que alguien tenga un valor de Hbglic de 104.  El primer abordaje que hice fue identificar la línea donde estaba el valor anómalo:

max(peso)  # me da el valor máximo de esa variable, pero no me dice dónde está
[1]670
which.max(peso)  # me indica el 'index', para que pueda encontrarlo
[] 12

El problema es que sólo me da eso, el valor máximo (o el mínimo, en caso de usar la función which.min()). Debería ir uno a uno, y eso es bastante tedioso. Sin tener que recurrir a funciones creadas por el usuario, utilizaré lo siguiente:

which(peso>150)
[1]  12   219  386   688   1209   1729   2254

Sé ahora que en la líneas 12, 219, etc, tengo valores extremos, con el criterio que he indicado, que el peso sea mayor de 150.

Tras hallar las líneas con valores extremos, dependerá de mí si deseo eliminar toda la línea o corregir el valor. En casi todos los casos he corregido el valor, tras comprobar que se trataba de un error de escritura (por ejemplo, escribir 104 en lugar de 10,4), pero antes de modificar el valor tenía que asegurarme. En investigación, una de las cosas más importantes es ser honesto. No se puede realizar un análisis con datos falsos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *