Comment amener les gens à mieux prendre en charge les données?


42

Mon lieu de travail emploie des employés de très nombreuses disciplines. Nous générons donc des données sous différentes formes. En conséquence, chaque équipe a développé son propre système de stockage de données. Certains utilisent des bases de données Access ou SQL; certaines équipes (à ma grande horreur) dépendent presque entièrement de feuilles de calcul Excel. Les formats de données changent souvent d'un projet à l'autre. Dans certains cas, l'appeler un «système» est trop gentil.

Les problèmes que cela entraîne sont que je dois écrire un nouveau code pour nettoyer les données de chaque projet, ce qui coûte cher; les utilisateurs qui modifient manuellement les feuilles de calcul rendent la reproductibilité et la vérification des données presque impossible; et pire encore, il est possible que des données soient perdues ou rendues incorrectes.

J'ai eu l'occasion de discuter de ces problèmes avec un membre du conseil d'administration de la société et je dois trouver une solution. Je pense l'avoir déjà persuadé que nous avons un problème et que le résoudre correctement permettra d'améliorer les connaissances scientifiques et d'économiser de l'argent. La question est la suivante: que devrions-nous viser et comment y arriver?

Plus précisement:

Comment devrions-nous stocker les données, de manière à nous permettre de les suivre de la création à la publication dans un document? (Bases de données stockées sur un serveur central?)

Comment procédez-vous pour standardiser les formats de base de données?

Existe-t-il de bonnes ressources pour éduquer les gens sur la manière de gérer les données? (En règle générale, les hygiénistes du travail et les ingénieurs en explosifs ne sont pas des férus de données; par conséquent, le contenu non technique est préférable.)


La question du titre est différente de la question de fond dans le post. Le premier demande comment convaincre les gens de prendre soin des données, et le second demande quel est le meilleur moyen de stocker des données. Quelle est la question à laquelle vous voulez répondre?
Rétablir Monica

Réponses:


16

Cela vaut la peine de prendre en compte les idées du monde des logiciels. En particulier, vous pourriez envisager de mettre en place: un référentiel de contrôle de version et un serveur de base de données central.

Le contrôle de version vous aide probablement avec des fichiers flottants, tels qu'Excel et des fichiers texte, etc., mais ils peuvent également inclure des fichiers associés à des données, tels que R, SAS, etc. L'idée est qu'il existe un système qui enregistre les modifications vos fichiers vous permettant de savoir ce qui s’est passé quand et de revenir en arrière si nécessaire.

Où vous avez déjà les bases de données SQL, la meilleure chose que vous pouvez faire est de configurer un serveur central et d' embaucher un capable DBA . Le DBA est la personne chargée d’assurer et de préserver l’intégrité des données. Une partie de la description de travail implique des choses comme les sauvegardes et le réglage. Mais une autre partie est plus pertinente ici - contrôler l’entrée des données dans le système, s’assurer que les contraintes sont respectées, des stratégies d’accès sont en place pour éviter tout dommage aux données, configurer des vues pour exposer les formats de données personnalisés ou simplifiés, etc. En bref, mettre en œuvre une méthodologie autour du processus de données. Même si vous n'engagez pas un administrateur de base de données réel (les bons sont très difficiles à recruter), le fait de disposer d'un serveur central vous permet tout de même de commencer à réfléchir à la mise en place d'une sorte de méthodologie autour des données.


3
Absolument d'accord sur le contrôle de version. Je l'utilise; comme le font une proportion substantielle des développeurs et des statisticiens. (J'aimerais voir l'adoption à 100%, mais c'est un autre rêve pour le moment.) Le plus difficile est de faire en sorte que les non-techniciens en profitent. Toutes les idées appréciées.
Richie Cotton

2
@Richie Cotton: Je ne sais pas pourquoi, mais le contrôle de version semble être un concept difficile à comprendre pour les non-techniciens. Les gens continuent simplement à apporter des modifications à un fichier, à le renommer et à l'envoyer par courrier électronique. Comment je déteste ces fichiers "PaperDraftCorrectedByJohnRevision3RewroteByLeslie-NewVersion3.doc" ...
nico

12

1
Excellents liens. Je pense que deux messages importants à transmettre sont les suivants: nous avons besoin d’une vérification plus automatisée des données et je dois commencer à expliquer la séparation entre la saisie des données et la présentation des données.
Richie Cotton

6

Je pense d’abord que vous devez vous demander: pourquoi les gens utilisent-ils Excel pour effectuer des tâches pour lesquelles Excel n’a pas été conçu?

1) Ils savent déjà comment l'utiliser 2) Cela fonctionne. Peut-être d'une manière maladroite mais cela fonctionne et c'est ce qu'ils veulent

Je copie une série de chiffres dans, appuie sur un bouton et j'ai un complot. Aussi facile que ça.

Alors, faites-leur comprendre les avantages qu’ils peuvent avoir en utilisant des ensembles de données centralisés, des bases de données appropriées (notez que Access n’EST PAS de ceux-là), etc. Mais souvenez-vous des deux points ci-dessus: vous devez configurer un système qui fonctionne et qui est facile à utiliser.

J'ai vu trop souvent des systèmes mal conçus qui me donnaient envie de revenir non pas à Excel, mais au stylo et au papier!

À titre d'exemple, nous avons un système de commande horrible où je travaille.

Nous avions l'habitude de remplir un formulaire de commande qui était une feuille de calcul Excel dans laquelle vous saisissiez le nom du produit, la quantité, le coût, etc. Il additionnait tout, ajoutait TVA, etc. le secrétaire qui passait l'ordre et c'était tout. Inefficace, mais cela a fonctionné.

Nous avons maintenant un système de commande en ligne, avec une base de données centralisée et tout. C'est une horreur. Cela ne devrait pas me prendre 10 minutes pour remplir ce foutu formulaire à cause des raccourcis clavier intuitifs et des diverses bizarreries du logiciel. Et notez que je suis assez féru d'informatique, alors imaginez ce qu'il advient des personnes qui n'aiment pas les ordinateurs ...


Convenu que les choses doivent être conviviales. Puisque les gens sont très protecteurs vis-à-vis de leurs pratiques de travail, tout changement doit leur faciliter la vie, sinon ils vont échouer.
Richie Cotton

5

Je souligne toutes les réponses déjà données, mais appelons un chat un chat: dans de nombreux espaces de travail, il est presque impossible de convaincre la direction de la nécessité d'investir dans des outils logiciels "exotiques" (exotiques, c'est-à-dire), sans parler du fait que quelqu'un pourrait et le maintenir. J'ai déjà fait savoir à un certain nombre de clients que l'embauche d'un statisticien avec des connaissances approfondies en matière de logiciels et de bases de données leur serait très bénéfique, mais la réponse générale est "impossible."

Donc, tant que cela ne se produira pas, vous pouvez faire certaines choses simples avec Excel pour vous simplifier la vie. Et le premier de ceci est sans aucun doute le contrôle de version. Plus d'informations sur le contrôle de version avec Excel peuvent être trouvées ici .

Quelques aspects de l'utilisation d'Excel

Les personnes utilisant EXCEL aiment très souvent les fonctionnalités de la formule d’EXCEL. C’est pourtant la source la plus importante d’erreurs dans les feuilles EXCEL et de problèmes lorsqu’on essaie de lire des fichiers EXCEL dans la mesure de mon expérience. Je refuse de travailler avec des feuilles contenant des formules.

Je force également toutes les personnes avec qui je travaille à fournir les feuilles EXCEL dans un format simple, ce qui signifie que:

  • La première ligne contient les noms des différentes variables
  • La feuille de calcul commence dans la cellule A1
  • Toutes les données sont placées dans des colonnes, sans interruption et sans formatage.
  • Si possible, les données sont également enregistrées au format .csv. Il n'est pas difficile d'écrire un script VBA permettant d'extraire les données, de les reformater et de les placer dans un fichier .csv. Cela permet également un meilleur contrôle des versions, car vous pouvez effectuer un vidage .csv des données tous les jours.

Si les données ont toujours une structure générale, il peut être judicieux de développer un modèle avec des macros VB sous-jacentes pour ajouter des données et générer l'ensemble de données à analyser. En général, cela évitera à chaque employé de créer son propre système de stockage de données "génial", et cela vous permettra d'écrire votre code en fonction de cela.

Cela dit, si vous pouvez convaincre tout le monde d’utiliser SQL (et une interface pour la saisie de données), vous pouvez lier directement R à celui-là. Cela augmentera considérablement les performances.

Structure et gestion des données

En règle générale, les données stockées dans les bases de données (ou les feuilles EXCEL si elles le souhaitent) doivent constituer le minimum absolu, ce qui signifie que toute variable pouvant être calculée à partir de certaines autres variables ne doit pas être contenue dans la base de données. Cependant, il peut parfois être avantageux de stocker ces variables dérivées ou transformées également, si les calculs sont fastidieux et prennent beaucoup de temps. Mais ceux-ci doivent être stockés dans une base de données séparée, éventuellement liée à la base d'origine.

Il faut également réfléchir à ce qui est considéré comme un cas (et donc une rangée). Par exemple, les gens ont tendance à produire des séries chronologiques en créant une nouvelle variable pour chaque point temporel. Bien que cela ait du sens dans EXCEL, la lecture de ces données demande un certain retournement de la matrice de données. Idem pour les groupes de comparaison: il devrait y avoir un indicateur de groupe et une variable de réponse, et non une variable de réponse pour chaque groupe. De cette façon, les structures de données peuvent également être normalisées.

Une dernière chose que je rencontre fréquemment est l’utilisation de différentes mesures. Les longueurs sont données en mètres ou en centimètres, les températures en Celsius, en Kelvin ou en Farenheit, ... Vous devez indiquer dans toute extrémité avant ou dans tout modèle l’unité dans laquelle la variable est mesurée.

Et même après toutes ces choses, vous souhaitez toujours une étape de contrôle des données avant de commencer réellement l'analyse. Là encore, il peut s’agir de tout script exécuté quotidiennement (par exemple toute la nuit) sur de nouvelles entrées et signalant immédiatement les problèmes (hors de portée, de type incorrect, de champs manquants, ...) afin qu’ils puissent être corrigés le plus rapidement possible. Si vous devez revenir à une entrée qui a été faite il y a 2 mois pour découvrir ce qui ne va pas et pourquoi, vous feriez mieux de disposer de bonnes "compétences Sherlock" pour la corriger.

mes 2 cents


Quelques points très intéressants ici. Convaincre les gens de simplifier et d’harmoniser leurs feuilles de calcul aura probablement plus de succès que de les faire abandonner. De plus, je ne savais pas que le contrôle de version pourrait s'intégrer à Excel. Bon à savoir.
Richie Cotton

2
En ce qui concerne le conseil de ne pas stocker les variables redondantes: ceci est approprié pour les SGBDR, mais je voudrais suggérer que le contraire devrait être encouragé pour les tableurs. Ces dernières sont tellement sujettes aux erreurs que les mécanismes de détection et de correction des erreurs sont inestimables. L'une des meilleures consiste en des informations redondantes, telles que des champs calculés et des résumés statistiques. Par exemple, si la colonne C est le rapport entre les colonnes A et B, une erreur dans une colonne unique dans une ligne donnée peut être détectée et généralement corrigée.
whuber

1
@whuber: c'est ce que nous vérifions dans l'étape de contrôle des données. Vous pouvez utiliser cette colonne supplémentaire pour vérifier rapidement, mais vous ne devriez pas la conserver dans la dernière feuille. Les formules contenues dans les feuilles de calcul sont horribles, et plus la feuille de calcul est grande, plus il est difficile d’en extraire les données. De plus, dans le cas d'Excel, vous combattez de toute façon les différences .xls et .xlsx. Assurez-vous que la décision d'un responsable de mettre à jour Microsoft Office peut détruire des tonnes de code si vous comptez beaucoup sur des fichiers Excel. Donc, enregistrez en tant que csv et gardez ces fichiers csv aussi petits que possible.
Joris Meys

Après avoir passé une partie importante de ma carrière au cours des 24 dernières années de ma carrière à traiter avec des données transmises dans des feuilles de calcul et à gérer des bases de données volumineuses, je suis tout à fait en désaccord. Il n’existe pas de "contrôle" sur les feuilles de calcul (que ce soit des fichiers .xls, .xlsx, .wks, .wb *, etc.) ni même des fichiers csv. La présence d'informations redondantes dans de tels fichiers - même lorsqu'elles ne sont disponibles que sous forme imprimée - a souvent ressuscité des bases de données assez volumineuses (plus de 100 000 enregistrements). Chaque fois que cela se produit, mes clients et moi-même sommes reconnaissants des licenciements.
whuber

@whuber: Nous faisons le contrôle des données avec des scripts supplémentaires, en recherchant les valeurs impossibles / valeurs aberrantes / cas impairs. C'est ce que je veux dire par l'étape de contrôle des données. Ceci est la norme de l'industrie dans des sociétés telles que SGS et d'autres qui effectuent des analyses d'essais cliniques, etc. Les informations redondantes nécessaires sont conservées dans des bases de données distinctes. Si l'un d'eux échoue, l'autre est nécessaire à la résurrection. Si vous n'avez pas un système de sauvegarde décent, c'est ...
Joris Meys

3

VisTrails: système de flux de travaux et de sources scientifiques basé sur Python . Cette conférence donnée à PyCon 2010 a de bonnes idées. À écouter même si vous n'êtes pas intéressé par l'utilisation de VisTrails ou de Python. En fin de compte, je pense que si vous pouviez exiger qu’il existe un moyen documentaire clair de reproduire les données. Et nécessitent une validation qu'ils peuvent.

Citant:

"Dans cet exposé, nous allons donner un aperçu de VisTrails ( http://www.vistrails.org ), un flux de travail scientifique en source libre basé sur python qui capture de manière transparente la provenance (c.-à-d. La lignée) des produits de données et des processus utilisés. Nous allons montrer comment VisTrails peut être utilisé pour rationaliser l’exploration et la visualisation des données, à l’aide d’exemples réels, illustrant les fonctionnalités clés du système, notamment la possibilité de créer visuellement des pipelines de traitement de l’information associant de multiples outils et bibliothèques, tels que VTK, pylab et matplotlib. Nous montrerons également comment VisTrails exploite les informations de provenance non seulement pour favoriser la reproductibilité des résultats, mais également pour simplifier la création et l’affinement des pipelines. "


Python n'est pas répandu dans notre organisation mais cela semble être un projet intéressant. Je verrai si je peux trouver des idées sur la façon de faire les choses à partir de leur documentation.
Richie Cotton

2

Je viens de tomber sur cette page Web hébergée par ICPSR sur les plans de gestion des données . Bien que je pense que les objectifs de l'ICPSR seront quelque peu différents de ceux de votre entreprise (par exemple, ils souhaitent vivement que les données puissent être facilement diffusées sans violer la confidentialité), j'imagine qu'elles fournissent des informations utiles aux entreprises. Les conseils sur la création de métadonnées me semblent particulièrement universels.


2

Dans le cas d'échelles beaucoup plus petites, j'ai utilisé Dropbox pour partager / synchroniser une copie des fichiers de données (et des scripts et résultats) avec d'autres chercheurs / collaborateurs (j'ai écrit à ce sujet ici ).

L'autre outil que j'ai utilisé est Google Docs pour la collecte et le partage de données (à propos desquelles j'ai écrit ici )


0

Dropbox + packrat est idéal pour partager des fichiers avec sauvegarde / versioning.

Ensuite, vous chargez ces fichiers (après canonisation / massage automatisés) dans une base de données et effectuez les analyses à partir des données nettoyées. Placez les scripts pour automatiser le cycle Extract-Transform-Load sous contrôle de version (ou au moins un dossier de dépôt séparé avec l'option packrat ...).

Lorsque votre serveur de base de données tombe en panne (ou doit être partagé ou autre), vous disposez d'un pipeline pour déplacer des données conviviales (Excel, formulaires Web, etc.) vers conviviales pour l'analyse (généralement normalisées et contraintes, toujours nettoyées).

Cette phase "ETL" provient de l'entreposage de données. Et si vous ne construisez pas un système de traitement des transactions en ligne, vous construisez probablement un entrepôt de données. Adoptez-le donc et profitez de ce que les gens ont appris en les construisant au cours des 30 dernières années.

S'amuser.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.