19 votos

Dos mundos chocan: Utilización de ML para datos de encuestas complejas

Me encuentro con un problema aparentemente fácil, pero llevo varias semanas sin encontrar una solución adecuada.

Tengo bastantes datos de sondeos/encuestas (decenas de miles de encuestados, digamos 50.000 por conjunto de datos), procedentes de algo que espero que se denomine encuesta de diseño complejo con ponderaciones, estratificación, encaminamiento específico y demás. Para cada encuestado, hay cientos de variables, como datos demográficos (edad, región...) y luego variables mayoritariamente binarias (como mucho, categóricas).

Tengo más experiencia en informática y aprendizaje automático, y he tenido que aprender mucho sobre el tema. estadísticas clásicas de encuestas y metodología. Ahora quiero aplicar aprendizaje automático clásico a esos datos (por ejemplo, predecir algunos valores que faltan para un subconjunto de encuestados, básicamente una tarea de clasificación). Pero no encuentro la forma adecuada de hacerlo. ¿Cómo debería incorporar esos estratos, ponderaciones o rutas (como: si la pregunta 1 se responde con la opción 2, haga la pregunta 3, de lo contrario sáltela)?

La simple aplicación de mis modelos (árboles, regresión logística, SVM, XGBoost...) parece peligrosa (y, fallan en la mayoría de los casos), ya que suelen suponer que los datos proceden de una muestra aleatoria simple o iid.

Muchos métodos al menos tienen pesas, pero no ayuda mucho. Además, no está claro cómo debo combinar las clases desequilibradas y las ponderaciones dadas por la definición de la encuesta, sin hablar de esas cosas de estratificación. Además, los modelos de resultados deberían estar bien calibrados: la distribución predicha debería ser muy parecida a la original. El buen rendimiento de la predicción no es el único criterio aquí. He cambiado la métrica de optimización para tener esto en cuenta también (por ejemplo distancia de la distribución predicha a partir de la distribución verdadera + precisión/MCC) y ayudó en algunos casos, por qué paralizar el rendimiento en otros.

¿Hay alguna forma canónica de solucionar este problema? Me parece un área de investigación muy poco valorada. OMI muchas encuestas podrían beneficiarse de la potencia de ML, pero no hay fuentes. Como si fueran dos mundos que no interactúan entre sí.

Lo que he encontrado hasta ahora:

Preguntas relacionadas con el CV, pero ninguna de ellas contiene una respuesta utilizable sobre cómo enfocar esto (o no hay respuesta, o no es lo que pido, o presenta recomendaciones engañosas):

9voto

Harald Puntos 24

Actualización de mayo de 2022: En cuanto a la contabilización de los pesos de las encuestas, hay un buen par de artículos recientes (¿2020?) en arXiv de Dagdoug, Goga y Haziza. Enumeran muchos métodos de ML y discuten cómo han sido / podrían ser modificados para incorporar pesos, incluyendo kNN, splines, árboles, bosques aleatorios, XGBoost, BART, Cubist, SVN, regresión de componentes principales y red elástica.

En lo que respecta a la contabilización de estratos y conglomerados, y a la estimación del rendimiento predictivo para la población cuando los datos proceden de un diseño de muestreo complejo, humildemente presento un artículo reciente sobre "K-fold cross-validation for complex sample surveys" (Validación cruzada K-fold para encuestas de muestras complejas). Wieczorek, Guerin y McMahon (2022).

  • Véase esta respuesta para obtener una rápida visión general de cómo crear pliegues de validación cruzada que respeten los conglomerados y estratos de la primera etapa. Si es usuario de R, puede utilizar folds.svy() en nuestro paquete R surveyCV .
  • A continuación, utilice estos pliegues para validar de forma cruzada sus modelos ML como de costumbre.
  • Por último, si también dispone de ponderaciones de encuesta, calcule las medias ponderadas por encuesta de sus errores de prueba CV.

Nuestra LÉAME tiene un ejemplo de cómo hacer esto para el ajuste de parámetros con un bosque aleatorio.


Actualización de agosto de 2017: Todavía no hay muchos trabajos sobre métodos "modernos" de ML con datos de encuestas complejas, pero el número más reciente de Statistical Science tiene un par de artículos de revisión. Véase especialmente Breidt y Opsomer (2017), "Estimación de encuestas asistida por modelos con técnicas modernas de predicción" .

Además, basándose en el artículo de Toth y Eltinge que ha mencionado, ahora existe un paquete de R rpms aplicación de CART a datos de encuestas complejas.


Respuesta original de octubre de 2016:

Ahora quiero aplicar el aprendizaje automático clásico a esos datos (por ejemplo, predecir algunos valores que faltan para un subconjunto de encuestados, básicamente una tarea de clasificación).

No tengo muy claro su objetivo. ¿Está tratando principalmente de imputar las observaciones que faltan, sólo para tener un conjunto de datos "completo" para dar a alguien más? ¿O ya tiene los datos completos y quiere construir un modelo para predecir/clasificar las respuestas de las nuevas observaciones? ¿Quiere responder a una pregunta concreta con su(s) modelo(s) o está realizando una minería de datos más amplia?

En cualquier caso, la regresión logística ponderada por encuestas / encuestas complejas es un método razonable y bastante bien entendido. También existe la regresión ordinal para más de 2 categorías. Éstas tendrán en cuenta los estratos y las ponderaciones de la encuesta. ¿Necesita un método ML más sofisticado que éste?

Por ejemplo, puede utilizar svyglm en R survey paquete. Incluso si no utiliza R, el autor del paquete, Thomas Lumley, también escribió un libro útil "Complex Surveys: A Guide to Analysis Using R", que trata tanto de la regresión logística como de los datos que faltan en las encuestas.

(En cuanto a la imputación, espero que ya esté familiarizado con los problemas generales que plantean los datos que faltan. Si no es así, busque enfoques como la imputación múltiple para ayudarle a tener en cuenta cómo afecta el paso de imputación a sus estimaciones/predicciones).

El enrutamiento de las preguntas es, en efecto, un problema adicional. No sé cuál es la mejor manera de resolverlo. Para la imputación, tal vez se pueda imputar un "paso" del enrutamiento cada vez. Por ejemplo, utilizando un modelo global, imputar primero la respuesta de todo el mundo a "¿Cuántos hijos tiene?"; a continuación, ejecutar un nuevo modelo en la subpoblación pertinente (personas con más de 0 hijos) para imputar el siguiente paso de "¿Qué edad tienen sus hijos?".

4voto

R paquete glmertree permite ajustar árboles de decisión a datos multinivel. Permite especificar una estructura de efectos aleatorios y dividir el conjunto de datos en subgrupos mediante predictores. (El método puede corregir el nivel en el que se miden las variables de partición mediante un cluster argumento)

Para más información, consulte la viñeta del paquete (tutorial): https://cran.r-project.org/web/packages/glmertree/vignettes/glmertree.pdf .

Fokkema, M., Smits, N., Zeileis, A., Hothorn, T., & Kelderman, H. (2018). Detección de interacciones tratamiento-subgrupo en datos agrupados con árboles de modelos de efectos mixtos lineales generalizados. Métodos de investigación del comportamiento, 50(5), 2016-2034. https://doi.org/10.3758/s13428-017-0971-x

Fokkema, M., Edbrooke-Childs, J., & Wolpert, M. (2021). Árboles de modelos mixtos lineales generalizados (GLMM): A flexible decision-tree method for multilevel and longitudinal data. Psychotherapy Research, 31(3), 329-341. https://doi.org/10.1080/10503307.2020.1785037

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X