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 source
Réponses:
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.
la source
Un ensemble de ressources en ligne gratuites est l’ensemble de directives sur les bonnes pratiques statistiques du Centre de services statistiques de l’Université de Reading .
En particulier:
la source
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 ...
la source
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:
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
la source
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:
la source
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.
la source
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 )
la source
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.
la source