Aller au contenu
FR EN
Contact
Tous les articles

Collecte de données terrain avec Kobo Toolbox

Data Science 5 min

Dans une enquête de terrain, la qualité de l’analyse se joue avant la première interview. Un questionnaire mal conçu produit des données qu’aucune méthode statistique ne pourra réparer : des réponses saisies en texte libre impossibles à regrouper, des valeurs aberrantes, des questions posées à des personnes qui n’étaient pas concernées. KoboToolbox, outil libre largement utilisé par les chercheurs et les organisations humanitaires, permet de prévenir l’essentiel de ces problèmes dès la conception du formulaire. Cet article décrit un pipeline complet, du protocole à l’analyse.

Objectifs d’apprentissage

  • concevoir un formulaire au format XLSForm, en distinguant nom technique et libellé ;
  • utiliser les contraintes, les conditions d’affichage et les champs obligatoires pour garantir la qualité à la source ;
  • organiser le pilote, la collecte hors ligne et le suivi quotidien ;
  • exporter correctement les données et les nettoyer avec Python.

1. Le pipeline en cinq étapes

  1. Protocole : questions de recherche, population, échantillon, considérations éthiques et consentement.
  2. Conception du formulaire en XLSForm.
  3. Pilote sur quelques répondants réels, puis corrections.
  4. Collecte, souvent hors connexion, avec un suivi quotidien.
  5. Export, nettoyage et analyse.

Une heure passée sur le formulaire économise une journée de nettoyage. C’est l’idée directrice de cet article.

2. XLSForm : un questionnaire écrit comme un tableau

XLSForm est une norme qui décrit un questionnaire dans un classeur Excel à trois feuilles : survey (les questions), choices (les modalités de réponse) et settings (le titre et l’identifiant du formulaire). KoboToolbox l’importe directement.

2.1 Nom et libellé

Chaque question a un nom (name), court et sans espace, qui deviendra le nom de colonne dans vos données, et un libellé (label), la phrase lue par l’enquêteur. Choisissez des noms explicites et stables : age_menage plutôt que q7. Le jour de l’analyse, vous vous en féliciterez.

2.2 Les outils de la qualité

Colonne Rôle Exemple
required Rend la réponse obligatoire yes
constraint Refuse une valeur invalide ; le point désigne la réponse courante . >= 15 and . <= 100
constraint_message Explique l’erreur à l’enquêteur « L’âge doit être compris entre 15 et 100 ans »
relevant N’affiche la question que si une condition est vraie ${a_un_emploi} = 'oui'
calculate Calcule une valeur à partir d’autres réponses ${revenu_mensuel} * 12

La condition relevant mérite une attention particulière : en ne posant une question qu’aux personnes concernées, elle évite à la fois la lassitude du répondant et les réponses absurdes. Une cellule vide dans les données prend alors un sens précis : question non posée, et non réponse manquante.

2.3 Préférer les choix fermés

Les types select_one (une seule réponse) et select_multiple (plusieurs) produisent des données directement analysables, contrairement au texte libre. Dans la feuille choices, donnez à chaque modalité un nom court et stable. Prévoyez explicitement les cas « Autre (préciser) », « Ne sait pas » et « Refuse de répondre » : ce sont des informations, pas des erreurs, et les confondre avec une absence de réponse fausse les pourcentages.

3. Pilote et collecte

Le pilote n’est pas une formalité. Faites passer le questionnaire à quelques répondants réels, chronométrez-le, observez les questions qui provoquent une hésitation, et vérifiez l’export des données pilotes avant tout déploiement : c’est le moment où l’on découvre qu’une question a été mal codée.

Sur le terrain, l’application KoboCollect permet de saisir hors connexion et d’envoyer les formulaires dès qu’un réseau est disponible. Pendant la collecte, consultez chaque jour les rapports intégrés à KoboToolbox (nombre de réponses, graphiques par question) et la carte des soumissions géolocalisées : une enquêtrice qui envoie trois fois plus de formulaires que ses collègues, ou des points GPS loin de la zone d’étude, se repèrent tôt et se corrigent facilement.

4. Exporter correctement

KoboToolbox exporte en Excel, CSV, GeoJSON ou KML. Pour l’analyse, sa documentation recommande deux réglages :

  • exporter les valeurs et en-têtes XML (les noms techniques) plutôt que les libellés, qui restent préférables pour partager des données brutes avec un public non technique ;
  • séparer les réponses à choix multiples en colonnes distinctes, une par modalité.

Pensez aussi à inclure les données de toutes les versions du formulaire si vous l’avez modifié en cours de collecte.

5. Nettoyer avec Python

Même avec un bon formulaire, un nettoyage reste nécessaire. Un script, plutôt que des corrections manuelles dans le tableur, garde la trace de chaque transformation et rend l’analyse reproductible :

import pandas as pd

df = pd.read_csv("export_kobo.csv", sep=";")

# 1. Doublons de soumission (même identifiant d'instance).
df = df.drop_duplicates(subset="_uuid")

# 2. Types : les dates en dates, les nombres en nombres.
df["date_entretien"] = pd.to_datetime(df["date_entretien"])
df["age_menage"] = pd.to_numeric(df["age_menage"], errors="coerce")

# 3. Codes spéciaux : "ne sait pas" (98) et "refus" (99) ne sont pas des âges.
df["age_menage"] = df["age_menage"].mask(df["age_menage"].isin([98, 99]))

# 4. Journal des contrôles, à joindre au rapport.
print(df["age_menage"].describe())
print(df.isna().sum().sort_values(ascending=False).head(10))

Chaque étape est commentée et réversible : on ne modifie jamais le fichier d’export original, on produit un jeu de données nettoyé à côté.

6. Éthique et protection des données

Recueillez le consentement éclairé au début du formulaire, et rendez la suite conditionnelle à ce consentement grâce à relevant. Ne collectez que les données nécessaires à vos questions de recherche. Séparez les informations directement identifiantes (nom, téléphone) des réponses, et limitez l’accès au projet aux seules personnes qui en ont besoin.

Erreurs fréquentes

  • Des questions en texte libre là où une liste fermée suffisait.
  • Des noms de colonnes génériques (q1, q2) impossibles à interpréter six mois plus tard.
  • Confondre « non posée », « ne sait pas » et « refus ».
  • Nettoyer à la main dans Excel, sans trace des corrections.

À retenir

La qualité d’une enquête se construit dans le formulaire : choix fermés, contraintes, conditions d’affichage et codes explicites pour les non-réponses. Le reste du pipeline consiste à préserver cette qualité, de façon traçable.

Références

Votre retour d'expérience nous intéresse

Avez-vous fait d'autres choix ? Rencontré d'autres difficultés ? Partagez votre expérience ou vos questions en commentaire : nous lisons et répondons à chaque message.

Laisser un commentaire

Besoin d'une application métier sur mesure ?

Plateforme de concours, gestion des personnels, assistant IA, e-learning : nous concevons, déployons et maintenons des applications adaptées à votre structure.

Parlons de votre projet

Commentaires

Aucun commentaire pour le moment : soyez le premier à partager votre expérience.

Laisser un commentaire

Votre premier commentaire est relu avant publication. Merci de rester courtois et constructif.

Un email par semaine, zéro bruit

Nos regards sur le Dev, la Data Science et l'IA, tirés de nos projets. Désabonnement en un clic.

Vos données ne sont ni revendues ni partagées. Politique de confidentialité