7 votos

Error cuadrático medio para datos con distribución sesgada

Estoy realizando una tarea de regresión y las variables de respuesta de mi conjunto de datos tienen una distribución sesgada. Digamos, para simplificar, que tengo un modelo Y~X e Y(variable de respuesta) está en [1,5] pero hay muchos más valores en el rango [4,5] que en el rango [1,2]. Como resultado, un predictor mayoritario que predice 4,5 para Y independientemente del valor de X puede completar con regresión lineal si sólo miro el error MSE.

Me pregunto si hay alguna forma metódica de corregir el MSE para considerar este caso y quizás penalizar más al predictor mayoritario cuando se equivoca en Y=1 que cuando se equivoca en Y=5. Básicamente estoy buscando una medida de error justa para datos sesgados.

Actualización: Para simplificar, digamos que el pronosticador mayoritario predice 4,5 para todo, independientemente del valor de X. Mi pronosticador predice 1 con exactitud, pero siempre predice 4,4 para los 5's.

el conjunto de prueba para Y es un 1 y el resto son 200 números y cada uno es igual a 5. Según el MSE, el predictor mayoritario es mejor que mi predictor, pero no tiene sentido.

Quiero modificar el MSE para que favorezca las predicciones precisas para 1's en comparación con las predicciones precisas para 5's. Tal vez pueda multiplicar cada residuo por el inverso de la frecuencia de la Y real? también ¿cómo puedo utilizar un MSE tales para los casos que Y es continua?

actualización 2: Así que algunas personas sugirieron que quizá Y debería muestrearse de forma más adecuada y que necesito encontrar una submuestra de mis datos que proporcione una distribución uniforme de Y. Esto no es posible en mi caso. Digamos que estoy rastreando amazon y la mayoría de las valoraciones que veo son 5 (ya que amazon elimina los productos de bajo rendimiento), pero también hay algunos artículos con valoración 1. Ahora bien, si utilizo un predictor mayoritario que predice 5 en todas partes va a vencer a mi SVM en términos de valor MSE, pero el predictor mayoritario no aporta ningún valor a mi sistema. Además, no quiero tirar mis datos sólo para que la distribución de las valoraciones sea uniforme. Creo que debería serlo seleccionando adecuadamente la métrica (medida del error)

Se adjunta un ejemplo de distribución. enter image description here

4 votos

Un malentendido muy discutido, que podría estar operando aquí (búsquelo), es suponer que la asimetría en las respuestas es un problema. En general, no lo es. Lo que importa es la distribución de residuos . ¿Qué se puede decir al respecto?

0 votos

@whuber Si él dice que la variable de respuesta Y tiene una distribución sesgada supongo que podría haber dos razones para ello (1) La forma en que las muestras en el espacio X conduce a la asimetría en Y o (2) que las muestras de una manera que se extendería a cabo la Ys, pero los residuos son muy sesgada. En el caso (1), la solución podría ser tomar más muestras en regiones que rellenen los huecos en Y. En el caso (2), podría utilizarse un método de regresión robusto, como la regresión del valor mínimo absoluto, que no penaliza tanto las grandes desviaciones de la línea de regresión.

0 votos

@whuber en aras de la simplicidad digamos que la mayoría predictor predice 4,5 para todo, independientemente de X y el conjunto de prueba para Y es uno 1 y el resto son 200 valores cada uno igual a 5. Mi predictor predice 1 acuratly pero siempre predice 4,4 para 5's. Mi predictor predice acertadamente 1 pero siempre predice 4,4 para 5. Según el MSE, el predictor mayoritario es mejor, pero no tiene sentido. Por lo tanto, quiero modificar el MSE para favorecer las predicciones precisas de 1 a las predicciones precisas de 5.

3voto

Ted Puntos 854

Una posible respuesta pragmática se inspira en la motivación que subyace a la transformación logit utilizada en la regresión logística. En esa situación, la respuesta original está limitada entre 0 y 1 y, por lo tanto, tratarla como si tuviera una distribución normal causa todo tipo de problemas. Parte de la respuesta consiste en transformar por log(y/(1-y)), donde y es la respuesta modelizada.

Tu problema es comparable, sólo que los límites son 1 y 5 en lugar de 0 y 1. Si quieres analizar tus datos utilizando métodos motivados por supuestos de distribución Normal (dentro de los cuales yo clasificaría el uso de errores al cuadrado), podrías considerar transformarlos a una escala sin límites superiores ni inferiores como se indica a continuación (en R, pero el código debería tener sentido si no estás familiarizado con él; la línea clave es la que crea la variable "z" a partir de la "y" original):

# generate some skewed data in the [1,5] space:
y <- rnorm(1000,4,1)
y[y<1] <- runif(sum(y<1),1,3)
y[y>5] <- runif(sum(y>5),3.5,5)

# transform it similar to logit transform
z <- log((y-1)/4 / (1-(y-1)/4))

# plot the results
par(mfrow=c(1,2))
hist(y); hist(z)

enter image description here

La nueva variable z es mucho más adecuada para OLS o cualquier otra técnica similar que desee probar.

1voto

tomislav Puntos 11

Si he entendido bien, el problema al que te enfrentas es que al utilizar el MSE estás desarrollando un predictor deficiente. Se trata de un problema habitual en poblaciones asimétricas. Por ejemplo, si estuviera intentando predecir si una persona tiene cáncer o no (binario) en una población en la que el 99% de las personas no tienen cáncer, analizando un análisis de sangre rutinario, un modelo entrenado minimizando el MSE diría que nadie tiene cáncer, y tendría una precisión del 99%.

Una forma de resolver este problema es utilizar Fscore en lugar de Precisión o MSE. Fscore es una métrica de error que utiliza tanto Precision como Recall. http://en.wikipedia.org/wiki/F1_score

Esto lo aprendí en el curso de aprendizaje automático de Andrew Ng en Coursera. Aquí hay un vídeo de la clase específica sobre métricas de error para clases sesgadas. http://www.youtube.com/watch?v=uj605bVFH8Y

Espero que le sirva de ayuda.

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