Skip to content

Preguntas sensibles: experimentos de lista y respuesta aleatorizada

Pregunta en Potato por copiar en exámenes, evadir impuestos o conducir bebido con un experimento de lista o con respuesta aleatorizada, y obtén estimaciones de prevalencia con errores estándar.

Nuevo en v2.12.0

Preguntar directamente a las personas si han copiado, han evadido impuestos o han conducido después de beber lleva a infradeclarar lo frecuente que es. Dos diseños de encuesta permiten que un participante responda sin revelar su propia respuesta y que, aun así, el estudio estime la prevalencia:

annotation_typeDiseño
list_experimentLa técnica de recuento de ítems: "¿Cuántas de estas afirmaciones se aplican a ti?", con la afirmación sensible solo en la lista del grupo de tratamiento
randomized_responseUna regla aleatoria privada decide si el participante responde con la verdad (forced_response), o el participante dice solo si dos afirmaciones coinciden (crosswise). Consulta respuesta aleatorizada

Ambos funcionan en páginas de encuesta y en ítems de anotación, y la exportación survey_experiments calcula las estimaciones.

Experimento de lista

yaml
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}

Los participantes del nivel treatment de list_group ven cuatro afirmaciones, y todos los demás ven tres. El servidor elimina la afirmación sensible de la página para el grupo de control, así que no está en su HTML. El participante responde con un número. La condición procede de conditions, así que la asignación está equilibrada entre los dos grupos (Flujo del experimento).

La estimación es el recuento medio del grupo de tratamiento menos el del grupo de control (el estimador de diferencia de medias), con un error estándar de Welch y un intervalo del 95 %. Supone que la afirmación sensible no cambia cómo responden las personas a las demás afirmaciones, y que nadie miente sobre el recuento.

ClaveValor predeterminadoSignificado
itemsobligatorioLas afirmaciones de control, al menos dos
sensitive_itemobligatorioLa afirmación que solo ve el grupo de tratamiento
treatmentobligatorio{factor, level}: quién la ve. El factor debe estar en conditions.factors
sensitive_positionla últimaEn qué posición de la lista va, desde 0
count_prompt"Number of statements:"La etiqueta de la casilla numérica

Elige afirmaciones de control a las que pocas personas responderían que sí a todas o que no a todas. Si el recuento de la lista de control está en su máximo, un sí a la afirmación sensible se hace visible a partir del recuento.

Respuesta aleatorizada: respuesta forzada

yaml
  - 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 página indica al participante que piense en el mes en que nació su madre: si es enero o febrero, debe responder Yes; si es marzo o abril, No; si es cualquier otro mes, debe responder a la pregunta con la verdad. Los meses de nacimiento son casi uniformes, así que la respuesta es verdadera con probabilidad 2/3, un Yes forzado con 1/6 y un No forzado con 1/6. Para usar otra regla, indica randomizer (el texto que lee el participante) y p_truth, p_yes y p_no, que deben sumar 1.

Con λ como la proporción que responde Yes, la prevalencia es π = (λ - p_yes) / p_truth, con EE = √(λ(1 - λ)/n) / p_truth.

Respuesta aleatorizada: diseño cruzado

yaml
  - 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.25

El participante responde solo "Both statements are true, or neither is" (ambas afirmaciones son verdaderas, o ninguna lo es) o "Exactly one statement is true" (exactamente una afirmación es verdadera) (Yu, Tian & Tang, 2008). Con λ como la proporción que da la primera respuesta y p como la prevalencia de la afirmación no sensible, π = (λ + p - 1) / (2p - 1), con EE = √(λ(1 - λ)/n) / |2p - 1|. El diseño necesita que p esté alejada de 0,5, y se rechazan los valores a menos de 0,05 de ella.

Exportación

bash
python -m potato.export --config config.yaml --format survey_experiments --output ./export/

La exportación escribe survey_experiments.csv, una fila por esquema, con el diseño, la estimación, su error estándar y su intervalo del 95 %, y los recuentos en los que se basa. Para un experimento de lista, la fila da además los tamaños y las medias de los grupos, y excluded: cuántas respuestas no eran un número entero entre 0 y el número de afirmaciones que vio el participante, incluidas las respuestas no numéricas. La casilla numérica de la página acepta uno más de lo que ve un participante de control, y las respuestas se guardan tal como se envían, así que es la exportación la que hace esta comprobación.

Las estimaciones no se recortan al rango de 0 a 1. Un valor fuera de él significa que la muestra es demasiado pequeña o que no se cumple algún supuesto.

Potato 2.12.0 también dejó de escribir las respuestas de los participantes en los registros DEBUG, de modo que un diseño pensado para mantener cualquier respuesta individual fuera del registro no la filtra a través del registro del servidor.

Lecturas adicionales

Para detalles de implementación, consulta la documentación fuente.