Muestreo de datos desequilibrados en regresión

22

Ha habido buenas preguntas sobre el manejo de datos desequilibrados en el contexto de clasificación , pero me pregunto qué hacen las personas para tomar muestras de regresión.

Digamos que el dominio del problema es muy sensible al signo pero solo algo sensible a la magnitud del objetivo. Sin embargo, la magnitud es lo suficientemente importante como para que el modelo sea regresión (objetivo continuo) no clasificación (clases positivas versus negativas). Y digamos en este dominio del problema que cualquier conjunto de datos de entrenamiento tendrá 10 veces más objetivos negativos que positivos.

En este escenario, podría sobremuestrear los ejemplos de objetivos positivos para que coincidan con el recuento de ejemplos de objetivos negativos, y luego entrenar un modelo para diferenciar los dos casos. Obviamente, el enfoque de capacitación funciona mal en los datos desequilibrados, por lo que necesito hacer algún tipo de muestreo. ¿Cuál sería una forma decente de "deshacer" este sobremuestreo al hacer predicciones? ¿Quizás traduciendo por la media (negativa) o mediana del objetivo de los datos de entrenamiento natural?

someben
fuente

Respuestas:

15

El desequilibrio no es necesariamente un problema, pero sí puede serlo. No es correcto basar su estrategia de muestreo en la variable objetivo. Debido a que esta variable incorpora la aleatoriedad en su modelo de regresión, si realiza un muestreo basado en esto, tendrá grandes problemas para hacer cualquier tipo de inferencia. Dudo que sea posible "deshacer" esos problemas.

Puede legítimamente sobre o submuestreo basado en las variables predictoras . En este caso, siempre y cuando compruebe cuidadosamente que los supuestos del modelo parecen válidos (por ejemplo, la homocedasticidad que le viene a la mente como importante en esta situación, si tiene una regresión "ordinaria" con los supuestos habituales), no creo que necesite deshacer el sobremuestreo al predecir. Su caso ahora sería similar a un analista que ha diseñado un experimento explícitamente para tener un rango equilibrado de las variables predictoras.

Editar - adición - expansión sobre por qué es malo muestrear basado en Y

y=Xsi+mimimiXsi) la e ya no tendrá una media de cero ni se distribuirá de forma idéntica. Por ejemplo, los valores bajos de y que podrían incluir valores muy bajos de e podrían ser menos propensos a ser seleccionados. Esto arruina cualquier inferencia basada en los medios habituales para ajustar tales modelos. Se pueden hacer correcciones similares a las realizadas en la econometría para ajustar modelos truncados, pero son una molestia y requieren suposiciones adicionales, y solo deben emplearse cuando no hay alternativa.

Considere la ilustración extrema a continuación. Si trunca sus datos en un valor arbitrario para la variable de respuesta, introduce sesgos muy significativos. Si lo trunca para una variable explicativa, no necesariamente hay un problema. Verá que la línea verde, basada en un subconjunto elegido debido a sus valores predictores, está muy cerca de la línea ajustada verdadera; Esto no se puede decir de la línea azul, basada únicamente en los puntos azules.

Esto se extiende al caso menos grave de submuestreo o sobremuestreo (porque el truncamiento puede verse como un submuestreo llevado a su extremo lógico).

ingrese la descripción de la imagen aquí

# generate data
x <- rnorm(100)
y <- 3 + 2*x + rnorm(100)

# demonstrate
plot(x,y, bty="l")
abline(v=0, col="grey70")
abline(h=4, col="grey70")
abline(3,2, col=1)
abline(lm(y~x), col=2)
abline(lm(y[x>0] ~ x[x>0]), col=3)
abline(lm(y[y>4] ~ x[y>4]), col=4)
points(x[y>4], y[y>4], pch=19, col=4)
points(x[x>0], y[x>0], pch=1, cex=1.5, col=3)
legend(-2.5,8, legend=c("True line", "Fitted - all data", "Fitted - subset based on x",
    "Fitted - subset based on y"), lty=1, col=1:4, bty="n")
Peter Ellis
fuente
Gracias por la respuesta, Peter. ¿Podría explicar qué quiere decir con "porque esta variable incorpora la aleatoriedad en su modelo de regresión"? El objetivo es observable en el entorno, entonces, ¿quiere decir error de medición?
someben
1
Aquí hay un artículo de un profesor de la NYU llamado Foster Provost sobre el tema: pages.stern.nyu.edu/~fprovost/Papers/skew.PDF En mi caso, estoy haciendo una regresión con datos desequilibrados y no con clasificación. De ahí mi pregunta.
someben
1
@someben: he elaborado y agregado un ejemplo. Está bien descrito en la literatura de regresión que no puede muestrear en función de la variable dependiente. Esto debería aplicarse también a otros modelos. Una muestra que está "desequilibrada" es un tipo diferente de cosas y no es un problema; a menos que lo haya creado deliberadamente mediante una estrategia de muestreo injustificable. El problema no es el equilibrio o la falta de él, sino cómo se obtienen los datos.
Peter Ellis
2
@ Alguien, no, no creo que haga ninguna diferencia. El problema es más fundamental que eso.
Peter Ellis
1
Buen ejemplo! Su gráfico me recuerda un artículo de Richard Berk (1983) sobre Sesgo de selección de muestra . También para tener en cuenta, puede "deshacer" esos problemas si conoce explícitamente el mecanismo de selección de muestra, y hay una serie de modelos econométricos construidos alrededor de esa noción (como el modelo tobit o el trabajo de James Heckman).
Andy W
2

Se trata de si está haciendo un análisis causal o una predicción. Lea http://m.statisticalhorizons.com/?ref=http%3A%2F%2Ft.co%2F54MWZrVAyX&url=http%3A%2F%2Fstatisticalhorizons.com%2Fprediction-vs-causation-in-regression-analysis&width=640

El remuestreo en la variable objetivo para el entrenamiento con fines de predicción funciona siempre que se realice una prueba en una muestra de retención no remuestreada. El cuadro de rendimiento final debe basarse únicamente en la resistencia. Para mayor precisión en la determinación de la previsibilidad del modelo, se deben emplear técnicas de validación cruzada.

Usted "deshace" el análisis final del modelo de regresión y el conjunto de datos desequilibrados.

Chris
fuente
2

Este no es un intento de proporcionar una solución práctica a su problema, pero acabo de investigar un poco sobre cómo lidiar con conjuntos de datos desequilibrados en problemas de regresión y quería compartir mis resultados:

jhin
fuente
1

En primer lugar, la ración 1:10 no está nada mal. hay una forma sencilla de deshacer el muestreo

1) para problemas de clasificación, si ha submuestreado cualquier clase negativa por 10. la probabilidad resultante es 10 veces más de lo que debería ser. simplemente puede dividir la probabilidad resultante por 10. (conocida como recalibración del modelo)

2) Facebook también submuestras (para predicción de clics en regresión logística) y realiza un muestreo negativo. recalibartion se realiza mediante la fórmula simple p / (p + (1-p) / w); donde p es predicción en la disminución de muestreo, nw es una tasa de muestreo negativa.

Arpit Sisodia
fuente
No creo que sea así de simple, Arpit. Muchos algos no lineales no ven suficientes instancias de clase submuestreada y se vuelven sesgados hacia una sobremuestreada, y debido a su no linealidad no tendrás medios para arreglar eso.
Anatoly Alekseev
1

Creo que lo que podría ayudarlo dado su problema es la Técnica de regresión de muestreo de minorías sintéticas (SMOTER). Hay algunas investigaciones sobre este tema. Sin embargo, sigue siendo menos explorado que su homólogo de clasificación, como probablemente haya encontrado.

Podría sugerir el documento citado a continuación (y la conferencia que se presentó en http://proceedings.mlr.press/v74/ ) dependiendo de qué tan interesado esté en comprenderlo desde una perspectiva de investigación. Realmente aprecié la introducción del ruido gaussiano al generar las observaciones sintéticas.

Si está más interesado en una solución práctica, el primer autor tiene una implementación R disponible en su página de Github. https://github.com/paobranco/SMOGN-LIDTA17

Si Python es más de su persuasión, recientemente distribuí una implementación completamente Pythonic del algoritmo SMOGN que ahora está disponible y actualmente se está probando por unidad. https://github.com/nickkunz/smogn

¡Espero que esto haya ayudado!

Branco, P., Torgo, L., Ribeiro, R. (2017). "SMOGN: un enfoque de preprocesamiento para la regresión desequilibrada". Actas de Machine Learning Research, 74: 36-50. http://proceedings.mlr.press/v74/branco17a/branco17a.pdf .

Nick Kunz
fuente