Es bastante común en el mundillo de la inteligencia artificial o la ciencia de datos que se simplifique la taxonomía de los problemas de aprendizaje supervisado en una dualidad entre clasificación y regresión, la realidad es que esta organización pasa por alto las profundas implicaciones de la estructura de los datos, el proceso de generación de los mismos y el objetivo último del análisis.
En el típico grafo que muestran las infografías sobre Machine Learning se entiende que para predecir variables numéricas basta con usar modelos de regresión común, desde la regresión lineal hasta los modelos boosting (con los regresores por defecto) y esto constituye uno de los malentendidos más persistentes y técnicamente costosos en la práctica contemporánea de la ciencia de datos.
Como estadístico no puedo dejar de mencionar que otro error en esta sobresimplificación es el hecho de que despreciar las consecuencias de violar los supuestos estadísticos fundamentales de los modelos; no se menciona el riesgo de tener predicciones mal calibradas, estimaciones sesgadas, pérdida de potencia estadística y, en última instancia, conclusiones erróneas pudiendo destrozar la correcta toma de decisiones.
Ahora, conociendo que la premisa de que, en predicción, cualquier variable numérica debe ser abordada mediante modelos supervisados para regresión común es incorrecta, seguramente te surgen preguntas como ¿cuándo sí es correcto usar un modelo común de regresión? ¿qué debería preguntarme antes de aplicar el modelo? ¿qué debería usar en los otros casos?. Este es el primero de una serie de post que vamos a tratar al respecto.
Antes de seguir, una aclaración, estamos hablando del uso de modelos “sin tocar” sus entrañas, luego podríamos adentrarnos sobre como varios de los problemas que les mencionaré se pueden corregir mediante el uso de los mismos modelos comunes pero modificando alguna parte del proceso o funciones de costo, etc (en próximos post)
¿Cuándo es correcto (o no) usar un modelo común de regresión?
Veamos unos cuantos casos que pueden servir de “checklist” antes de pedirle a la IA que haga un modelo (porque sí, aquí sabemos que la IA va a programar al final)
De los valores que toma “Y” y lo que representa
Empecemos por evaluar la naturaleza de la variable Y, el supuesto para los modelos de aprendizaje supervisado, caso regresión, es que la variable Y es numérica continua que puede tomar cualquier valor entre “-infinito” y “+infinito”. Bien, este supuesto no es muy práctico y solemos ser bastante permisivos al respecto.
Se podría decir que para usar modelos supervisados para regresión común (default) se requiere que nuestra variable Y tome:
- Valores numéricos entre “-infinito” y “+infinito”
- Valores numéricos en un rango [a, b] sin peso fuerte cerca de los límites (y sabiendo que el modelo siempre podrá predecir fuera del rango)
- Valores discretos en un rango {a, a+1, a+2, …, b} donde a y b son ambos positivos y alejados del cero y además la cantidad de valores diferentes que toma “Y” no es pequeño
Ajá, y ¿cuándo tendríamos problemas al usar la regresión común?. Aquí hay ciertas consideraciones importantes como:
- Si nuestra variable sólo toma valores positivos pero tiene peso importante cerca al cero, porque hay que notar que los modelos comunes no se les puede “limitar” y por tanto van a dar predicciones negativas. Alguien podría decir, bueno se limita el resultado post predicción?, y sí, se hace, pero ¿ha medido cuánto afecta a las métricas del modelo? ¿cómo afecta a los intervalos de confianza?
- Se puede extender la idea anterior a una variable que tenga mucho peso cerca de sus límites, es decir, que muestre una fuerte asimetría
- Si nuestra variable es discreta suele ser porque representa un conteo. Si este conteo tiene alta frecuencia en valores cercanos al cero no es recomendable usar regresión común
- Si la variable es numérica pero representa una proporción (0 a 1 o 0% a 100%)
Variable Y numérica que no es numérica
No podía dejar de mencionar el caso cuando la variable numérica en realidad no es numérica, si bien puede parecer inverosímil que existan estos errores, pero he escuchado cada caso.
Entonces, los modelos supervisados para regresión común (default) requieren que nuestra variable numérica represente una cantidad (o una medición) no limitada a unos pocos valores, sobre una geometría euclídea (digamos, como funcionan las cosas en un plano normal) y no debe ser un ranking.
Es decir, tendríamos problemas al usar la regresión común cuando:
- Cuando nuestra variable representa el código que se le ha dado a una variable categórica (ejemplo, la satisfacción representada del 1 al 5)
- Cuando la variable numérica representa un ranking (1 es primero, 2 es segundo, etc)
- Cuando la variable numérica representa un número pero no una cantidad (ejemplo: predecir el número que está escrito en una imagen)
- Cuando nuestra variable numérica representa la medida de algo pero tiene pocos valores posibles (ejemplo: si la variable representa el ancho en cm de una componente)
- Cuando nuestra variable representa una medición sobre un geometría no euclidiana, (ok, eso puede parecer raro, pero es simple). Por ejemplo imaginen que “Y” representa un ángulo (0 a 359), resulta que de 358 a 1 hay 3 grados de distancia (porque los grados están en un círculo de 0 a 360) y no es 357 (como sería si estuviesen en un plano donde la distancia es la línea recta que conocemos).
Del objetivo del modelo
En los cursos que dictamos en la Sociedad de Estadística y en Masapp este es un punto importante e inicial siempre: ¿qué es lo que el cliente o el proceso necesita? La primera distinción importante es conocer si se requiere entender (o explicar) un comportamiento en función de otras variables, o si se requiere predecir valores en función de otras variables.
Puede parecer que es lo mismo, pero no puesto que el proceso previo es diferente, sin embargo, eso es material para otros posts. Acá nos centraremos en seguir indagando más el objetivo del modelo. Entonces, supongamos que el objetivo es entender o explicar, ¿basta con encontrar relaciones o es necesario demostrar causalidad?.
Adicionalmente, y esta es una parte técnica que no siempre se entiende, los modelos por default atacan al promedio de Y condicionado a X. Para entenderlo mejor, si tenemos un modelo que predice el precio de una casa en función de los metros cuadrados y el sector, entonces cuando le preguntamos ¿cuánto valdría una casa en el sur de 100m^2? y nos dice USD 100MIL esto significa que en promedio las casas con esas características valen 100MIL. Con ese contexto, ¿es correcto que nuestra predicción sea el promedio de Y? ¿se requiere agregar un intervalo de confianza a esta predicción (aquí la vena estadística me dice, siempre se requiere pero en la práctica, lo cierto es que no es así)?
En resumen, los modelos supervisados para regresión común (default) se podría usar:
- Si nuestro objetivo es encontrar relaciones (ojo con el preproceso)
- Si nuestro objetivo es predecir puntualmente el promedio de Y
- Si nuestro objetivo es obtener un intervalo de predicción, aquí primero hay que considerar que no todos los métodos lo permiten, segundo, para usar el default se requiere validar que la variabilidad es estable a lo largo de “Y” (homocedasticidad)
Ahora bien, ¿cuándo tendríamos problemas al usar la regresión común?
- Si nuestro objetivo es explicar las relaciones causales (si X hace esto, en Y pasa aquello)
- Si nuestro objetivo es obtener un intervalo de predicción y no tenemos variabilidad estable (homocedasticidad), los intervalos obtenidos con un método “común” serán mentirosos.
- Si el promedio de Y dado X, no es el número que necesita el negocio (ejemplo, si lo que queremos es saber el precio en donde empieza el top 10% de las casas más caras en el sur de 100m^2)
Del objetivo del modelo: métrica vs función de costo
Aquí nos ponemos algo más técnicos porque hablaremos de la función de costo (sí, todos los modelos se asientan sobre un trípode cuya segunda pata es la función de costo, pero es material para otro post). Un par de preguntas que casi nunca aparecen en las infografías es la siguiente: ¿el error de equivocarme hacia arriba cuesta lo mismo que equivocarme hacia abajo? ¿Cuántos valores atípicos tenemos en nuestra Y?
Resulta que los modelos por defecto optimizan el error cuadrático para el cual los errores hacia arriba o hacia abajo son igual de importantes, pero el negocio puede necesitar otras reglas (por ejemplo cuando se prefiere sobreestimar un precio antes que subestimarlo). Aquí “las métricas” le dicen al data scientist qué modelo está bien pero en la práctica se está afectando al cliente o proceso.
Entonces, los modelos supervisados para regresión común (default) requieren que la importancia de equivocarme por “k” hacia arriba sea la misma que equivocarme por “k” hacia abajo y no se tienen valores aberrantes.
De cuando el tiempo (fecha, mes) es una variable predictora
La pregunta clave aquí es ¿requiere predicción (prediction) o requiere pronóstico (forecast)?, la diferencia clave tiene que ver con los datos y el uso del modelo. Si cada fila es una medición asociada a una fecha diferente, y queremos saber lo que sucederá en fechas futuras, eso es un forecast. Pero, ojo, se puede tener variables que surgen del tiempo como variables predictoras en un modelo de regresión
Para entenderlo mejor, suponga que desea estimar el precio de las viviendas, y sabe que en marzo (cuando se pagan las de utilidades a los trabajadores en Ecuador) las casas se vuelvan más caras y por lo tanto el mes es una variable importante, en este caso es un problema de predicción, porque queremos estimar el precio y hay M observaciones atadas a cada mes. Bajo ese mismo ejemplo, si nuestra variable es la cantidad de casas vendidas por mes y lo que queremos es estimar cuánto vamos a vender en el marzo próximo, eso es un forecast.
Ergo, los modelos supervisados para regresión común (default) se podría usar sólo si nuestro objetivo es explicativo o predictivo, no cuando es forecast.
De la forma de tomar los datos
Los modelos supervisados para regresión común (default) se podrían usar si las observaciones son independientes y tenemos datos transversales (una observación por ente estudiado, como una fotografía instantánea), estos son supuestos básicos e importantes.
El forecast es un caso de cuando esto no se cumple, pero hay otros casos, por ejemplo si mides repetidamente al mismo lote, finca, paciente, máquina o región. Entonces, ¿cuándo tendríamos problemas al usar la regresión común?
- Si nuestros datos son longitudinales o de panel, es decir cuando se tiene varias observaciones que representan varias mediciones para el mismo ente/objeto de observación
- Cuando la “Y” se debe acumular con restricción, ejemplo, si al final la suma de “Y” debe dar siempre mil, que una observación tenga un “Y” mayor implica que en otra debe bajar
- Cuando los datos están «cortados» (Censura): Imagina que quieres predecir el tiempo de espera en una fila, pero solo registras a los que esperaron hasta 20 minutos porque después cerró la tienda. Los que iban a esperar más de 20 aparecen como «20».
Y ya, creo que hemos recorrido varias cosas y sí, seguramente se me pasa alguna que otra consideración importante; en ese caso les leo en los comentarios.
Finalmente, recuerden que esto no significa que no se pueda usar modelos de regresión, el problema es creer que basta y sobra el uso del modelo común del modelo de ML por default. Repito, en varios de los problemas mencionados se pueden usar desde un modelo lineal hasta modelos ensamblados pero modificando algo, ¿qué? pues quedará para otro post porque este ya lleva harto.
Y es que la frase “sólo sé que nada sé” es porque cuanto más sabes más te das cuenta de que queda un mundo de cosas por aprender.
imagen generada con chatGPT


