Pruebas de comprobación de datos esenciales.

93

En mi trabajo, a menudo trabajo con conjuntos de datos de otras personas, los no expertos me traen datos clínicos y los ayudo a resumirlos y realizar pruebas estadísticas.

El problema que tengo es que los conjuntos de datos que traigo casi siempre están plagados de errores tipográficos, inconsistencias y todo tipo de problemas. Estoy interesado en saber si otras personas tienen pruebas estándar que hacen para intentar verificar cualquier conjunto de datos que ingrese.

Solía ​​dibujar histogramas de cada variable solo para echar un vistazo, pero ahora me doy cuenta de que hay muchos errores horribles que pueden sobrevivir a esta prueba. Por ejemplo, tuve un conjunto de datos de medidas repetidas el otro día donde, para algunas personas, la medida repetida era idéntica en el Tiempo 2 como lo fue en el Tiempo 1. Posteriormente, se demostró que era incorrecta, como era de esperar. Otro conjunto de datos tenía un individuo que pasó de ser muy gravemente desordenado (representado por un puntaje alto) a estar libre de problemas, representado por 0 en todos los ámbitos. Esto es simplemente imposible, aunque no pude probarlo definitivamente.

Entonces, ¿qué pruebas básicas puedo ejecutar en cada conjunto de datos para asegurarme de que no tengan errores tipográficos y que no contengan valores imposibles?

¡Gracias por adelantado!

Chris Beeley
fuente
3
Gran pregunta Sospecho que será difícil dar respuestas generales porque las comprobaciones dependerán de los detalles del conjunto de datos.
mark999
2
@ mark999 Estoy de acuerdo. Estaré interesado en leer las respuestas a esta pregunta. Existen algunas estrategias generales, pero creo que muchas comprobaciones tienen que ver con la construcción de expectativas específicas del dominio, tanto sobre el aspecto que deben tener los datos como sobre algunos de los errores comunes que pueden surgir.
Jeromy Anglim
1
Los lectores aquí también estarán interesados ​​en el siguiente hilo: Pautas de garantía de calidad y control de calidad (qa / qc) para una base de datos .
gung - Restablece a Monica

Respuestas:

77

Ayuda a entender cómo se registraron los datos.

Déjame compartir una historia . Una vez, hace mucho tiempo, muchos conjuntos de datos se almacenaban solo en una copia impresa que se desvanecía. En esos días oscuros contraté con una organización (de gran pedigrí y tamaño; muchos de ustedes probablemente poseen su stock) para computarizar alrededor de 10 ^ 5 registros de datos de monitoreo ambiental en una de sus plantas de fabricación. Para hacer esto, marqué personalmente un estante de informes de laboratorio (para mostrar dónde estaban los datos), creé formularios de entrada de datos y contraté una agencia temporal para alfabetizartrabajadores para escribir los datos en los formularios. (Sí, tenía que pagar más por las personas que sabían leer). Debido al valor y la sensibilidad de los datos, realicé este proceso en paralelo con dos trabajadores a la vez (que generalmente cambiaban de un día a otro). Tomó un par de semanas. Escribí un software para comparar los dos conjuntos de entradas, identificando y corrigiendo sistemáticamente todos los errores que aparecían.

Chico, hubo errores! ¿Qué puede ir mal? Una buena manera de describir y medir errores es a nivel del registro básico , que en esta situación era una descripción de un único resultado analítico (la concentración de algún químico, a menudo) para una muestra particular obtenida en un punto de monitoreo dado en un fecha dada Al comparar los dos conjuntos de datos, encontré:

  • Errores de omisión : un conjunto de datos incluiría un registro, otro no. Esto usualmente sucedió porque (a) se pasaría por alto una o dos líneas en la parte inferior de una página o (b) se omitiría una página completa.

  • Errores aparentes de omisión que fueron realmente errores de entrada de datos. Un registro se identifica mediante un nombre de punto de monitoreo, una fecha y el "analito" (generalmente un nombre químico). Si alguno de estos tiene un error tipográfico, no coincidirá con los otros registros con los que está relacionado. En efecto, el registro correcto desaparece y aparece un registro incorrecto.

  • Duplicación falsa . Los mismos resultados pueden aparecer en múltiples fuentes, transcribirse varias veces y parecen ser verdaderas medidas repetidas cuando no lo son. Los duplicados son fáciles de detectar, pero decidir si son erróneos depende de saber si los duplicados deberían aparecer en el conjunto de datos. A veces simplemente no puedes saberlo.

  • Errores de entrada de datos francos . Los "buenos" son fáciles de atrapar porque cambian el tipo de referencia: usar la letra "O" para el dígito "0", por ejemplo, convierte un número en un no número. Otros errores buenos cambian tanto el valor que se puede detectar fácilmente con pruebas estadísticas. (En un caso, el primer dígito en "1,000,010 mg / Kg" se cortó, dejando un valor de 10. ¡Es un cambio enorme cuando se habla de una concentración de pesticida!) Los errores graves son difíciles de detectar porque cambian un valor en uno que se ajusta (más o menos) con el resto de los datos, como escribir "80" para "50". (Este tipo de error ocurre con el software OCR todo el tiempo).

  • Transposiciones . Se pueden ingresar los valores correctos pero asociados con las claves de registro incorrectas. Esto es insidioso, porque las características estadísticas globales del conjunto de datos pueden permanecer inalteradas, pero se pueden crear diferencias espurias entre los grupos. Probablemente solo un mecanismo como la doble entrada sea capaz de detectar estos errores.

Una vez que esté al tanto de estos errores y sepa, o tenga una teoría, de cómo ocurren, puede escribir scripts para controlar sus conjuntos de datos en busca de la posible presencia de dichos errores y marcarlos para obtener más atención. No siempre puede resolverlos, pero al menos puede incluir un campo de "comentario" o "indicador de calidad" para acompañar los datos a lo largo de su análisis posterior.

Desde entonces, he prestado atención a los problemas de calidad de los datos y he tenido muchas más oportunidades para realizar comprobaciones exhaustivas de grandes conjuntos de datos estadísticos. Ninguno es perfecto; Todos se benefician de los controles de calidad. Algunos de los principios que he desarrollado a lo largo de los años para hacer esto incluyen

  1. Siempre que sea posible, cree redundancia en los procedimientos de entrada y transcripción de datos: sumas de verificación, totales, entradas repetidas: cualquier cosa que respalde las verificaciones internas automáticas de consistencia.

  2. Si es posible, cree y explote otra base de datos que describa cómo deberían verse los datos: es decir, metadatos legibles por computadora. Por ejemplo, en un experimento de drogas puede saber de antemano que cada paciente será visto tres veces. Esto le permite crear una base de datos con todos los registros correctos y sus identificadores con los valores que esperan ser completados. Rellene con los datos que le proporcionó y luego verifique si hay duplicados, omisiones y datos inesperados.

  3. Siempre normalice sus datos (específicamente, póngalos en al menos un cuarto formulario normal ), independientemente de cómo planee formatear el conjunto de datos para el análisis. Esto lo obliga a crear tablas de cada entidad conceptualmente distinta que está modelando. (En el caso ambiental, esto incluiría tablas de ubicaciones de monitoreo, muestras, productos químicos (propiedades, rangos típicos, etc.), pruebas de esas muestras (una prueba generalmente cubre un conjunto de productos químicos) y los resultados individuales de esas pruebas. Al hacerlo, crea muchas comprobaciones efectivas de la calidad y la coherencia de los datos e identifica muchos valores potencialmente faltantes o duplicados o inconsistentes.

    Este esfuerzo (que requiere buenas habilidades de procesamiento de datos pero es sencillo) es asombrosamente efectivo. Si aspira a analizar conjuntos de datos grandes o complejos y no tiene un buen conocimiento práctico de las bases de datos relacionales y su teoría, agréguelo a su lista de cosas que debe aprender lo antes posible. Pagará dividendos a lo largo de su carrera.

  4. Realice siempre tantas verificaciones "estúpidas" como sea posible . Estas son verificaciones automáticas de cosas obvias, como que las fechas caen dentro de los períodos esperados, los recuentos de pacientes (o productos químicos o lo que sea) siempre se suman correctamente, que los valores siempre son razonables (por ejemplo, un pH debe estar entre 0 y 14 y tal vez en un rango mucho más estrecho para, por ejemplo, lecturas de pH en sangre), etc. Aquí es donde la experiencia en el dominio puede ser de mayor ayuda: el estadístico puede hacer preguntas estúpidas sin miedo a los expertos y explotar las respuestas para verificar los datos.

Por supuesto, se puede decir mucho más: el tema vale un libro, pero esto debería ser suficiente para estimular ideas.

whuber
fuente
55
excelente anexo a las pautas de QA / QC de
David LeBauer
2
Una pregunta de seguimiento, el tema vale un libro, ¿hay un libro?
Chris Beeley
55
+1 - maravillosa respuesta whuber. Desearía que tuvieras un blog :) (Me hubiera encantado agregar tu escrito a r-bloggers.com)
Tal Galili
2
¡Debes escribir el libro que vale el tema!
Zach
1
Esto es tan complicado que muchas empresas de consultoría se especializan en "recuperación / limpieza / almacenamiento de datos".
Lucas Reis
25

@whuber hace buenas sugerencias; Solo agregaría esto: Gráficos, gráficos, gráficos, gráficos. Diagramas de dispersión, histogramas, diagramas de caja, diagramas de líneas, mapas de calor y cualquier otra cosa que se te ocurra. Por supuesto, como ha encontrado, hay errores que no serán evidentes en ninguna parcela, pero son un buen lugar para comenzar. Solo asegúrese de tener claro cómo su software maneja los datos faltantes, etc.

Dependiendo del contexto, puede ser creativo. Una cosa que me gusta hacer con los datos multivariados es ajustar algún tipo de modelo de factor / PCA probabilístico (algo que hará una imputación múltiple para los datos faltantes) y observar las puntuaciones de tantos componentes como sea posible. Los puntos de datos que obtienen un puntaje alto en los componentes / factores menos importantes a menudo son valores atípicos que de otro modo no vería.

JMS
fuente
55
El trazado de +1 es para las estadísticas lo que la votación es para Chicago: algo que todo el mundo hace temprano y con frecuencia. ;-)
whuber
15

Grandes cosas que tiendo a comprobar:

  1. Tipo de variable: para ver que un número es numérico y no factor / carácter (podría indicar algún problema con los datos ingresados)
  2. Niveles de valor consistentes: para ver que una variable con el nombre "t1" no se encontró nuevamente con el nombre "t1" o "t 1"
  3. Valores atípicos: vea que los rangos de valor tienen sentido. (¿obtuvo un valor de presión arterial de 0? o menos?). Aquí a veces descubrimos que alguien codificó -5 como valor perdido, o algo así.
  4. Restricciones lineales. No uso eso, pero algunos encuentran que desean tener restrucciones en las dependencias de algunas columnas (las columnas A, B deben agregarse a C, o algo así). Para esto, puede echar un vistazo al paquete deducorrect (conocí al orador, Mark van der Loo, en la última conferencia useR, y quedé muy impresionado con su paquete)
  5. Muy poca aleatoriedad. A veces, los valores deben redondearse a algunos valores o truncarse en algún momento. Este tipo de cosas a menudo son más claras en los diagramas de dispersión.
  6. Valores perdidos: asegurarse de que lo que falta no esté relacionado con alguna otra variable (falta al azar). Pero no tengo una regla de oro para dar aquí.
  7. Filas vacías o filas en su mayoría sin valores. Estos deben (generalmente) encontrarse y omitirse.

Gran pregunta, por cierto: espero leer la experiencia de otras personas sobre el asunto.

Tal Galili
fuente
10

Cuando tiene medidas a lo largo del tiempo (" datos longitudinales "), a menudo es útil verificar los gradientes , así como las distribuciones marginales. Este gradiente se puede calcular a diferentes escalas. En términos más generales, puede realizar transformaciones significativas en sus datos (fourier, wavelet) y verificar las distribuciones de los márgenes de los datos transformados.

robin girard
fuente
7

Algunas por las que siempre paso:

  1. ¿Existe el número de registros que se supone que debe haber? Por ejemplo, si extrajo sus datos de otra fuente, o es un subconjunto de datos de otra persona, sus números parecen razonables. Pensarías que esto estaría cubierto, pero estarías ... sorprendido.
  2. ¿Están todas tus variables allí? ¿Los valores de esas variables tienen sentido? Por ejemplo, si una variable Sí / No / Falta se codifica "1,2,3", ¿qué significa eso?
  3. ¿Dónde están tus valores perdidos? ¿Hay algunas variables que parecen estar sobrecargadas con información faltante? ¿Hay ciertos temas con números masivos de valores perdidos?

Esos son los primeros pasos que sigo para asegurarme de que un conjunto de datos esté listo incluso para algo como el análisis exploratorio de datos. Simplemente sentado, deambulando por los datos, algunos dicen "¿Eso ... parece correcto?

Fomite
fuente
1

Usaría el método de muestreo de aceptación para cada columna (da el número de corte donde puede trazar la línea entre alta calidad y baja calidad), hay una calculadora en línea para eso.

Tareq Shahwan
fuente
3
esto encajaría mejor como un comentario que como una respuesta tal como está actualmente. explique un poco, proporcione enlaces a recursos o referencias, etc.
Antoine
1
Es difícil ver muchas circunstancias en las que esto sería efectivo y fácil encontrar muchas para las cuales no funciona (como cadenas u otros datos nominales) o es terrible (porque ignora por completo todas las relaciones multivariadas). También parece arbitrario, porque a excepción de las series de tiempo (y algunos datos relacionados), no hay un orden inherente en los registros de una tabla de datos, mientras que muchos (si no todos) los métodos de muestreo de aceptación dependen de la secuencia.
whuber
Bueno, aquí está la calculadora para usar: sqconline.com/… Siempre y cuando use el muestreo de aceptación de aleatorización puede usarse. Si desea complicarlo, puede usar una técnica de muestreo sistemática y luego usar el muestreo de aceptación en cada segmento
Tareq Shahwan