Pautas de garantía de calidad y control de calidad (QA / QC) para una base de datos


18

Antecedentes

Estoy supervisando la entrada de datos de la literatura primaria en una base de datos . El proceso de ingreso de datos es propenso a errores, particularmente porque los usuarios deben interpretar el diseño experimental, extraer datos de gráficos y tablas y transformar los resultados en unidades estandarizadas.

Los datos se ingresan en una base de datos MySQL a través de una interfaz web. Hasta ahora se han incluido más de 10k puntos de datos de> 20 variables,> 100 especies y> 500 citas. Necesito realizar verificaciones de la calidad no solo de los datos variables, sino también de los datos contenidos en las tablas de búsqueda, como las especies asociadas con cada punto de datos, la ubicación del estudio, etc.

La entrada de datos está en curso, por lo que QA / QC deberá ejecutarse de forma intermitente. Los datos aún no se han publicado públicamente, pero estamos planeando publicarlos en los próximos meses.

Actualmente, mi QA / QC implica tres pasos:

  1. un segundo usuario verifica cada punto de datos.
  2. inspeccione visualmente el histograma de cada variable para detectar valores atípicos.
  3. los usuarios informan datos cuestionables después de obtener resultados espurios.

Preguntas

  1. ¿Existen pautas que pueda usar para desarrollar un procedimiento robusto de control de calidad / control de calidad para esta base de datos?
  2. El primer paso es el que consume más tiempo; ¿Hay algo que pueda hacer para que esto sea más eficiente?

1
Los lectores aquí también estarán interesados ​​en el siguiente hilo: Pruebas de comprobación de datos esenciales .
gung - Restablece a Monica

Respuestas:


25

Esta respuesta se centra en la segunda pregunta, pero en el proceso surgirá una respuesta parcial a la primera pregunta (pautas para un procedimiento de QA / QC).

Con mucho, lo mejor que puede hacer es verificar la calidad de los datos en el momento en que se intenta ingresar. Las comprobaciones e informes de los usuarios requieren mucha mano de obra y, por lo tanto, deben reservarse para más adelante en el proceso, tan tarde como sea posible.

Aquí hay algunos principios, pautas y sugerencias, derivados de una amplia experiencia (con el diseño y la creación de muchas bases de datos comparables y mucho más grandes que las suyas). No son reglas; no tienes que seguirlos para ser exitoso y eficiente; pero todos están aquí por excelentes razones y deberías pensar mucho en desviarte de ellos.

  1. Separar la entrada de datos de todas las actividades intelectualmente exigentes . No solicite a los operadores de ingreso de datos simultáneamente que verifiquen nada, cuenten nada, etc. Restrinja su trabajo a la creación de un facsímil de datos legible por computadora, nada más. En particular, este principio implica que los formularios de ingreso de datos deben reflejar el formato en el que originalmente obtuvo los datos, no el formato en el que planea almacenar los datos. Es relativamente fácil transformar un formato a otro más tarde, pero es un proceso propenso a errores intentar la transformación sobre la marcha mientras ingresa datos.

  2. Cree una pista de auditoría de datos : cada vez que se haga algo a los datos, comenzando en la etapa de entrada de datos, documente esto y registre el procedimiento de manera que sea fácil regresar y verificar lo que salió mal (porque las cosas saldrán mal). Considere completar campos para marcas de tiempo, identificadores de operadores de entrada de datos, identificadores de fuentes para los datos originales (como informes y sus números de página), etc. El almacenamiento es económico, pero el tiempo para localizar un error es costoso.

  3. Automatiza todo. Suponga que cualquier paso tendrá que rehacerse (en el peor momento posible, de acuerdo con la Ley de Murphy), y planifique en consecuencia. No intente ahorrar tiempo haciendo algunos "pasos simples" a mano.

  4. En particular, cree soporte para la entrada de datos : cree un front-end para cada tabla (incluso una hoja de cálculo puede funcionar bien) que proporcione una forma clara, simple y uniforme de ingresar datos. Al mismo tiempo, el front-end debería hacer cumplir su "negocio reglas: "es decir, debe realizar tantas verificaciones de validez simples como sea posible. (Por ejemplo, el pH debe estar entre 0 y 14; los recuentos deben ser positivos.) Idealmente, use un DBMS para aplicar controles de integridad relacional (por ejemplo, cada especie asociada con una medición realmente existe en la base de datos).

  5. Constantemente cuenta las cosas y verifica que las cuentas estén exactamente de acuerdo. Por ejemplo, si se supone que un estudio mide los atributos de 10 especies, asegúrese (tan pronto como se complete la entrada de datos) que realmente se reportan 10 especies. Aunque verificar los recuentos es simple y poco informativo, es excelente para detectar datos duplicados y omitidos.

  6. Si los datos son valiosos e importantes, considere la posibilidad de ingresar dos veces de manera independiente todo el conjunto de datos . Esto significa que cada elemento será ingresado en momentos separados por dos personas diferentes que no interactúan. Esta es una excelente manera de detectar errores tipográficos, datos faltantes, etc. La verificación cruzada puede ser completamente automatizada. Esto es más rápido, mejor para detectar errores y más eficiente que la verificación doble 100% manual. (La entrada de datos "personas" puede incluir dispositivos como escáneres con OCR).

  7. Use un DBMS para almacenar y administrar los datos. Las hojas de cálculo son excelentes para admitir la entrada de datos, pero saque sus datos de las hojas de cálculo o archivos de texto y en una base de datos real lo antes posible. Esto evita todo tipo de errores insidiosos al tiempo que agrega mucho soporte para las verificaciones automáticas de integridad de datos. Si es necesario, use su software estadístico para el almacenamiento y la gestión de datos, pero considere seriamente usar un DBMS dedicado: hará un mejor trabajo.

  8. Después de ingresar todos los datos y verificarlos automáticamente, dibuje imágenes : haga tablas ordenadas, histogramas, diagramas de dispersión, etc., y mírelos a todos. Estos se automatizan fácilmente con cualquier paquete estadístico completo.

  9. No le pida a la gente que haga tareas repetitivas que la computadora puede hacer . La computadora es mucho más rápida y confiable en estos casos. Acostúmbrese a escribir (y documentar) pequeños guiones y pequeños programas para realizar cualquier tarea que no pueda completarse de inmediato. Estos se convertirán en parte de su seguimiento de auditoría y permitirán que el trabajo se vuelva a hacer fácilmente. Use cualquier plataforma con la que se sienta cómodo y que sea adecuada para la tarea. (A lo largo de los años, dependiendo de lo que estaba disponible, he utilizado una amplia gama de tales plataformas y todas han sido efectivas en su forma, desde programas C y Fortran hasta scripts AWK y SED, scripts VBA para Excel y Word, y personalizados programas escritos para sistemas de bases de datos relacionales, SIG y plataformas de análisis estadístico como R y Stata).

Si sigue la mayoría de estas pautas, aproximadamente el 50% -80% del trabajo para ingresar datos en la base de datos será el diseño de la base de datos y la escritura de los scripts de soporte. No es inusual obtener el 90% a través de un proyecto de este tipo y completar menos del 50%, pero aún así terminar a tiempo: una vez que todo está configurado y probado, la entrada y verificación de datos puede ser increíblemente eficiente.


44
Bueno, estoy bastante enamorado de esta respuesta. Me gustaría enfatizar que, en el siguiente punto 4, debe mantener las comprobaciones simples: a menudo hay pequeñas incongruencias en los datos reales que sus personas de entrada deberían poder ingresar pero que no podrá prever. Por ejemplo, me aseguro de que las fechas se ingresen como fechas; pero dejé de tener reglas estrictas sobre los rangos de fechas y, en cambio, verifiqué eso con informes y seguí los valores fuera de los límites con quien ingresó la información.
Matt Parker

55
Evitar que alguien ingrese un valor que cree que es correcto puede introducir más errores que detectarlo e investigarlo.
Matt Parker

+1, gran respuesta. Estoy de acuerdo con Matt, también me encanta esta respuesta :)
mpiktas

1
@Matt Buenos puntos, ambos. Estoy completamente de acuerdo. Con respecto al primero, un buen enfoque es probar los procedimientos de entrada de datos en un pequeño subconjunto representativo de los datos y revisar a fondo todos los problemas que surjan. Esto no abordará todo lo que pueda surgir, pero identifica la mayoría de los problemas importantes desde el principio y le permite tratarlos de manera efectiva.
whuber

2
Agregar como esta información es útil en un solo lugar. 1. Cree un documento de reglas comerciales que contenga los metadatos. incluidas las reglas utilizadas para producir variables derivadas como la edad. 2. Si esta es una base de datos administrativa en particular, suponga que las variables cambiarán con el tiempo, por ejemplo, se agregan nuevos códigos. En los metadatos, explique cuándo ocurrió el cambio y cómo esto puede afectar cualquier trabajo de series temporales. 3. Si la base de datos se agregará con el tiempo, los cambios de fecha y hora en la base de datos.
Michelle

3

DataOne proporciona un conjunto útil de mejores prácticas de gestión de datos que se pueden filtrar por etiqueta. Las mejores prácticas etiquetadas con "calidad" se encuentran en http://www.dataone.org/best-practices/quality , reiterando y ampliando muchos de los puntos hechos por @whuber. Aquí hay una lista de los temas cubiertos allí (en orden alfabético):

  • Comunicar la calidad de los datos.
  • Confirmar una coincidencia entre los datos y su descripción en metadatos
  • Considere la compatibilidad de los datos que está integrando
  • Desarrollar un plan de aseguramiento y control de calidad.
  • Vuelva a verificar los datos que ingrese
  • Garantizar un control de calidad básico.
  • Asegure integridad y accesibilidad al hacer copias de seguridad de datos
  • Identificar valores atípicos
  • Identificar valores estimados.
  • Proporcionar información de versión para uso y descubrimiento
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.