Accueil > Généralités techniques > Commencer un travail
Commencer un travail
jeudi 14 avril 2022, par
Un collègue vient de vous envoyer ses données à traiter sous forme d’un tableur. bien entendu ces données ne sont pas exploitables tel quelles. Que faire pour ne pas trop se prendre la tête et aller vite ?
Ci dessous le document que je remets à mes collègues qui vont stocker leurs données dans un tableur.
Avant tout, allez voir quelques conseils indispensables. Ensuite comment préparer ses données.
À exiger
Le donneur d’ordre doit vous fournir un travail correct pour que vous puissiez travailler à votre tour. L’idéal étant que ayez pu intervenir en amont lors de la conception du projet. Mais faute de mieux vous devez exiger (même si c’est votre patron) un certain nombre de choses :
- Un tableau dans un format correct : en dehors de
.xls et de.ods point de salut. Uncsv serait parfait mais est si rare... Et je ne parle même pas d’une vraie base de données en SQL ! - Rappelez-lui au passage qu’on met les individus en ligne et les variables en colonne. Un copier-coller en transposant est facile à faire mais demeure une cause d’erreur : l’oubli d’une ligne rend tout le tableau incompréhensible.
- Un document décrivant le tableau avec tous les codes. 1 c’est les hommes ou les femmes ? beaucoup de gens trouvent plus savant d’utiliser des codes numériques en lieu et place des vrais catégories. Si ça les amuse... Mais vous devez savoir à quoi ça correspond sous peine de leur rendre des graphiques comparant les 0 et les 1. Et une moyenne sur le sexe ! Et je vous laisse expliquer pourquoi vous avez codé le femmes en 0...
- La question Grand classique chez mes jeunes confrères : un travail complet, plein de cas, peu de données manquantes, un vrai plaisir mais qu’est ce qu’on cherche ? À quelle question dois-je répondre ? Il vous faut connaître la question principale et éventuellement les questions secondaires. Cette question doit se résumer en une variable de test (par exemple
vivant/mort ) au mieux binaire. Mais la réponse : <<c’est une étude sur la croissance des fraises>> n’est pas admissible. Il faut savoir : <<Je veux savoir si peindre la serre en bleu améliore la croissance des fraises>>. Vous aurez alors une variablebleu/pas bleu qui sera votre variable de test pour comparer les autres données. De là découle les variables à étudier plus particulièrement. Vous aurez alors trois catégories de variables utiles et une inutile dans le tableau : - La (ou les) variables de test. Peu nombreuses.
- Les variables utiles, celles qui vont être étudiées, croisées avec les variables de test. A priori votre modèle de départ intégrera toutes ces variables.
- Des variables descriptives, peu utiles dans l’étude mais qui permettent de bien décrire la population. Dans la plupart des études médicales le sexe des patients n’a que peu d’intérêt mais est tout de même soigneusement noté pour décrire l’échantillon. Faut-il faire des tests incluant ces variables ? Pourquoi pas. Mais gardons en tête que multiplier les tests est le mal.
- Des variables complètement inutiles. Souvent l’expérimentateur pris dans son élan note tout et n’importe quoi. C’est particulièrement vrai pour les médecins qui confondent dossier médical (qui doit être complet) et données recueillies dans une étude qui doivent juste permettre de répondre à une question.
Le classement des variables dans ces quatre catégories ne peut se faire qu’avec l’expérimentateur même si c’est un domaine que vous connaissez : si je devais faire des stats pour une étude d’économie, je me reposerai complètement sur ce que me dirait le responsable du travail vu que je n’y connais rien. Mais en médecine, dans mon domaine, j’ai tendance à choisir moi même ce qui est à étudier ou non. Ce n’est pas la bonne solution, ce n’est pas mon travail.
Sur le tableur
Même si R (avec les packages du Tidyverse) est très puissant et permet de tout faire il est souvent plus pratique de faire un certain nombre de manips directement sur le tableur. Je donne ici quelques exemples de fonction dans
- Faire tous les rechercher-remplacer possibles. Même si R permet de remplacer les 0 et les 1 par homme et femme c’est plus facile directement dans le tableur. Surtout s’il y a de nombreuses colonnes pleines de 0 et de 1 pour oui/non, une sélection multiple, un
Ctrl-H et c’est fait. Sinon dans R il faut faire colonne par colonne :
sexe<-factor(sexe,labels=c("homme","femme"))
- Revoir les titres des variables Lors de l’importation du data.frame, R va remplacer tous les espaces contenus dans les titre par des points. Mais les caractères accentués peuvent poser quelques problèmes (dans Emacs avec ESS la complétion automatique bloque au premier accent). Et il est souvent plus facile de n’avoir que des minuscules dans les titres.
- Les données manquantes. Vous aller avoir des cases vides et des "inconnu", "NC" etc. Tous les codes inventés par votre collègue doivent être remplacés par des NA que R comprendra sans problème. Pour les cases vides, à vous de voir si vous les laissez vides ou si vous y placer des NA.
- Vérifier les données catégorielles. La fonction "filtre automatique" permet d’afficher dans la ligne de titre un menu déroulant avec tous les niveaux existant, colonne par colonne. Ce qui permet de voir rapidement si une variable sensée ne contenir que "oui", "non" ou "NA" ne cache pas un " ?".
- Vérifier les données numériques. Il m’est arrivé de trouver au milieu de nombres un "rare" ou "entre 10 et 15". Idem, on passe par le filtre automatique,et on corrige à la main au coup par coup.
- Créer rapidement des variables d’agrégation. Simplifions ! Certaines données vont comprendre 7 ou 8 niveaux, un expérimentateur veut être précis. Mais cela devient inexploitable. Il faut donc les regrouper pour avoir au final deux à quatre cases. On passe de :
- Bleu clair
- Bleu marine
- bordeaux
- Rouge sang
- Parme
à - Bleu
- Rouge
Validation par l’expérimentateur indispensable !
Pour être franc, de plus en plus, je ne touche pas au tableau mais fait le maximum de correction via R. Plus difficile & lourd au début mais facilement réutilisable.