Me llamó la atención un problema aparentemente fácil, pero no he encontrado una solución adecuada durante varias semanas.
Tengo bastantes datos de encuestas / encuestas (decenas de miles de encuestados, digamos 50k por conjunto de datos), provenientes de algo que espero se llame encuesta de diseño complejo con pesos, estratificación, enrutamiento específico, etc. Para cada encuestado, hay cientos de variables como la demografía (edad, región ...) y luego, principalmente, variables binarias (como máximo, categóricas).
Vengo más de los conocimientos de informática / aprendizaje automático y tuve que aprender mucho sobre estadísticas y metodología de encuestas clásicas . Ahora quiero aplicar el aprendizaje automático clásico a esos datos (por ejemplo, predecir algunos valores faltantes para el subconjunto de encuestados, básicamente tarea de clasificación). Pero, espera y mira, no puedo encontrar una manera adecuada de cómo hacerlo. ¿Cómo debo incorporar esos estratos, pesos o rutas (como: si la pregunta 1 respondió con la opción 2, haga la pregunta 3, de lo contrario, omítala)?
Simplemente aplicar mis modelos (árboles, regresión logística, SVM, XGBoost ...) parece peligroso (y fallan en la mayoría de los casos), ya que generalmente asumen que los datos provienen de una muestra aleatoria simple o iid.
Muchos métodos al menos tienen pesos, pero no ayuda mucho. Además, no está claro cómo debo combinar las clases desequilibradas y los pesos dados por la definición de la encuesta juntos, sin hablar de esas cosas de estratificación. Además, los modelos de resultados deben estar bien calibrados: la distribución prevista debe estar muy cerca de la original. El buen desempeño de la predicción no es el único criterio aquí. Cambié la métrica de optimización para tener en cuenta esto también (como la distancia de distribución prevista 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 cómo lidiar con este problema? Parece un área de investigación muy poco apreciada para mí. En mi opinión, muchas encuestas podrían beneficiarse del poder de ML, pero no hay fuentes. Como estos son dos mundos que no interactúan entre sí.
Lo que he encontrado hasta ahora:
- http://civilstat.com/2014/08/statistical-modeling-the-two-cultures-breiman/
Por ejemplo, todavía sé de un solo artículo (Toth y Eltinge, 2011) sobre cómo hacer árboles de regresión cuando sus datos provienen de una encuesta de muestra compleja.
- http://ccsg.isr.umich.edu/index.php/chapters/statistical-analysis-chapter#nine
En un metaanálisis reciente de 150 trabajos de investigación muestreados que analizan varias encuestas con diseños de muestreo complejos, se encontró que los errores analíticos causados por la ignorancia o el uso incorrecto de las características del diseño de la muestra compleja eran frecuentes.
- https://www.fhwa.dot.gov/2015datapalooza/presentations/PolicyDev.4_Pierce.pdf
Preguntas relacionadas con el CV, pero ninguna de ellas contiene una respuesta útil sobre cómo abordar esto (ya sea sin respuesta, no es lo que pido o no presento recomendaciones engañosas):
- Análisis emparejado con datos de encuestas complejas
- Aprendizaje automático con datos de encuestas ponderados / complejos
- Validación cruzada después de LASSO en datos de encuestas complejas
- ¿Separación en regresión logística en una encuesta compleja?
- Ajuste de modelos multinivel a datos de encuestas complejas en R
Respuestas:
( Actualización: todavía no hay mucho trabajo sobre métodos de ML "modernos" con datos de encuestas complejas, pero el número más reciente de Statistical Science tiene un par de artículos de revisión. Ver especialmente Breidt y Opsomer (2017), "Model-Assisted Encuesta de estimación con técnicas modernas de predicción " .
Además, según el documento de Toth y Eltinge que mencionó, ahora hay un paquete R rms que implementa CART para datos de encuestas complejas).
No tengo completamente claro tu objetivo. ¿Está tratando principalmente de imputar las observaciones faltantes, solo para tener un conjunto de datos "completo" para dar a alguien más? ¿O ya tiene datos completos y desea construir un modelo para predecir / clasificar las respuestas de las nuevas observaciones? ¿Tiene alguna pregunta en particular que responder con su (s) modelo (s) o está explotando datos de manera más amplia?
En cualquier caso, la regresión logística ponderada por muestreo / encuesta compleja es un método razonable y bastante bien entendido. También hay regresión ordinal para más de 2 categorías. Estos darán cuenta de estratos y pesos de encuestas. ¿Necesita un método ML más elegante que este?
Por ejemplo, podría usar
svyglm
en elsurvey
paquete de R. Incluso si no usa R, el autor del paquete, Thomas Lumley, también escribió un libro útil "Encuestas complejas: una guía para el análisis usando R" que cubre tanto la regresión logística como los datos faltantes para las encuestas.(Para la imputación, espero que ya esté familiarizado con los problemas generales relacionados con la falta de datos. De lo contrario, busque enfoques como la imputación múltiple para ayudarlo a explicar cómo el paso de imputación afecta sus estimaciones / predicciones).
El enrutamiento de preguntas es de hecho un problema adicional. No estoy seguro de la mejor manera de lidiar con eso. Para la imputación, quizás pueda imputar un "paso" en la ruta a la vez. Por ejemplo, utilizando un modelo global, primero impute la respuesta de todos a "¿Cuántos hijos tiene?"; luego ejecute un nuevo modelo en la subpoblación relevante (personas con más de 0 hijos) para imputar el siguiente paso de "¿Cuántos años tienen sus hijos?"
fuente