3 votos

Modelos de regresión lineal: Comportamiento

Si el valor objetivo en los datos de entrenamiento está en el rango $[5,11]$ . ¿Es posible que un modelo de regresión lineal prediga valores absurdos entre $[-10, 300]$ (no el rango exacto, sino cercano) en los datos de validación/prueba.

He entrenado un modelo de regresión lineal (scikit-learn) sobre unos datos de entrenamiento (dimensión 2000, puntos de entrenamiento 3000) con valores objetivo en el conjunto acotado como se ha descrito anteriormente pero el error cuadrático medio es del orden de 100s mientras que un modelo xgboost/random forest está teniendo un rmse de menos de 1.x. Si sólo predigo la media de ese rango ( $[5,11]$ ), es decir, 8 por cada punto de validación, seguiré obteniendo un rmse de alrededor de 3.

¿Por qué y cómo se comporta así el modelo lineal y cómo puedo analizar el modelo para mejorarlo? Si la dimensión de los datos es demasiado grande, ¿es habitual que los modelos lineales funcionen tan mal o se debe a la naturaleza sesgada de las características?

3voto

Albert Puntos 21

Hay varias cuestiones que se me ocurren, tenga en cuenta que no son mutuamente excluyentes y que pueden reforzarse mutuamente:

- Cuestiones relativas a los grados de libertad

Esta es la cuestión más importante, creo. La regresión de 2.000 variables sobre 3.000 observaciones le da unas 1,5 observaciones por variable para estimar sus efectos. Una referencia común en este sentido es el libro Regression Modeling Strategies de Frank Harrell, donde el autor sugiere unas 15 observaciones por variable para obtener resultados razonables. Así que en su caso necesitaría unas 10 veces más observaciones.

Esta podría ser una de las razones por las que los métodos basados en árboles que mencionas lo hacen mejor. No utilizan necesariamente todas las variables. Sólo las que dan lugar a una división. Si se observan los resultados basados en el árbol, se puede ver si se utilizaron sólo algunas variables (importancia de las variables) y eso puede dar pistas.

- Colinealidad

En una regresión lineal, no se pueden introducir 2.000 variables sin más (ni en una muestra tan pequeña ni en muestras más grandes) y esperar que todo salga bien. ¿Cómo son las correlaciones entre las variables? Me sorprende que esto haya funcionado en primer lugar. ¿Quizás sklearn deja de lado las variables colineales por defecto? Aunque haya suficiente información para la estimación, los coeficientes no serán correctos (es decir, estarán sesgados) y los resultados serán pobres. OLS no podrá atribuir el tamaño correcto del efecto a las variables si están muy correlacionadas

- Distribución de las variables en el conjunto de entrenamiento y prueba y/o valores atípicos

Si divide su conjunto de datos de forma aleatoria, esto no debería ser un problema, pero si no, los coeficientes estimados del conjunto de entrenamiento podrían estar muy alejados de los verdaderos efectos y producir predicciones no válidas para el conjunto de prueba. Recuerde que OLS es un estimador de varianza relativamente alto (comparado con, por ejemplo, los bosques aleatorios), por lo que los rangos de valores no vistos podrían producir resultados extraños. Aquí también entran en juego los valores atípicos.

Más información sobre lo que has hecho podría llevar a una respuesta más centrada. Por ejemplo, el rango de predicción que mencionas... ¿es generalmente malo, o hay algunos errores extremos pero el resto está bien? En cualquier caso, parece razonable realizar una selección de variables o una reducción de la dimensionalidad antes de aplicar el método OLS, teniendo en cuenta el tamaño de la muestra y de las características.

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