Resolver Sistemas Lineales de Forma Probabilística con Regresión de Mínimos Cuadrados Ordinarios (OLS)

Consideremos un sistema sobredeterminado, donde la matriz \( M \) no es cuadrada, sino rectangular: tiene dimensiones \(n \times p \), siendo \( n > p \). Esto ocurre, por ejemplo, cuando tenemos más observaciones que variables.

Podemos imaginar un ejemplo sencillo:

  • \( x \) –> representa los precios de diferentes productos del supermercado.
  • \( M\) –> es una matriz que contiene la cantidad de cada producto que compraron distintas personas.
  • \( y\)–> es el vector del coste total de la compra de cada individuo.

Hasta aquí, todo parece un sistema de ecuaciones lineales clásico: \( Mx = y \).
Sin embargo, en la vida real los precios no son constantes: cambian entre tiendas, promociones o regiones. Así que incorporamos esa variabilidad aleatoria en el modelo.

La idea probabilística

Si cada individuo experimenta ligeras variaciones en los precios, no hay un único valor “verdadero” para cada producto. Por eso, nuestro objetivo no será encontrar un precio exacto, sino una estimación promedio de los precios:

$$ \hat{x}$$

donde el símbolo del “sombrero” \(ˆ\) indica que se trata de una estimación. De este modo, cada elemento de \( \hat{x} \) representa el precio medio estimado de un producto.

Con esa estimación podemos obtener un coste total estimado multiplicando:

$$\hat{y} = M \hat{x}$$

Si nuestras estimaciones son buenas, entonces \(\hat{y} \) debería aproximarse lo más posible a los valores reales \( y \).

Qué significa “lo más posible”

Para medir qué tan cerca está nuestro resultado, podemos calcular la diferencia entre los valores reales y los estimados:

$$y – \hat{y}$$

y luego obtener su norma (la “distancia” entre ambos vectores). Nuestro objetivo es minimizar esa distancia. Este enfoque, de minimizar los errores cuadráticos, es justamente lo que hace la regresión OLS.

Cómo funciona OLS

En lugar de resolver directamente \( Mx = y \), multiplicamos ambos lados por la transpuesta de \( M \):

$$M^T M x = M^T y$$

Con esto obtenemos una matriz cuadrada \(p \times p\), que puede invertirse (si las columnas de \( M \) son linealmente independientes).

De ahí obtenemos la fórmula del vector estimado:

$$\hat{x} = (M^T M)^{-1} M^T y$$

Este vector \( \hat{x} \)contiene los coeficientes de regresión, también llamados parámetros estimados.

Comprobando la calidad del modelo

Una vez tenemos \( \hat{x} \), podemos comparar las predicciones \( \hat{y} \) con los valores reales \( y \).
Hay varias maneras de medir la calidad del ajuste:

  1. La norma del error: mide la magnitud de las diferencias \( y – \hat{y}\).
  2. El coeficiente de determinación \( R^2 \):
    Este valor, entre 0 y 1, indica qué proporción de la variación real de los datos está explicada por el modelo.
    • \( R^2 = 1 \): el modelo explica toda la variación (ajuste perfecto).
    • \(R^2 = 0\): el modelo no explica nada (mal ajuste).

En esencia, \(R^2 \) compara cuánto mejoran nuestras predicciones respecto a usar solo el promedio de los datos.

El concepto de residuo

El residuo es la diferencia entre el valor real y el valor estimado para cada observación individual:

$$\text{residuo}_i = y_i – \hat{y}_i$$

Gráficamente, si representamos los puntos reales y los estimados, cada residuo es la distancia vertical entre ellos. Un buen modelo tendrá residuos pequeños y distribuidos al azar.

Ejemplo: precios de supermercado

Supongamos que tenemos 9 productos (manzanas, naranjas, pan, etc.) y los registros de compras de 450 personas. Cada persona pudo haber pagado precios ligeramente diferentes por los mismos artículos, dependiendo de la tienda o el día.

  • Si no hubiera variaciones (todos pagan el mismo precio), entonces \( \hat{y} = y \): el modelo reproduce exactamente los costes reales.
  • Si hay variaciones, los puntos estimados y los reales ya no coincidirán perfectamente, y aparecerán residuos.

Aun así, la regresión OLS nos permite encontrar los promedios óptimos que minimizan los errores totales, proporcionando una estimación realista del comportamiento de compra.

Paso 1: importar librerías y definir matrices

import numpy as np

# Matriz M: cantidades compradas (filas = personas, columnas = productos)
M = np.array([
    [2, 3],   # persona 1: 2 manzanas, 3 naranjas
    [3, 5]    # persona 2: 3 manzanas, 5 naranjas
])

# Vector y: total gastado por cada persona
y = np.array([13, 21.6])

Paso 2: aplicar la fórmula de OLS

$$\hat{x} = (M^T M)^{-1} M^T y$$

# Cálculo del estimador OLS
x_hat = np.linalg.inv(M.T @ M) @ M.T @ y
print("Estimaciones de precios:", x_hat)

Salida esperada:

Estimaciones de precios: [0.2 4.2]

Esto indica que:

  • Precio estimado de una manzana ≈ $0.20
  • Precio estimado de una naranja ≈ $4.20

Paso 3: calcular las predicciones y los residuos

# Predicciones del modelo
y_hat = M @ x_hat

# Cálculo de los residuos
residuos = y - y_hat

print("Predicciones (ŷ):", y_hat)
print("Residuos:", residuos)

Salida esperada:

Predicciones (ŷ): [13.  21.6]
Residuos: [0. 0.]

El modelo reproduce exactamente los valores observados, aunque —como vimos— los precios estimados no reflejan la realidad del sistema, porque el modelo no contempla variaciones individuales.

Paso 4: medir la calidad del ajuste (R²)

# Cálculo del coeficiente de determinación
R2 = 1 - np.sum((y - y_hat)**2) / np.sum((y - np.mean(y))**2)
print("Coeficiente R²:", R2)

Salida esperada:

Coeficiente R²: 1.0

El modelo tiene un ajuste perfecto con solo dos observaciones, pero los parámetros no son realistas: este es un ejemplo ideal para entender que un buen ajuste no siempre significa un modelo correcto.

Conclusión

La regresión de mínimos cuadrados ordinarios (OLS) nos permite resolver sistemas lineales cuando los datos no encajan exactamente, buscando el mejor ajuste promedio posible.
En este ejemplo, aunque el modelo predice perfectamente los costes totales, los parámetros estimados (los precios) son poco realistas porque los datos iniciales no cumplían las condiciones necesarias para una solución exacta.

En la práctica, el OLS es una herramienta central en ciencia de datos: es la base de la regresión lineal, de muchos métodos de modelado predictivo y de análisis estadístico que permiten capturar relaciones entre variables reales y ruidosas.

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *