¿Cuáles son algunas prácticas estándar para crear conjuntos de datos sintéticos?

26

Como contexto: cuando trabajo con un conjunto de datos muy grande, a veces me preguntan si podemos crear un conjunto de datos sintéticos donde "conozcamos" la relación entre los predictores y la variable de respuesta, o las relaciones entre los predictores.

A lo largo de los años, parece que encuentro conjuntos de datos sintéticos únicos, que parecen estar preparados de manera ad hoc, o conjuntos de datos más estructurados que parecen especialmente favorables para el método de modelado propuesto por el investigador.

Creo que estoy buscando métodos estándar para crear conjuntos de datos sintéticos. Aunque el remuestreo bootstrap es un método común para crear un conjunto de datos sintéticos, no satisface la condición de que conozcamos la estructura a priori . Además, el intercambio de muestras de bootstrap con otros requiere esencialmente el intercambio de datos, en lugar de un método de generación de datos.

Si podemos ajustar una distribución paramétrica a los datos, o encontrar un modelo parametrizado suficientemente cercano, entonces este es un ejemplo en el que podemos generar conjuntos de datos sintéticos.

¿Qué otros métodos existen? Estoy especialmente interesado en datos de alta dimensión, datos dispersos y datos de series de tiempo. Para datos de alta dimensión, buscaría métodos que puedan generar estructuras (por ejemplo, estructura de covarianza, modelos lineales, árboles, etc.) de interés. Para los datos de series temporales, las distribuciones a través de FFT, modelos AR u otros modelos de filtrado o pronóstico parecen ser un comienzo. Para datos escasos, la reproducción de un patrón de dispersión parece útil.

Creo que estos solo rascan la superficie: son prácticas heurísticas, no formales. ¿Existen referencias o recursos para generar datos sintéticos que los profesionales deberían conocer?


Nota 1: Me doy cuenta de que esta pregunta aborda la literatura sobre cómo uno puede generar datos como un modelo de serie temporal particular. La distinción aquí está en las prácticas, especialmente para indicar una estructura conocida (mi pregunta), en comparación con la similitud / fidelidad a un conjunto de datos existente. No es necesario en mi caso tener similitud, tanto como la estructura conocida, aunque la similitud es muy preferible a la disimilitud. Un conjunto de datos sintéticos exóticos para el que un modelo promete es menos preferido que una simulación realista.

Nota 2: La entrada de Wikipedia para datos sintéticos señala que luminarias como Rubin y Fienberg han abordado este problema, aunque no he encontrado referencias sobre las mejores prácticas. Sería interesante saber qué pasaría con, por ejemplo, los Anales de Estadísticas Aplicadas (o AOS), o en trabajos de revisión en estas u otras revistas. En términos simples y caprichosos, uno puede preguntarse dónde existe el umbral entre "(aceptablemente) cocinado" y "demasiado cocinado".

Nota 3: aunque no afecta a la pregunta, el escenario de uso es el modelado de conjuntos de datos variables grandes y de alta dimensión, donde la agenda de investigación es aprender (tanto por humanos como por máquina ;-)) la estructura de los datos. A diferencia de los escenarios univariados, bivariados y otros de baja dimensión, la estructura no se deduce fácilmente. A medida que avanzamos hacia una mejor comprensión de la estructura, poder generar conjuntos de datos con propiedades similares es de interés para ver cómo un método de modelado interactúa con los datos (por ejemplo, para examinar la estabilidad de los parámetros). No obstante, las guías más antiguas sobre datos sintéticos de baja dimensión pueden ser un punto de partida que se puede ampliar o adaptar para conjuntos de datos de dimensiones superiores.

Iterador
fuente

Respuestas:

7

No estoy seguro de que son prácticas estándar para generar datos sintéticos - se usa tan fuertemente en tantos aspectos diferentes de la investigación que los datos construido propósito parece ser un enfoque más común y sin duda más razonable.

Para mí, mi mejor práctica estándar es no hacer el conjunto de datos para que funcione bien con el modelo. Eso es parte de la etapa de investigación, no parte de la etapa de generación de datos. En cambio, los datos deben diseñarse para reflejar el proceso de generación de datos . Por ejemplo, para los estudios de simulación en Epidemiología, siempre comienzo desde una gran población hipotética con una distribución conocida, y luego simulo un muestreo de estudio de esa población, en lugar de generar "la población de estudio" directamente.

Por ejemplo, en base a nuestra discusión a continuación, dos ejemplos de datos simulados que he hecho:

  • Algo similar a su ejemplo del modelo SIR a continuación, una vez utilicé un modelo matemático de la propagación de la enfermedad a través de una red para mostrarme a mí mismo a través de la simulación que un parámetro constante particular no necesariamente implicaba un peligro constante si trataba los resultados como el resultado de un estudio de cohorte. Fue una prueba de concepto útil mientras buscaba una solución analítica.
  • Quería explorar el impacto de cierto esquema de muestreo para un estudio de casos y controles. En lugar de intentar generar el estudio directamente, caminé a través de cada paso del proceso. Una población de 1,000,000 de personas, con una determinada prevalencia conocida de enfermedad y un patrón covariable conocido. Luego, a partir de esa simulación del proceso de muestreo, en este caso, cómo se extrajeron los casos y controles de la población. Solo entonces lancé un modelo estadístico real a los "estudios simulados" recopilados.

Las simulaciones como esta última son muy comunes cuando se examina el impacto de los métodos de reclutamiento de estudios, los enfoques estadísticos para controlar las covariables, etc.

Fomite
fuente
Gracias por responder. Sin embargo, según lo que sé sobre epidemiología, se ha hecho mucho más en el desarrollo de modelos estocásticos bastante útiles, especialmente los modelos SIR. Esto no es cierto en muchos otros dominios, aunque poder desarrollar modelos de datos estocásticos aceptables rápidamente es parte de mi intención.
Iterator
@Iterator Eso depende en gran medida de dónde se encuentre y de qué aspecto de la epidemiología esté hablando. Un epidemiólogo del cáncer, por ejemplo, se sorprendería al saber que se ha hecho "mucho más" con los modelos SIR; es probable que nunca hayan encontrado uno en su trabajo. Mientras que los modelos de tipo SIR son un aspecto de una parte particular de la epidemiología (enfermedad infecciosa epi, e incluso entonces, ni siquiera un gran subconjunto de ID Epi), la epidemiología como campo hace un uso tremendo de modelos estadísticos, particularmente modelos lineales generales, supervivencia análisis y series de tiempo.
Fomite
Whoa Sin ánimo de ofender, solo dije que los modelos SIR son un muy buen ejemplo de un modelo estándar de generación de datos. Por supuesto, soy consciente de que hay otras áreas de epi que usan todo un espectro de métodos de modelado. Si tiene algunos indicadores o referencias sobre otros métodos de generación de datos utilizados en epidemiología, estoy bastante abierto a ellos.
Iterator
1
@Iterator Lo siento si di la impresión de que me ofendió. Mucho no;). Es algo que obtengo porque me siento en la intersección entre el epi matemático y la epidemiología observacional, y las personas en un área están asombradas de que exista el otro. Editaré mi respuesta con un ejemplo de tipo no SIR.
Fomite
2

El paquete estadístico R tiene una función de simulación que simulará datos basados ​​en un modelo ajustado a los datos existentes. Esto utiliza el modelo ajustado como la relación de población "conocida", luego simula nuevos datos basados ​​en ese modelo. Hay un método para esta función en el paquete lme4. Estos objetos ajustados pueden tener en cuenta la correlación y los efectos aleatorios y fijos (incluida la autocorrelación para series temporales).

Esto puede funcionar, haz lo que quieras.

Greg Snow
fuente
Gracias por la sugerencia. Esta función es ciertamente útil, aunque mi interés está más en términos de prácticas estadísticas y metodología que en código para una solución particular. Esto es similar a preguntar sobre métodos de muestreo o análisis reproducibles, en lugar de paquetes particulares que implementan dichos métodos y análisis. No obstante, los buenos métodos deberían convertirse en paquetes. :)
Iterator