¿Cómo hago para que las personas cuiden mejor los datos?

42

Mi lugar de trabajo tiene empleados de una amplia gama de disciplinas, por lo que generamos datos en muchas formas diferentes. En consecuencia, cada equipo ha desarrollado su propio sistema para almacenar datos. Algunos usan bases de datos Access o SQL; algunos equipos (para mi horror) dependen casi por completo de las hojas de cálculo de Excel. A menudo, los formatos de datos cambian de un proyecto a otro. En algunos casos, llamarlo 'sistema' es demasiado amable.

Los problemas que esto conlleva son que tengo que escribir un nuevo código para limpiar los datos de cada proyecto, lo cual es costoso; las personas que editan manualmente hojas de cálculo hacen que la reproducibilidad y la auditoría de datos sean casi imposibles; e incluso peor, existe la posibilidad de que los datos se pierdan o se vuelvan incorrectos.

Se me ha dado la oportunidad de discutir estos problemas con un miembro de la junta de la compañía y necesito averiguar qué decirle. Creo que ya lo he convencido de que tenemos un problema y que hacerlo bien permitirá una mejor ciencia y ahorrar dinero. La pregunta es: ¿a qué deberíamos aspirar y cómo llegamos allí?

Más específicamente:

¿Cómo deberíamos almacenar los datos, de manera que nos permitan rastrearlos desde la creación hasta la publicación en un documento? (¿Bases de datos almacenadas en un servidor central?)

¿Cómo se hace para estandarizar los formatos de bases de datos?

¿Existen buenos recursos para educar a las personas sobre cómo cuidar los datos? (Como regla general, los higienistas ocupacionales y los ingenieros de explosivos no son nerds de datos; por lo tanto, se prefiere el contenido no técnico).

algodón Richie
fuente
La pregunta del título es diferente a la pregunta sustantiva en la publicación. El primero pregunta cómo convencer a las personas para que se encarguen de los datos, y el segundo pregunta sobre el mejor lugar para almacenar datos. ¿Cuál es la pregunta que quieres responder?
Vuelva a instalar Mónica

Respuestas:

16

Vale la pena considerar ideas del mundo del software. En particular, podría pensar en configurar: un repositorio de control de versiones y un servidor de base de datos central.

El control de versiones probablemente lo ayude con archivos flotantes libres, como Excel y archivos de texto, etc. Pero esto también podría incluir archivos asociados con datos, como R, SAS, etc. La idea es que hay un sistema que rastrea los cambios a sus archivos que le permiten saber qué sucedió cuando y retroceder a un punto en el pasado si es necesario.

Donde ya tenga bases de datos SQL, lo mejor que puede hacer es configurar un servidor central y contratar un DBA capaz . El DBA es la persona encargada de garantizar y mantener la integridad de los datos. Parte de la descripción del trabajo involucra cosas como copias de seguridad y ajustes. Pero otra parte es más relevante aquí: controlar cómo ingresan los datos al sistema, garantizar que se cumplan las restricciones, establecer políticas de acceso para evitar daños a los datos, configurar vistas para exponer formatos de datos personalizados o simplificados, etc. En resumen, implementando una metodología en torno al proceso de datos. Incluso si no contrata un DBA real (los buenos son muy difíciles de reclutar), tener un servidor central aún le permite comenzar a pensar en instituir algún tipo de metodología en torno a los datos.

ars
fuente
3
Absolutamente de acuerdo en el control de versiones. Lo uso; al igual que una proporción sustancial de los desarrolladores y estadísticos. (Me gustaría ver una adopción del 100%, pero ese es otro sueño imposible por ahora). Lo difícil es conseguir que no sean expertos en tecnología para usarlo. Cualquier idea apreciada.
Richie Cotton
2
@Richie Cotton: No sé por qué, pero el control de versiones parece ser un concepto difícil de entender para los no técnicos. Las personas continúan haciendo algunos cambios en un archivo, cambiándolo de nombre y enviándolo por correo electrónico. Cómo odio esos archivos "PaperDraftCorrectedByJohnRevision3RewroteByLeslie-NewVersion3.doc" ...
nico
12

Un recurso gratuito en línea es el conjunto de Pautas estadísticas de buenas prácticas del Centro de servicios estadísticos de la Universidad de Reading .

En particular:

parada
fuente
1
Excelentes enlaces. Creo que dos mensajes importantes que debo transmitir son: necesitamos una verificación de datos más automatizada y debo comenzar a explicar cómo separar la entrada de datos y la presentación de datos.
Richie Cotton
6

Creo que, en primer lugar, debe preguntarse: ¿por qué la gente usa Excel para hacer tareas para las que Excel no fue creado?

1) Ya saben cómo usarlo 2) Funciona. Tal vez de una manera torpe pero funciona y eso es lo que quieren

Copio una serie de números, presiono un botón y tengo un diagrama. Tan fácil como eso.

Entonces, hágales entender qué ventajas pueden tener al usar conjuntos de datos centralizados, bases de datos adecuadas (tenga en cuenta que Access NO es uno de esos), etc. Pero recuerde los dos puntos anteriores: necesita configurar un sistema que funcione y sea fácil de usar.

¡He visto muchas veces sistemas mal hechos que me dieron ganas de volver no a Excel sino a lápiz y papel!

Solo como ejemplo, tenemos un horrible sistema de pedidos donde trabajo.

Solíamos tener que completar un formulario de pedido que era una hoja de cálculo de Excel en la que ingresaba el nombre del producto, la cantidad, el costo, etc. Sumaba todo, agregaba TVA, etc., lo imprimió y lo entregó a la secretaria que haría la orden y eso fue todo. No eficiente, pero funcionó.

Ahora tenemos un sistema de pedidos en línea, con una base de datos centralizada y todo. Es un horror No debería tomarme 10 minutos completar un maldito formulario debido a los atajos de teclado poco positivos y las diversas rarezas del software. Y tenga en cuenta que soy bastante conocedor de la informática, así que imagine lo que les sucede a las personas que no les gustan las computadoras ...

nico
fuente
Acordó que las cosas deben ser fáciles de usar. Dado que las personas se vuelven muy protectoras sobre sus prácticas laborales, cualquier cambio debe facilitarles la vida o fracasarán.
Richie Cotton
5

Subrayo todas las respuestas dadas, pero llamemos gato a gato: en muchos espacios de trabajo es casi imposible convencer a la gerencia de que es necesaria la inversión en herramientas de software "exóticas" (exóticas para ellos), y mucho menos contratar a alguien que pueda establecer arriba y mantenlo. Les he dicho a algunos clientes que se beneficiarían enormemente de contratar a un estadístico con experiencia en software y bases de datos, pero la respuesta general es "no puedo hacer".

Entonces, mientras eso no suceda, hay algunas cosas simples que puede hacer con Excel que le facilitarán la vida. Y lo primero de esto es sin duda el control de versiones. Puede encontrar más información sobre el control de versiones con Excel aquí .

Algunas cosas sobre el uso de Excel

A las personas que usan EXCEL a menudo les gustan las características de fórmula de EXCEL. Sin embargo, esta es la fuente más importante de errores dentro de las hojas EXCEL, y de problemas al intentar leer en archivos EXCEL en lo que respecta a mi experiencia. Me niego a trabajar con hojas que contienen fórmulas.

También obligo a todas las personas con las que trabajo a entregar las hojas EXCEL en formato plano, lo que significa que:

  • La primera fila contiene los nombres de las diferentes variables.
  • La hoja de cálculo comienza en la celda A1.
  • Todos los datos se colocan en columnas, sin interrupciones y sin formato.
  • Si es posible, los datos también se guardan en formato .csv. No es difícil escribir un script VBA que extraiga los datos, lo formatee y lo coloque en un archivo .csv. Esto también permite un mejor control de la versión, ya que puede realizar un volcado .csv de los datos todos los días.

Si hay una estructura general que los datos siempre tienen, entonces podría ser bueno desarrollar una plantilla con macros VB subyacentes para agregar datos y generar el conjunto de datos para el análisis. Esto en general evitará que cada empleado presente su propio sistema de almacenamiento de datos "genio", y le permite escribir su código en función de esto.

Dicho esto, si puede convencer a todos de usar SQL (y una interfaz para ingresar datos), puede vincular R directamente a ese. Esto aumentará en gran medida el rendimiento.

Estructura de datos y gestión

Como regla general, los datos almacenados en las bases de datos (o en las hojas EXCEL si insisten) deben ser el mínimo absoluto, lo que significa que cualquier variable que pueda calcularse a partir de algunas otras variables no debe estar contenida en la base de datos. Eso sí, a veces también puede ser beneficioso almacenar esas variables derivadas o transformadas, si los cálculos son tediosos y toman mucho tiempo. Pero estos deben almacenarse en una base de datos separada, si es necesario, vinculada a la original.

También se debe pensar en lo que se considera un caso (y, por lo tanto, una fila). Como ejemplo, las personas tienden a producir series de tiempo al hacer una nueva variable para cada punto de tiempo. Si bien esto tiene sentido en un EXCEL, la lectura de estos datos exige bastante cambio en la matriz de datos. Lo mismo para comparar grupos: debe haber un indicador de grupo y una variable de respuesta, no una variable de respuesta para cada grupo. De esta forma, las estructuras de datos también pueden estandarizarse.

Una última cosa con la que me encuentro con frecuencia es el uso de diferentes métricas. Las longitudes se dan en metros o centímetros, las temperaturas en Celcius, Kelvin o Farenheit, ... Uno debe indicar en cualquier extremo frontal o en cualquier plantilla en qué unidad se mide la variable.

E incluso después de todas estas cosas, aún desea tener un paso de control de datos antes de comenzar realmente con el análisis. Nuevamente, este puede ser cualquier script que se ejecute diariamente (por ejemplo, durante la noche) en nuevas entradas, y que señale problemas de inmediato (fuera de rango, tipo incorrecto, campos faltantes, ...) para que puedan corregirse lo más rápido posible. Si tiene que volver a una entrada que se hizo hace 2 meses para averiguar qué está mal y por qué, es mejor que obtenga algunas buenas "habilidades Sherlock" para corregirlo.

mis 2 centavos

Joris Meys
fuente
Algunos puntos muy interesantes aquí. Es probable que convencer a las personas para que simplifiquen y estandaricen sus hojas de cálculo será más exitoso que lograr que las abandonen. Tampoco tenía idea de que el control de versiones podría integrarse con Excel. Bueno saber.
Richie Cotton
2
Con respecto al consejo de no almacenar variables redundantes: esto es apropiado para los RDBMS, pero me gustaría sugerir que se debe alentar lo contrario para las hojas de cálculo. Estos últimos son tan propensos a errores que los mecanismos para detectar y corregir errores son invaluables. Uno de los mejores consiste en información redundante, como campos calculados y resúmenes estadísticos. Por ejemplo, si la columna C es la relación de las columnas A y B, entonces se puede detectar un error en una sola columna en cualquier fila y, por lo general, solucionarlo.
whuber
1
@whuber: eso es lo que verificamos en el paso de control de datos. Puede usar esa columna adicional para verificar rápidamente, pero no debe guardarla en la hoja final. Las fórmulas en las hojas de cálculo son horrorosas, y cuanto más grande es la hoja de cálculo, más difícil es extraer los datos. Además, en el caso de Excel, lucharás contra las diferencias entre .xls y .xlsx de todos modos. Asegúrese de que la decisión de un gerente de actualizar Microsoft Office puede romper toneladas de código si depende en gran medida de los archivos de Excel. Entonces: guarde como csv y mantenga estos archivos csv lo más pequeños posible.
Joris Meys
Después de pasar una parte importante de los últimos 24 años de mi carrera lidiando con los datos transmitidos en hojas de cálculo y administrando bases de datos importantes, debo discrepar respetuosamente. No existe el "control" sobre las hojas de cálculo (ya sea .xls, .xlsx, .wks, .wb *, etc.) o incluso archivos csv. La presencia de información redundante en dichos archivos, incluso cuando están disponibles solo en forma impresa, ha resucitado muchas veces algunas bases de datos bastante grandes (más de 100k registros). Cada vez que esto sucede, yo (y mis clientes) hemos estado agradecidos por los despidos.
whuber
@whuber: Hacemos el control de datos con scripts adicionales, buscando los valores imposibles / valores atípicos / casos extraños. A eso me refiero con el paso de control de datos. Este es el estándar de la industria por cierto en compañías como SGS y otras que realizan análisis de ensayos clínicos, etc. La información redundante que se necesita se mantiene en bases de datos separadas. Si uno de ellos falla, el otro es necesario para la resurrección. En caso de que no tenga un sistema de respaldo decente, eso es ...
Joris Meys
3

VisTrails: un sistema de procedencia y flujo de trabajo científico basado en Python . Esta charla dada en PyCon 2010 tiene algunas buenas ideas. Vale la pena escucharlo incluso si no está interesado en usar VisTrails o Python. Al final, creo que podría exigir que exista un documento claro para reproducir los datos. Y requieren alguna validación que puedan.

Citando:

"En esta charla, daremos una visión general de VisTrails ( http://www.vistrails.org ), un flujo de trabajo científico de código abierto basado en python que captura de forma transparente la procedencia (es decir, el linaje) de los productos de datos y los procesos utilizados para obtener estos productos. Mostraremos cómo VisTrails se puede utilizar para optimizar la exploración y visualización de datos. Mediante ejemplos reales, demostraremos características clave del sistema, incluida la capacidad de crear visualmente canales de procesamiento de información que combinen múltiples herramientas e bibliotecas como VTK, pylab y matplotlib. También mostraremos cómo VisTrails aprovecha la información de procedencia no solo para respaldar la reproducibilidad de los resultados, sino también para simplificar la creación y el refinamiento de las tuberías ".

Vincent
fuente
Python no está muy extendido en nuestra organización, pero parece un proyecto interesante. Veré si puedo obtener algunas ideas sobre cómo deberían hacerse las cosas a partir de su documentación.
Richie Cotton
2

Acabo de encontrar esta página web alojada por ICPSR sobre planes de gestión de datos . Aunque creo que los objetivos de ICPSR serán algo diferentes a los de su negocio (por ejemplo, están muy interesados ​​en hacer que los datos puedan difundirse fácilmente sin violar la confidencialidad), imagino que tienen información útil para las empresas. Particularmente, el consejo sobre la creación de metadatos me parece universal.

Andy W
fuente
2

En el caso de escalas mucho más pequeñas, experimenté el uso de Dropbox para compartir / sincronizar una copia de los archivos de datos (y scripts y resultados) con otros investigadores / colaboradores (escribí sobre esto aquí ).

La otra herramienta que he usado es Google Docs para recopilar y compartir datos (sobre lo que escribí aquí )

Tal Galili
fuente
0

Dropbox + packrat es bueno para compartir archivos con copias de seguridad / versiones.

Luego carga esos archivos (después de la canonización / masaje automatizado) en una base de datos y realiza los análisis de los datos limpiados. Ponga las secuencias de comandos para automatizar el ciclo Extract-Transform-Load bajo control de versiones (o al menos una carpeta de Dropbox separada con la opción packrat ...).

Cuando su servidor de base de datos finalmente falla (o necesita ser fragmentado o lo que sea), tiene una canalización para mover datos de amigable para las personas (Excel, formularios web, etc.) a amigable para el análisis (normalmente normalizado y restringido, siempre limpio).

Esa fase "ETL" es del almacenamiento de datos. Y si no está creando un sistema de procesamiento de transacciones en línea, probablemente esté creando un almacén de datos. Así que acéptelo y aproveche lo que la gente ha aprendido al construirlos durante los últimos 30 años.

Que te diviertas.

Tim
fuente