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).
fuente
Respuestas:
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.
fuente
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:
fuente
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 ...
fuente
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:
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
fuente
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:
fuente
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.
fuente
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í )
fuente
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.
fuente