Questions sensibles : expériences de liste et réponse randomisée
Interrogez sur la tricherie, la fraude fiscale ou la conduite en état d'ivresse par une expérience de liste ou une réponse randomisée dans Potato, et obtenez des estimations de prévalence avec leurs erreurs types.
Nouveau dans la v2.12.0
Demander directement aux gens s'ils ont triché, fraudé le fisc ou conduit en état d'ivresse sous-estime la fréquence de ces comportements. Deux plans de questionnaire permettent à un participant de répondre sans révéler sa propre réponse, tout en permettant à l'étude d'estimer la prévalence :
annotation_type | Plan |
|---|---|
list_experiment | La technique du dénombrement d'items : « Combien de ces affirmations vous concernent ? », avec l'énoncé sensible dans la liste du seul groupe de traitement |
randomized_response | Une règle aléatoire privée décide si le participant répond sincèrement (forced_response), ou bien le participant indique seulement si deux énoncés concordent (crosswise). Voir réponse randomisée |
Les deux fonctionnent sur les pages de questionnaire et sur les items d'annotation, et l'export survey_experiments calcule les estimations.
Expérience de liste
conditions:
factors:
list_group: [control, treatment]
annotation_schemes: # or on a survey page
- annotation_type: list_experiment
name: lists
description: How many of these have you done in the last year?
items:
- Gone to a live music concert
- Bought a book in a shop
- Volunteered for a local group
sensitive_item: Driven a car after drinking alcohol
treatment: {factor: list_group, level: treatment}Les participants du niveau treatment de list_group voient quatre énoncés, et tous les autres en voient trois. Le serveur retire l'énoncé sensible de la page pour le groupe de contrôle ; il ne figure donc pas dans leur HTML. Le participant répond par un nombre. La condition provient de conditions ; l'affectation est donc équilibrée entre les deux groupes (Déroulement de l'expérience).
L'estimation est le dénombrement moyen du groupe de traitement moins celui du groupe de contrôle (l'estimateur par différence de moyennes), avec une erreur type de Welch et un intervalle à 95 %. Elle suppose que l'énoncé sensible ne change pas la façon dont les gens répondent aux autres énoncés, et que personne ne ment sur le dénombrement.
| Clé | Valeur par défaut | Signification |
|---|---|---|
items | obligatoire | Les énoncés de contrôle, au moins deux |
sensitive_item | obligatoire | L'énoncé que seul le groupe de traitement voit |
treatment | obligatoire | {factor, level} : qui le voit. Le facteur doit figurer dans conditions.factors |
sensitive_position | en dernier | Sa place dans la liste, à partir de 0 |
count_prompt | « Number of statements: » | Le libellé du champ numérique |
Choisissez des énoncés de contrôle auxquels peu de gens répondraient oui à tous ou non à tous. Si le dénombrement de la liste de contrôle atteint son maximum, un oui à l'énoncé sensible devient visible à partir du dénombrement.
Réponse randomisée : réponse forcée
- annotation_type: randomized_response
name: tax
method: forced_response
description: This question uses a private random rule.
question: In the last five years, have you left income off a tax return on purpose?La page demande au participant de penser au mois de naissance de sa mère : pour janvier ou février, répondre Yes ; pour mars ou avril, répondre No ; pour tout autre mois, répondre sincèrement à la question. Les mois de naissance sont proches d'une distribution uniforme ; la réponse est donc sincère avec une probabilité de 2/3, un Yes forcé avec 1/6 et un No forcé avec 1/6. Pour utiliser une autre règle, indiquez randomizer (le texte que lit le participant) ainsi que p_truth, p_yes et p_no, dont la somme doit valoir 1.
Avec λ la proportion de réponses Yes, la prévalence est π = (λ - p_yes) / p_truth, avec SE = √(λ(1 - λ)/n) / p_truth.
Réponse randomisée : modèle croisé
- annotation_type: randomized_response
name: cheating
method: crosswise
description: Read both statements. Do not say which is true.
question: I have copied someone else's work and handed it in as my own.
nonsensitive_statement: My mother was born in January, February or March.
nonsensitive_prevalence: 0.25Le participant répond seulement « Both statements are true, or neither is » ou « Exactly one statement is true » (Yu, Tian & Tang, 2008). Avec λ la proportion donnant la première réponse et p la prévalence de l'énoncé non sensible, π = (λ + p - 1) / (2p - 1), avec SE = √(λ(1 - λ)/n) / |2p - 1|. Le plan exige que p soit éloigné de 0,5, et les valeurs à moins de 0,05 de celui-ci sont refusées.
Export
python -m potato.export --config config.yaml --format survey_experiments --output ./export/L'export écrit survey_experiments.csv, une ligne par schéma, avec le plan, l'estimation, son erreur type et son intervalle à 95 %, ainsi que les effectifs sur lesquels elle repose. Pour une expérience de liste, la ligne donne aussi la taille et la moyenne des groupes, et excluded : le nombre de réponses qui n'étaient pas un nombre entier compris entre 0 et le nombre d'énoncés vus par le participant, réponses non numériques comprises. Le champ numérique de la page accepte une unité de plus que ce que voit un participant du groupe de contrôle, et les réponses sont stockées telles qu'envoyées ; c'est donc l'export qui effectue cette vérification.
Les estimations ne sont pas tronquées à l'intervalle de 0 à 1. Une valeur hors de cet intervalle signifie que l'échantillon est trop petit ou qu'une hypothèse n'est pas vérifiée.
Potato 2.12.0 a aussi cessé d'écrire les réponses des participants dans les journaux DEBUG ; un plan conçu pour qu'aucune réponse individuelle ne figure dans les enregistrements ne la laisse donc pas fuiter par le journal du serveur.
Pour aller plus loin
- Déroulement de l'expérience - Conditions et affectation équilibrée
- Flux de travail multi-phases - Pages de questionnaire avant et après la tâche
- Import de questionnaires - Importer un questionnaire depuis Qualtrics, REDCap et d'autres outils
Pour les détails d'implémentation, consultez la documentation source.